Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
83a66c22
Commit
83a66c22
authored
May 15, 2003
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/acme/net-2.5
into nuts.ninka.net:/home/davem/src/BK/net-2.5
parents
f3ed32e2
c07aef96
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
277 additions
and
294 deletions
+277
-294
drivers/net/wan/cycx_drv.c
drivers/net/wan/cycx_drv.c
+56
-69
drivers/net/wan/cycx_main.c
drivers/net/wan/cycx_main.c
+21
-23
drivers/net/wan/cycx_x25.c
drivers/net/wan/cycx_x25.c
+200
-202
No files found.
drivers/net/wan/cycx_drv.c
View file @
83a66c22
...
...
@@ -6,7 +6,7 @@
*
* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
*
* Copyright: (c) 1998-200
0
Arnaldo Carvalho de Melo
* Copyright: (c) 1998-200
3
Arnaldo Carvalho de Melo
*
* Based on sdladrv.c by Gene Kozin <genek@compuserve.com>
*
...
...
@@ -66,12 +66,6 @@ MODULE_AUTHOR("Arnaldo Carvalho de Melo");
MODULE_DESCRIPTION
(
"Cyclom 2x Sync Card Driver"
);
MODULE_LICENSE
(
"GPL"
);
/* Function Prototypes */
/* Module entry points. These are called by the OS and must be public. */
int
init_module
(
void
);
void
cleanup_module
(
void
);
/* Hardware-specific functions */
static
int
load_cyc2x
(
cycxhw_t
*
hw
,
struct
cycx_firmware
*
cfm
,
u32
len
);
static
void
cycx_bootcfg
(
cycxhw_t
*
hw
);
...
...
@@ -86,27 +80,19 @@ static u16 checksum(u8 *buf, u32 len);
#define wait_cyc(addr) cycx_exec(addr + CMD_OFFSET)
#define cyc2x_readb(b) readb(b)
#define cyc2x_readw(b) readw(b)
#define cyc2x_writeb(b, addr) writeb(b, addr)
#define cyc2x_writew(w, addr) writew(w, addr)
#define cyc2x_memcpy_toio(addr, buf, len) memcpy_toio((addr), buf, len)
#define cyc2x_memcpy_fromio(buf, addr, len) memcpy_fromio(buf, (addr), len)
/* Global Data */
/* private data */
static
char
modname
[]
=
"cycx_drv"
;
static
char
fullname
[]
=
"Cyclom 2X Support Module"
;
static
char
copyright
[]
=
"(c) 1998-200
0
Arnaldo Carvalho de Melo "
static
char
copyright
[]
=
"(c) 1998-200
3
Arnaldo Carvalho de Melo "
"<acme@conectiva.com.br>"
;
/* Hardware configuration options.
* These are arrays of configuration options used by verification routines.
* The first element of each array is its size (i.e. number of options).
*/
static
u32
cyc2x_dpmbase_options
[]
=
{
static
u32
cyc2x_dpmbase_options
[]
=
{
20
,
0xA0000
,
0xA4000
,
0xA8000
,
0xAC000
,
0xB0000
,
0xB4000
,
0xB8000
,
0xBC000
,
0xC0000
,
0xC4000
,
0xC8000
,
0xCC000
,
0xD0000
,
0xD4000
,
...
...
@@ -204,14 +190,14 @@ int cycx_down(cycxhw_t *hw)
EXPORT_SYMBOL
(
cycx_inten
);
void
cycx_inten
(
cycxhw_t
*
hw
)
{
cyc2x_
writeb
(
0
,
hw
->
dpmbase
);
writeb
(
0
,
hw
->
dpmbase
);
}
/* Generate an interrupt to adapter's CPU. */
EXPORT_SYMBOL
(
cycx_intr
);
void
cycx_intr
(
cycxhw_t
*
hw
)
{
cyc2x_
writew
(
0
,
hw
->
dpmbase
+
GEN_CYCX_INTR
);
writew
(
0
,
hw
->
dpmbase
+
GEN_CYCX_INTR
);
}
/* Execute Adapter Command.
...
...
@@ -223,7 +209,7 @@ int cycx_exec(u32 addr)
u16
i
=
0
;
/* wait till addr content is zeroed */
while
(
cyc2x_
readw
(
addr
))
{
while
(
readw
(
addr
))
{
udelay
(
1000
);
if
(
++
i
>
50
)
...
...
@@ -239,9 +225,9 @@ EXPORT_SYMBOL(cycx_peek);
int
cycx_peek
(
cycxhw_t
*
hw
,
u32
addr
,
void
*
buf
,
u32
len
)
{
if
(
len
==
1
)
*
(
u8
*
)
buf
=
cyc2x_
readb
(
hw
->
dpmbase
+
addr
);
*
(
u8
*
)
buf
=
readb
(
hw
->
dpmbase
+
addr
);
else
cyc2x_
memcpy_fromio
(
buf
,
hw
->
dpmbase
+
addr
,
len
);
memcpy_fromio
(
buf
,
hw
->
dpmbase
+
addr
,
len
);
return
0
;
}
...
...
@@ -252,9 +238,9 @@ EXPORT_SYMBOL(cycx_poke);
int
cycx_poke
(
cycxhw_t
*
hw
,
u32
addr
,
void
*
buf
,
u32
len
)
{
if
(
len
==
1
)
cyc2x_
writeb
(
*
(
u8
*
)
buf
,
hw
->
dpmbase
+
addr
);
writeb
(
*
(
u8
*
)
buf
,
hw
->
dpmbase
+
addr
);
else
cyc2x_
memcpy_toio
(
hw
->
dpmbase
+
addr
,
buf
,
len
);
memcpy_toio
(
hw
->
dpmbase
+
addr
,
buf
,
len
);
return
0
;
}
...
...
@@ -269,10 +255,10 @@ static int memory_exists(u32 addr)
int
tries
=
0
;
for
(;
tries
<
3
;
tries
++
)
{
cyc2x_
writew
(
TEST_PATTERN
,
addr
+
0x10
);
writew
(
TEST_PATTERN
,
addr
+
0x10
);
if
(
cyc2x_
readw
(
addr
+
0x10
)
==
TEST_PATTERN
)
if
(
cyc2x_
readw
(
addr
+
0x10
)
==
TEST_PATTERN
)
if
(
readw
(
addr
+
0x10
)
==
TEST_PATTERN
)
if
(
readw
(
addr
+
0x10
)
==
TEST_PATTERN
)
return
1
;
delay_cycx
(
1
);
...
...
@@ -289,7 +275,7 @@ static void reset_load(u32 addr, u8 *buffer, u32 cnt)
for
(
i
=
0
;
i
<
cnt
;
i
++
)
{
/* for (j = 0 ; j < 50 ; j++); Delay - FIXME busy waiting... */
cyc2x_
writeb
(
*
buffer
++
,
pt_code
++
);
writeb
(
*
buffer
++
,
pt_code
++
);
}
}
...
...
@@ -298,8 +284,8 @@ static void reset_load(u32 addr, u8 *buffer, u32 cnt)
* o wait for reset code to copy it to right portion of memory */
static
int
buffer_load
(
u32
addr
,
u8
*
buffer
,
u32
cnt
)
{
cyc2x_
memcpy_toio
(
addr
+
DATA_OFFSET
,
buffer
,
cnt
);
cyc2x_
writew
(
GEN_BOOT_DAT
,
addr
+
CMD_OFFSET
);
memcpy_toio
(
addr
+
DATA_OFFSET
,
buffer
,
cnt
);
writew
(
GEN_BOOT_DAT
,
addr
+
CMD_OFFSET
);
return
wait_cyc
(
addr
);
}
...
...
@@ -308,14 +294,14 @@ static int buffer_load(u32 addr, u8 *buffer, u32 cnt)
static
void
cycx_start
(
u32
addr
)
{
/* put in 0x30 offset the jump instruction to the code entry point */
cyc2x_
writeb
(
0xea
,
addr
+
0x30
);
cyc2x_
writeb
(
0x00
,
addr
+
0x31
);
cyc2x_
writeb
(
0xc4
,
addr
+
0x32
);
cyc2x_
writeb
(
0x00
,
addr
+
0x33
);
cyc2x_
writeb
(
0x00
,
addr
+
0x34
);
writeb
(
0xea
,
addr
+
0x30
);
writeb
(
0x00
,
addr
+
0x31
);
writeb
(
0xc4
,
addr
+
0x32
);
writeb
(
0x00
,
addr
+
0x33
);
writeb
(
0x00
,
addr
+
0x34
);
/* cmd to start executing code */
cyc2x_
writew
(
GEN_START
,
addr
+
CMD_OFFSET
);
writew
(
GEN_START
,
addr
+
CMD_OFFSET
);
}
/* Load and boot reset code. */
...
...
@@ -323,15 +309,15 @@ static void cycx_reset_boot(u32 addr, u8 *code, u32 len)
{
u32
pt_start
=
addr
+
START_OFFSET
;
cyc2x_
writeb
(
0xea
,
pt_start
++
);
/* jmp to f000:3f00 */
cyc2x_
writeb
(
0x00
,
pt_start
++
);
cyc2x_
writeb
(
0xfc
,
pt_start
++
);
cyc2x_
writeb
(
0x00
,
pt_start
++
);
cyc2x_
writeb
(
0xf0
,
pt_start
);
writeb
(
0xea
,
pt_start
++
);
/* jmp to f000:3f00 */
writeb
(
0x00
,
pt_start
++
);
writeb
(
0xfc
,
pt_start
++
);
writeb
(
0x00
,
pt_start
++
);
writeb
(
0xf0
,
pt_start
);
reset_load
(
addr
,
code
,
len
);
/* 80186 was in hold, go */
cyc2x_
writeb
(
0
,
addr
+
START_CPU
);
writeb
(
0
,
addr
+
START_CPU
);
delay_cycx
(
1
);
}
...
...
@@ -342,15 +328,15 @@ static int cycx_data_boot(u32 addr, u8 *code, u32 len)
u32
i
;
/* boot buffer lenght */
cyc2x_
writew
(
CFM_LOAD_BUFSZ
,
pt_boot_cmd
+
sizeof
(
u16
));
cyc2x_
writew
(
GEN_DEFPAR
,
pt_boot_cmd
);
writew
(
CFM_LOAD_BUFSZ
,
pt_boot_cmd
+
sizeof
(
u16
));
writew
(
GEN_DEFPAR
,
pt_boot_cmd
);
if
(
wait_cyc
(
addr
)
<
0
)
return
-
1
;
cyc2x_
writew
(
0
,
pt_boot_cmd
+
sizeof
(
u16
));
cyc2x_
writew
(
0x4000
,
pt_boot_cmd
+
2
*
sizeof
(
u16
));
cyc2x_
writew
(
GEN_SET_SEG
,
pt_boot_cmd
);
writew
(
0
,
pt_boot_cmd
+
sizeof
(
u16
));
writew
(
0x4000
,
pt_boot_cmd
+
2
*
sizeof
(
u16
));
writew
(
GEN_SET_SEG
,
pt_boot_cmd
);
if
(
wait_cyc
(
addr
)
<
0
)
return
-
1
;
...
...
@@ -373,21 +359,22 @@ static int cycx_code_boot(u32 addr, u8 *code, u32 len)
u32
i
;
/* boot buffer lenght */
cyc2x_
writew
(
CFM_LOAD_BUFSZ
,
pt_boot_cmd
+
sizeof
(
u16
));
cyc2x_
writew
(
GEN_DEFPAR
,
pt_boot_cmd
);
writew
(
CFM_LOAD_BUFSZ
,
pt_boot_cmd
+
sizeof
(
u16
));
writew
(
GEN_DEFPAR
,
pt_boot_cmd
);
if
(
wait_cyc
(
addr
)
<
0
)
return
-
1
;
cyc2x_
writew
(
0x0000
,
pt_boot_cmd
+
sizeof
(
u16
));
cyc2x_
writew
(
0xc400
,
pt_boot_cmd
+
2
*
sizeof
(
u16
));
cyc2x_
writew
(
GEN_SET_SEG
,
pt_boot_cmd
);
writew
(
0x0000
,
pt_boot_cmd
+
sizeof
(
u16
));
writew
(
0xc400
,
pt_boot_cmd
+
2
*
sizeof
(
u16
));
writew
(
GEN_SET_SEG
,
pt_boot_cmd
);
if
(
wait_cyc
(
addr
)
<
0
)
return
-
1
;
for
(
i
=
0
;
i
<
len
;
i
+=
CFM_LOAD_BUFSZ
)
if
(
buffer_load
(
addr
,
code
+
i
,
MIN
(
CFM_LOAD_BUFSZ
,(
len
-
i
))))
{
if
(
buffer_load
(
addr
,
code
+
i
,
MIN
(
CFM_LOAD_BUFSZ
,
(
len
-
i
))))
{
printk
(
KERN_ERR
"%s: Error !!
\n
"
,
modname
);
return
-
1
;
}
...
...
@@ -478,11 +465,11 @@ static int load_cyc2x(cycxhw_t *hw, struct cycx_firmware *cfm, u32 len)
/* Load reset.bin */
cycx_reset_boot
(
hw
->
dpmbase
,
reset_image
,
img_hdr
->
reset_size
);
/* reset is waiting for boot */
cyc2x_
writew
(
GEN_POWER_ON
,
pt_cycld
);
writew
(
GEN_POWER_ON
,
pt_cycld
);
delay_cycx
(
1
);
for
(
j
=
0
;
j
<
3
;
j
++
)
if
(
!
cyc2x_
readw
(
pt_cycld
))
if
(
!
readw
(
pt_cycld
))
goto
reset_loaded
;
else
delay_cycx
(
1
);
...
...
@@ -530,7 +517,7 @@ static int load_cyc2x(cycxhw_t *hw, struct cycx_firmware *cfm, u32 len)
static
void
cycx_bootcfg
(
cycxhw_t
*
hw
)
{
/* use fixed buffers */
cyc2x_writeb
(
FIXED_BUFFERS
,
hw
->
dpmbase
+
CONF_OFFSET
);
writeb
(
FIXED_BUFFERS
,
hw
->
dpmbase
+
CONF_OFFSET
);
}
/* Detect Cyclom 2x adapter.
...
...
@@ -563,9 +550,9 @@ static int get_option_index(u32 *optlist, u32 optval)
/* Reset adapter's CPU. */
static
int
reset_cyc2x
(
u32
addr
)
{
cyc2x_
writeb
(
0
,
addr
+
RST_ENABLE
);
writeb
(
0
,
addr
+
RST_ENABLE
);
delay_cycx
(
2
);
cyc2x_
writeb
(
0
,
addr
+
RST_DISABLE
);
writeb
(
0
,
addr
+
RST_DISABLE
);
delay_cycx
(
2
);
return
memory_exists
(
addr
);
...
...
@@ -575,7 +562,7 @@ static int reset_cyc2x(u32 addr)
static
void
delay_cycx
(
int
sec
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
schedule_timeout
(
sec
*
HZ
);
schedule_timeout
(
sec
*
HZ
);
}
/* Calculate 16-bit CRC using CCITT polynomial. */
...
...
drivers/net/wan/cycx_main.c
View file @
83a66c22
...
...
@@ -3,7 +3,7 @@
*
* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
*
* Copyright: (c) 1998-200
1
Arnaldo Carvalho de Melo
* Copyright: (c) 1998-200
3
Arnaldo Carvalho de Melo
*
* Based on sdlamain.c by Gene Kozin <genek@compuserve.com> &
* Jaspreet Singh <jaspreet@sangoma.com>
...
...
@@ -75,7 +75,7 @@ static int shutdown(struct wan_device *wandev);
static
int
ioctl
(
struct
wan_device
*
wandev
,
unsigned
cmd
,
unsigned
long
arg
);
/* Miscellaneous functions */
static
irqreturn_t
cycx_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
static
irqreturn_t
cycx_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
/* Global Data
* Note: All data must be explicitly initialized!!!
...
...
@@ -103,7 +103,7 @@ static struct cycx_device *card_array; /* adapter data space */
* < 0 error.
* Context: process
*/
int
__init
cyclomx_init
(
void
)
int
__init
cyclomx_init
(
void
)
{
int
cnt
,
err
=
-
ENOMEM
;
...
...
@@ -156,7 +156,7 @@ out: return err;
* o unregister all adapters from the WAN router
* o release all remaining system resources
*/
static
void
__exit
cyclomx_cleanup
(
void
)
static
void
__exit
cyclomx_cleanup
(
void
)
{
int
i
=
0
;
...
...
@@ -316,7 +316,7 @@ static int ioctl(struct wan_device *wandev, unsigned cmd, unsigned long arg)
* o acknowledge Cyclom 2X hardware interrupt.
* o call protocol-specific interrupt service routine, if any.
*/
static
irqreturn_t
cycx_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
static
irqreturn_t
cycx_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
cycx_device
*
card
=
(
struct
cycx_device
*
)
dev_id
;
...
...
@@ -348,12 +348,10 @@ void cyclomx_set_state(struct cycx_device *card, int state)
case
WAN_CONNECTED
:
string_state
=
"connected!"
;
break
;
case
WAN_DISCONNECTED
:
string_state
=
"disconnected!"
;
break
;
}
printk
(
KERN_INFO
"%s: link %s
\n
"
,
card
->
devname
,
string_state
);
card
->
wandev
.
state
=
state
;
}
...
...
drivers/net/wan/cycx_x25.c
View file @
83a66c22
...
...
@@ -3,7 +3,7 @@
*
* Author: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
*
* Copyright: (c) 1998-200
1
Arnaldo Carvalho de Melo
* Copyright: (c) 1998-200
3
Arnaldo Carvalho de Melo
*
* Based on sdla_x25.c by Gene Kozin <genek@compuserve.com>
*
...
...
@@ -129,15 +129,15 @@ static int update(struct wan_device *wandev),
del_if
(
struct
wan_device
*
wandev
,
struct
net_device
*
dev
);
/* Network device interface */
static
int
if_init
(
struct
net_device
*
dev
),
if_open
(
struct
net_device
*
dev
),
if_close
(
struct
net_device
*
dev
),
if_header
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
,
static
int
if_init
(
struct
net_device
*
dev
),
if_open
(
struct
net_device
*
dev
),
if_close
(
struct
net_device
*
dev
),
if_header
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
,
u16
type
,
void
*
daddr
,
void
*
saddr
,
unsigned
len
),
if_rebuild_hdr
(
struct
sk_buff
*
skb
),
if_send
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
);
if_rebuild_hdr
(
struct
sk_buff
*
skb
),
if_send
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
);
static
struct
net_device_stats
*
if_stats
(
struct
net_device
*
dev
);
static
struct
net_device_stats
*
if_stats
(
struct
net_device
*
dev
);
/* Interrupt handlers */
static
void
cyx_isr
(
struct
cycx_device
*
card
),
...
...
@@ -160,23 +160,23 @@ static int x25_configure(struct cycx_device *card, TX25Config *conf),
x25_disconnect_response
(
struct
cycx_device
*
card
,
u8
link
,
u8
lcn
);
/* channel functions */
static
int
chan_connect
(
struct
net_device
*
dev
),
chan_send
(
struct
net_device
*
dev
,
struct
sk_buff
*
skb
);
static
int
chan_connect
(
struct
net_device
*
dev
),
chan_send
(
struct
net_device
*
dev
,
struct
sk_buff
*
skb
);
static
void
chan_disconnect
(
struct
net_device
*
dev
),
static
void
chan_disconnect
(
struct
net_device
*
dev
),
chan_x25_send_event
(
struct
net_device
*
dev
,
u8
event
);
/* Miscellaneous functions */
static
void
set_chan_state
(
struct
net_device
*
dev
,
u8
state
),
chan_timer
(
unsigned
long
d
);
static
void
set_chan_state
(
struct
net_device
*
dev
,
u8
state
),
chan_timer
(
unsigned
long
d
);
static
void
nibble_to_byte
(
u8
*
s
,
u8
*
d
,
u8
len
,
u8
nibble
),
reset_timer
(
struct
net_device
*
dev
);
static
void
nibble_to_byte
(
u8
*
s
,
u8
*
d
,
u8
len
,
u8
nibble
),
reset_timer
(
struct
net_device
*
dev
);
static
u8
bps_to_speed_code
(
u32
bps
);
static
u8
log2
(
u32
n
);
static
u8
bps_to_speed_code
(
u32
bps
);
static
u8
log2
(
u32
n
);
static
unsigned
dec_to_uint
(
u8
*
str
,
int
len
);
static
unsigned
dec_to_uint
(
u8
*
str
,
int
len
);
static
struct
net_device
*
get_dev_by_lcn
(
struct
wan_device
*
wandev
,
s16
lcn
);
static
struct
net_device
*
get_dev_by_dte_addr
(
struct
wan_device
*
wandev
,
...
...
@@ -354,7 +354,8 @@ static int new_if(struct wan_device *wandev, struct net_device *dev,
int
err
=
0
;
if
(
!
conf
->
name
[
0
]
||
strlen
(
conf
->
name
)
>
WAN_IFNAME_SZ
)
{
printk
(
KERN_INFO
"%s: invalid interface name!
\n
"
,
card
->
devname
);
printk
(
KERN_INFO
"%s: invalid interface name!
\n
"
,
card
->
devname
);
return
-
EINVAL
;
}
...
...
@@ -539,7 +540,7 @@ static int if_close(struct net_device *dev)
* set skb->protocol to 0 and discard packet later.
*
* Return: media header length. */
static
int
if_header
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
,
static
int
if_header
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
,
u16
type
,
void
*
daddr
,
void
*
saddr
,
unsigned
len
)
{
skb
->
protocol
=
type
;
...
...
@@ -550,7 +551,7 @@ static int if_header (struct sk_buff *skb, struct net_device *dev,
/* * Re-build media header.
* Return: 1 physical address resolved.
* 0 physical address not resolved */
static
int
if_rebuild_hdr
(
struct
sk_buff
*
skb
)
static
int
if_rebuild_hdr
(
struct
sk_buff
*
skb
)
{
return
1
;
}
...
...
@@ -570,7 +571,7 @@ static int if_rebuild_hdr (struct sk_buff *skb)
* bottom half" (with interrupts enabled).
* 2. Setting tbusy flag will inhibit further transmit requests from the
* protocol stack and can be used for flow control with protocol layer. */
static
int
if_send
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
)
static
int
if_send
(
struct
sk_buff
*
skb
,
struct
net_device
*
dev
)
{
x25_channel_t
*
chan
=
dev
->
priv
;
struct
cycx_device
*
card
=
chan
->
card
;
...
...
@@ -644,7 +645,7 @@ static int if_send (struct sk_buff *skb, struct net_device *dev)
/* Get Ethernet-style interface statistics.
* Return a pointer to struct net_device_stats */
static
struct
net_device_stats
*
if_stats
(
struct
net_device
*
dev
)
static
struct
net_device_stats
*
if_stats
(
struct
net_device
*
dev
)
{
x25_channel_t
*
chan
=
dev
->
priv
;
...
...
@@ -1049,7 +1050,7 @@ static int x25_configure(struct cycx_device *card, TX25Config *conf)
TX25Config
conf
[
2
];
}
x25_cmd_conf
;
memset
(
&
x25_cmd_conf
,
0
,
sizeof
(
x25_cmd_conf
));
memset
(
&
x25_cmd_conf
,
0
,
sizeof
(
x25_cmd_conf
));
x25_cmd_conf
.
nlinks
=
2
;
x25_cmd_conf
.
conf
[
0
]
=
*
conf
;
/* FIXME: we need to find a way in the wanrouter framework
...
...
@@ -1293,7 +1294,7 @@ static struct net_device *get_dev_by_dte_addr(struct wan_device *wandev,
* Return: 0 connected
* >0 connection in progress
* <0 failure */
static
int
chan_connect
(
struct
net_device
*
dev
)
static
int
chan_connect
(
struct
net_device
*
dev
)
{
x25_channel_t
*
chan
=
dev
->
priv
;
struct
cycx_device
*
card
=
chan
->
card
;
...
...
@@ -1318,7 +1319,7 @@ static int chan_connect (struct net_device *dev)
/* Disconnect logical channel.
* o if SVC then clear X.25 call */
static
void
chan_disconnect
(
struct
net_device
*
dev
)
static
void
chan_disconnect
(
struct
net_device
*
dev
)
{
x25_channel_t
*
chan
=
dev
->
priv
;
...
...
@@ -1330,7 +1331,7 @@ static void chan_disconnect (struct net_device *dev)
}
/* Called by kernel timer */
static
void
chan_timer
(
unsigned
long
d
)
static
void
chan_timer
(
unsigned
long
d
)
{
struct
net_device
*
dev
=
(
struct
net_device
*
)
d
;
x25_channel_t
*
chan
=
dev
->
priv
;
...
...
@@ -1343,7 +1344,7 @@ static void chan_timer (unsigned long d)
}
/* Set logical channel state. */
static
void
set_chan_state
(
struct
net_device
*
dev
,
u8
state
)
static
void
set_chan_state
(
struct
net_device
*
dev
,
u8
state
)
{
x25_channel_t
*
chan
=
dev
->
priv
;
struct
cycx_device
*
card
=
chan
->
card
;
...
...
@@ -1367,15 +1368,12 @@ static void set_chan_state (struct net_device *dev, u8 state)
chan_x25_send_event
(
dev
,
1
);
break
;
case
WAN_CONNECTING
:
string_state
=
"connecting..."
;
break
;
case
WAN_DISCONNECTING
:
string_state
=
"disconnecting..."
;
break
;
case
WAN_DISCONNECTED
:
string_state
=
"disconnected!"
;
...
...
@@ -1391,7 +1389,7 @@ static void set_chan_state (struct net_device *dev, u8 state)
break
;
}
printk
(
KERN_INFO
"%s: interface %s %s
\n
"
,
card
->
devname
,
printk
(
KERN_INFO
"%s: interface %s %s
\n
"
,
card
->
devname
,
dev
->
name
,
string_state
);
chan
->
state
=
state
;
}
...
...
@@ -1412,7 +1410,7 @@ static void set_chan_state (struct net_device *dev, u8 state)
* the packet into 'complete sequence' using M-bit.
* 2. When transmission is complete, an event notification should be issued
* to the router. */
static
int
chan_send
(
struct
net_device
*
dev
,
struct
sk_buff
*
skb
)
static
int
chan_send
(
struct
net_device
*
dev
,
struct
sk_buff
*
skb
)
{
x25_channel_t
*
chan
=
dev
->
priv
;
struct
cycx_device
*
card
=
chan
->
card
;
...
...
@@ -1463,7 +1461,7 @@ static void chan_x25_send_event(struct net_device *dev, u8 event)
}
/* Convert line speed in bps to a number used by cyclom 2x code. */
static
u8
bps_to_speed_code
(
u32
bps
)
static
u8
bps_to_speed_code
(
u32
bps
)
{
u8
number
=
0
;
/* defaults to the lowest (1200) speed ;> */
...
...
@@ -1480,7 +1478,7 @@ static u8 bps_to_speed_code (u32 bps)
}
/* log base 2 */
static
u8
log2
(
u32
n
)
static
u8
log2
(
u32
n
)
{
u8
log
=
0
;
...
...
@@ -1497,7 +1495,7 @@ static u8 log2 (u32 n)
/* Convert decimal string to unsigned integer.
* If len != 0 then only 'len' characters of the string are converted. */
static
unsigned
dec_to_uint
(
u8
*
str
,
int
len
)
static
unsigned
dec_to_uint
(
u8
*
str
,
int
len
)
{
unsigned
val
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment