git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
net
/
hamradio
/
baycom_epp.c
diff --git
a/drivers/net/hamradio/baycom_epp.c
b/drivers/net/hamradio/baycom_epp.c
index
e4188d0
..
153b6dc
100644
(file)
--- a/
drivers/net/hamradio/baycom_epp.c
+++ b/
drivers/net/hamradio/baycom_epp.c
@@
-168,8
+168,9
@@
struct baycom_state {
int magic;
struct pardevice *pdev;
int magic;
struct pardevice *pdev;
+ struct net_device *dev;
unsigned int work_running;
unsigned int work_running;
- struct
work_struct
run_work;
+ struct
delayed_work
run_work;
unsigned int modem;
unsigned int bitrate;
unsigned char stat;
unsigned int modem;
unsigned int bitrate;
unsigned char stat;
@@
-323,7
+324,7
@@
static int eppconfig(struct baycom_state *bc)
/* ---------------------------------------------------------------------- */
/* ---------------------------------------------------------------------- */
-static void epp_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static void epp_interrupt(int irq, void *dev_id)
{
}
{
}
@@
-659,16
+660,18
@@
static int receive(struct net_device *dev, int cnt)
#define GETTICK(x)
#endif /* __i386__ */
#define GETTICK(x)
#endif /* __i386__ */
-static void epp_bh(struct
net_device *dev
)
+static void epp_bh(struct
work_struct *work
)
{
{
+ struct net_device *dev;
struct baycom_state *bc;
struct parport *pp;
unsigned char stat;
unsigned char tmp[2];
unsigned int time1 = 0, time2 = 0, time3 = 0;
int cnt, cnt2;
struct baycom_state *bc;
struct parport *pp;
unsigned char stat;
unsigned char tmp[2];
unsigned int time1 = 0, time2 = 0, time3 = 0;
int cnt, cnt2;
-
- bc = netdev_priv(dev);
+
+ bc = container_of(work, struct baycom_state, run_work.work);
+ dev = bc->dev;
if (!bc->work_running)
return;
baycom_int_freq(bc);
if (!bc->work_running)
return;
baycom_int_freq(bc);
@@
-889,7
+892,7
@@
static int epp_open(struct net_device *dev)
return -EBUSY;
}
dev->irq = /*pp->irq*/ 0;
return -EBUSY;
}
dev->irq = /*pp->irq*/ 0;
- INIT_
WORK(&bc->run_work, (void *)(void *)epp_bh, dev
);
+ INIT_
DELAYED_WORK(&bc->run_work, epp_bh
);
bc->work_running = 1;
bc->modem = EPP_CONVENTIONAL;
if (eppconfig(bc))
bc->work_running = 1;
bc->modem = EPP_CONVENTIONAL;
if (eppconfig(bc))
@@
-905,7
+908,7
@@
static int epp_open(struct net_device *dev)
/* autoprobe baud rate */
tstart = jiffies;
i = 0;
/* autoprobe baud rate */
tstart = jiffies;
i = 0;
- while (
(signed)(jiffies-tstart-HZ/3) < 0
) {
+ while (
time_before(jiffies, tstart + HZ/3)
) {
if (pp->ops->epp_read_addr(pp, &stat, 1, 0) != 1)
goto epptimeout;
if ((stat & (EPP_NRAEF|EPP_NRHF)) == EPP_NRHF) {
if (pp->ops->epp_read_addr(pp, &stat, 1, 0) != 1)
goto epptimeout;
if ((stat & (EPP_NRAEF|EPP_NRHF)) == EPP_NRHF) {
@@
-1138,12
+1141,6
@@
static int baycom_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
*/
static void baycom_probe(struct net_device *dev)
{
*/
static void baycom_probe(struct net_device *dev)
{
- static char ax25_bcast[AX25_ADDR_LEN] = {
- 'Q' << 1, 'S' << 1, 'T' << 1, ' ' << 1, ' ' << 1, ' ' << 1, '0' << 1
- };
- static char ax25_nocall[AX25_ADDR_LEN] = {
- 'L' << 1, 'I' << 1, 'N' << 1, 'U' << 1, 'X' << 1, ' ' << 1, '1' << 1
- };
const struct hdlcdrv_channel_params dflt_ch_params = {
20, 2, 10, 40, 0
};
const struct hdlcdrv_channel_params dflt_ch_params = {
20, 2, 10, 40, 0
};
@@
-1179,8
+1176,8
@@
static void baycom_probe(struct net_device *dev)
dev->hard_header_len = AX25_MAX_HEADER_LEN + AX25_BPQ_HEADER_LEN;
dev->mtu = AX25_DEF_PACLEN; /* eth_mtu is the default */
dev->addr_len = AX25_ADDR_LEN; /* sizeof an ax.25 address */
dev->hard_header_len = AX25_MAX_HEADER_LEN + AX25_BPQ_HEADER_LEN;
dev->mtu = AX25_DEF_PACLEN; /* eth_mtu is the default */
dev->addr_len = AX25_ADDR_LEN; /* sizeof an ax.25 address */
- memcpy(dev->broadcast, ax25_bcast, AX25_ADDR_LEN);
- memcpy(dev->dev_addr,
ax25_nocall
, AX25_ADDR_LEN);
+ memcpy(dev->broadcast,
&
ax25_bcast, AX25_ADDR_LEN);
+ memcpy(dev->dev_addr,
&null_ax25_address
, AX25_ADDR_LEN);
dev->tx_queue_len = 16;
/* New style flags */
dev->tx_queue_len = 16;
/* New style flags */
@@
-1213,6
+1210,7
@@
static void __init baycom_epp_dev_setup(struct net_device *dev)
/*
* initialize part of the baycom_state struct
*/
/*
* initialize part of the baycom_state struct
*/
+ bc->dev = dev;
bc->magic = BAYCOM_MAGIC;
bc->cfg.fclk = 19666600;
bc->cfg.bps = 9600;
bc->magic = BAYCOM_MAGIC;
bc->cfg.fclk = 19666600;
bc->cfg.bps = 9600;