Merge branch 'origin' into devel
Conflicts: sound/soc/pxa/pxa2xx-i2s.c
This commit is contained in:
@@ -259,6 +259,20 @@ static void __exit ali_ircc_cleanup(void)
|
||||
IRDA_DEBUG(2, "%s(), ----------------- End -----------------\n", __func__);
|
||||
}
|
||||
|
||||
static const struct net_device_ops ali_ircc_sir_ops = {
|
||||
.ndo_open = ali_ircc_net_open,
|
||||
.ndo_stop = ali_ircc_net_close,
|
||||
.ndo_start_xmit = ali_ircc_sir_hard_xmit,
|
||||
.ndo_do_ioctl = ali_ircc_net_ioctl,
|
||||
};
|
||||
|
||||
static const struct net_device_ops ali_ircc_fir_ops = {
|
||||
.ndo_open = ali_ircc_net_open,
|
||||
.ndo_stop = ali_ircc_net_close,
|
||||
.ndo_start_xmit = ali_ircc_fir_hard_xmit,
|
||||
.ndo_do_ioctl = ali_ircc_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* Function ali_ircc_open (int i, chipio_t *inf)
|
||||
*
|
||||
@@ -361,10 +375,7 @@ static int ali_ircc_open(int i, chipio_t *info)
|
||||
self->tx_fifo.tail = self->tx_buff.head;
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
|
||||
dev->open = ali_ircc_net_open;
|
||||
dev->stop = ali_ircc_net_close;
|
||||
dev->do_ioctl = ali_ircc_net_ioctl;
|
||||
dev->netdev_ops = &ali_ircc_sir_ops;
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err) {
|
||||
@@ -974,7 +985,7 @@ static void ali_ircc_change_speed(struct ali_ircc_cb *self, __u32 baud)
|
||||
ali_ircc_fir_change_speed(self, baud);
|
||||
|
||||
/* Install FIR xmit handler*/
|
||||
dev->hard_start_xmit = ali_ircc_fir_hard_xmit;
|
||||
dev->netdev_ops = &ali_ircc_fir_ops;
|
||||
|
||||
/* Enable Interuupt */
|
||||
self->ier = IER_EOM; // benjamin 2000/11/20 07:24PM
|
||||
@@ -988,7 +999,7 @@ static void ali_ircc_change_speed(struct ali_ircc_cb *self, __u32 baud)
|
||||
ali_ircc_sir_change_speed(self, baud);
|
||||
|
||||
/* Install SIR xmit handler*/
|
||||
dev->hard_start_xmit = ali_ircc_sir_hard_xmit;
|
||||
dev->netdev_ops = &ali_ircc_sir_ops;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1524,6 +1524,13 @@ toshoboe_close (struct pci_dev *pci_dev)
|
||||
free_netdev(self->netdev);
|
||||
}
|
||||
|
||||
static const struct net_device_ops toshoboe_netdev_ops = {
|
||||
.ndo_open = toshoboe_net_open,
|
||||
.ndo_stop = toshoboe_net_close,
|
||||
.ndo_start_xmit = toshoboe_hard_xmit,
|
||||
.ndo_do_ioctl = toshoboe_net_ioctl,
|
||||
};
|
||||
|
||||
static int
|
||||
toshoboe_open (struct pci_dev *pci_dev, const struct pci_device_id *pdid)
|
||||
{
|
||||
@@ -1657,10 +1664,7 @@ toshoboe_open (struct pci_dev *pci_dev, const struct pci_device_id *pdid)
|
||||
#endif
|
||||
|
||||
SET_NETDEV_DEV(dev, &pci_dev->dev);
|
||||
dev->hard_start_xmit = toshoboe_hard_xmit;
|
||||
dev->open = toshoboe_net_open;
|
||||
dev->stop = toshoboe_net_close;
|
||||
dev->do_ioctl = toshoboe_net_ioctl;
|
||||
dev->netdev_ops = &toshoboe_netdev_ops;
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err)
|
||||
|
@@ -1401,6 +1401,14 @@ static inline void irda_usb_init_qos(struct irda_usb_cb *self)
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
static const struct net_device_ops irda_usb_netdev_ops = {
|
||||
.ndo_open = irda_usb_net_open,
|
||||
.ndo_stop = irda_usb_net_close,
|
||||
.ndo_do_ioctl = irda_usb_net_ioctl,
|
||||
.ndo_start_xmit = irda_usb_hard_xmit,
|
||||
.ndo_tx_timeout = irda_usb_net_timeout,
|
||||
};
|
||||
|
||||
/*
|
||||
* Initialise the network side of the irda-usb instance
|
||||
* Called when a new USB instance is registered in irda_usb_probe()
|
||||
@@ -1411,15 +1419,9 @@ static inline int irda_usb_open(struct irda_usb_cb *self)
|
||||
|
||||
IRDA_DEBUG(1, "%s()\n", __func__);
|
||||
|
||||
irda_usb_init_qos(self);
|
||||
netdev->netdev_ops = &irda_usb_netdev_ops;
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
netdev->hard_start_xmit = irda_usb_hard_xmit;
|
||||
netdev->tx_timeout = irda_usb_net_timeout;
|
||||
netdev->watchdog_timeo = 250*HZ/1000; /* 250 ms > USB timeout */
|
||||
netdev->open = irda_usb_net_open;
|
||||
netdev->stop = irda_usb_net_close;
|
||||
netdev->do_ioctl = irda_usb_net_ioctl;
|
||||
irda_usb_init_qos(self);
|
||||
|
||||
return register_netdev(netdev);
|
||||
}
|
||||
|
@@ -418,6 +418,12 @@ static int kingsun_net_ioctl(struct net_device *netdev, struct ifreq *rq,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct net_device_ops kingsun_ops = {
|
||||
.ndo_start_xmit = kingsun_hard_xmit,
|
||||
.ndo_open = kingsun_net_open,
|
||||
.ndo_stop = kingsun_net_close,
|
||||
.ndo_do_ioctl = kingsun_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* This routine is called by the USB subsystem for each new device
|
||||
@@ -520,10 +526,7 @@ static int kingsun_probe(struct usb_interface *intf,
|
||||
irda_qos_bits_to_value(&kingsun->qos);
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
net->hard_start_xmit = kingsun_hard_xmit;
|
||||
net->open = kingsun_net_open;
|
||||
net->stop = kingsun_net_close;
|
||||
net->do_ioctl = kingsun_net_ioctl;
|
||||
net->netdev_ops = &kingsun_ops;
|
||||
|
||||
ret = register_netdev(net);
|
||||
if (ret != 0)
|
||||
|
@@ -668,6 +668,12 @@ static int ks959_net_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct net_device_ops ks959_ops = {
|
||||
.ndo_start_xmit = ks959_hard_xmit,
|
||||
.ndo_open = ks959_net_open,
|
||||
.ndo_stop = ks959_net_close,
|
||||
.ndo_do_ioctl = ks959_net_ioctl,
|
||||
};
|
||||
/*
|
||||
* This routine is called by the USB subsystem for each new device
|
||||
* in the system. We need to check if the device is ours, and in
|
||||
@@ -780,10 +786,7 @@ static int ks959_probe(struct usb_interface *intf,
|
||||
irda_qos_bits_to_value(&kingsun->qos);
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
net->hard_start_xmit = ks959_hard_xmit;
|
||||
net->open = ks959_net_open;
|
||||
net->stop = ks959_net_close;
|
||||
net->do_ioctl = ks959_net_ioctl;
|
||||
net->netdev_ops = &ks959_ops;
|
||||
|
||||
ret = register_netdev(net);
|
||||
if (ret != 0)
|
||||
|
@@ -562,6 +562,13 @@ static int ksdazzle_net_ioctl(struct net_device *netdev, struct ifreq *rq,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct net_device_ops ksdazzle_ops = {
|
||||
.ndo_start_xmit = ksdazzle_hard_xmit,
|
||||
.ndo_open = ksdazzle_net_open,
|
||||
.ndo_stop = ksdazzle_net_close,
|
||||
.ndo_do_ioctl = ksdazzle_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* This routine is called by the USB subsystem for each new device
|
||||
* in the system. We need to check if the device is ours, and in
|
||||
@@ -684,10 +691,7 @@ static int ksdazzle_probe(struct usb_interface *intf,
|
||||
irda_qos_bits_to_value(&kingsun->qos);
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
net->hard_start_xmit = ksdazzle_hard_xmit;
|
||||
net->open = ksdazzle_net_open;
|
||||
net->stop = ksdazzle_net_close;
|
||||
net->do_ioctl = ksdazzle_net_ioctl;
|
||||
net->netdev_ops = &ksdazzle_ops;
|
||||
|
||||
ret = register_netdev(net);
|
||||
if (ret != 0)
|
||||
|
@@ -873,6 +873,13 @@ static int mcs_hard_xmit(struct sk_buff *skb, struct net_device *ndev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct net_device_ops mcs_netdev_ops = {
|
||||
.ndo_open = mcs_net_open,
|
||||
.ndo_stop = mcs_net_close,
|
||||
.ndo_start_xmit = mcs_hard_xmit,
|
||||
.ndo_do_ioctl = mcs_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* This function is called by the USB subsystem for each new device in the
|
||||
* system. Need to verify the device and if it is, then start handling it.
|
||||
@@ -919,11 +926,7 @@ static int mcs_probe(struct usb_interface *intf,
|
||||
/* Speed change work initialisation*/
|
||||
INIT_WORK(&mcs->work, mcs_speed_work);
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
ndev->hard_start_xmit = mcs_hard_xmit;
|
||||
ndev->open = mcs_net_open;
|
||||
ndev->stop = mcs_net_close;
|
||||
ndev->do_ioctl = mcs_net_ioctl;
|
||||
ndev->netdev_ops = &mcs_netdev_ops;
|
||||
|
||||
if (!intf->cur_altsetting)
|
||||
goto error2;
|
||||
|
@@ -331,6 +331,20 @@ static void __exit nsc_ircc_cleanup(void)
|
||||
pnp_registered = 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops nsc_ircc_sir_ops = {
|
||||
.ndo_open = nsc_ircc_net_open,
|
||||
.ndo_stop = nsc_ircc_net_close,
|
||||
.ndo_start_xmit = nsc_ircc_hard_xmit_sir,
|
||||
.ndo_do_ioctl = nsc_ircc_net_ioctl,
|
||||
};
|
||||
|
||||
static const struct net_device_ops nsc_ircc_fir_ops = {
|
||||
.ndo_open = nsc_ircc_net_open,
|
||||
.ndo_stop = nsc_ircc_net_close,
|
||||
.ndo_start_xmit = nsc_ircc_hard_xmit_fir,
|
||||
.ndo_do_ioctl = nsc_ircc_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* Function nsc_ircc_open (iobase, irq)
|
||||
*
|
||||
@@ -441,10 +455,7 @@ static int __init nsc_ircc_open(chipio_t *info)
|
||||
self->tx_fifo.tail = self->tx_buff.head;
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
dev->hard_start_xmit = nsc_ircc_hard_xmit_sir;
|
||||
dev->open = nsc_ircc_net_open;
|
||||
dev->stop = nsc_ircc_net_close;
|
||||
dev->do_ioctl = nsc_ircc_net_ioctl;
|
||||
dev->netdev_ops = &nsc_ircc_sir_ops;
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err) {
|
||||
@@ -1320,12 +1331,12 @@ static __u8 nsc_ircc_change_speed(struct nsc_ircc_cb *self, __u32 speed)
|
||||
switch_bank(iobase, BANK0);
|
||||
if (speed > 115200) {
|
||||
/* Install FIR xmit handler */
|
||||
dev->hard_start_xmit = nsc_ircc_hard_xmit_fir;
|
||||
dev->netdev_ops = &nsc_ircc_fir_ops;
|
||||
ier = IER_SFIF_IE;
|
||||
nsc_ircc_dma_receive(self);
|
||||
} else {
|
||||
/* Install SIR xmit handler */
|
||||
dev->hard_start_xmit = nsc_ircc_hard_xmit_sir;
|
||||
dev->netdev_ops = &nsc_ircc_sir_ops;
|
||||
ier = IER_RXHDL_IE;
|
||||
}
|
||||
/* Set our current interrupt mask */
|
||||
|
@@ -753,7 +753,8 @@ static int sirdev_alloc_buffers(struct sir_dev *dev)
|
||||
dev->rx_buff.truesize = IRDA_SKB_MAX_MTU;
|
||||
|
||||
/* Bootstrap ZeroCopy Rx */
|
||||
dev->rx_buff.skb = __dev_alloc_skb(dev->rx_buff.truesize, GFP_KERNEL);
|
||||
dev->rx_buff.skb = __netdev_alloc_skb(dev->netdev, dev->rx_buff.truesize,
|
||||
GFP_KERNEL);
|
||||
if (dev->rx_buff.skb == NULL)
|
||||
return -ENOMEM;
|
||||
skb_reserve(dev->rx_buff.skb, 1);
|
||||
@@ -779,8 +780,7 @@ static int sirdev_alloc_buffers(struct sir_dev *dev)
|
||||
|
||||
static void sirdev_free_buffers(struct sir_dev *dev)
|
||||
{
|
||||
if (dev->rx_buff.skb)
|
||||
kfree_skb(dev->rx_buff.skb);
|
||||
kfree_skb(dev->rx_buff.skb);
|
||||
kfree(dev->tx_buff.head);
|
||||
dev->rx_buff.head = dev->tx_buff.head = NULL;
|
||||
dev->rx_buff.skb = NULL;
|
||||
@@ -865,6 +865,12 @@ out:
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops sirdev_ops = {
|
||||
.ndo_start_xmit = sirdev_hard_xmit,
|
||||
.ndo_open = sirdev_open,
|
||||
.ndo_stop = sirdev_close,
|
||||
.ndo_do_ioctl = sirdev_ioctl,
|
||||
};
|
||||
/* ----------------------------------------------------------------------------- */
|
||||
|
||||
struct sir_dev * sirdev_get_instance(const struct sir_driver *drv, const char *name)
|
||||
@@ -908,10 +914,7 @@ struct sir_dev * sirdev_get_instance(const struct sir_driver *drv, const char *n
|
||||
dev->netdev = ndev;
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
ndev->hard_start_xmit = sirdev_hard_xmit;
|
||||
ndev->open = sirdev_open;
|
||||
ndev->stop = sirdev_close;
|
||||
ndev->do_ioctl = sirdev_ioctl;
|
||||
ndev->netdev_ops = &sirdev_ops;
|
||||
|
||||
if (register_netdev(ndev)) {
|
||||
IRDA_ERROR("%s(), register_netdev() failed!\n", __func__);
|
||||
|
@@ -486,6 +486,26 @@ static int __init smsc_ircc_init(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int smsc_ircc_net_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
{
|
||||
struct smsc_ircc_cb *self = netdev_priv(dev);
|
||||
|
||||
if (self->io.speed > 115200)
|
||||
return smsc_ircc_hard_xmit_fir(skb, dev);
|
||||
else
|
||||
return smsc_ircc_hard_xmit_sir(skb, dev);
|
||||
}
|
||||
|
||||
static const struct net_device_ops smsc_ircc_netdev_ops = {
|
||||
.ndo_open = smsc_ircc_net_open,
|
||||
.ndo_stop = smsc_ircc_net_close,
|
||||
.ndo_do_ioctl = smsc_ircc_net_ioctl,
|
||||
.ndo_start_xmit = smsc_ircc_net_xmit,
|
||||
#if SMSC_IRCC2_C_NET_TIMEOUT
|
||||
.ndo_tx_timeout = smsc_ircc_timeout,
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
* Function smsc_ircc_open (firbase, sirbase, dma, irq)
|
||||
*
|
||||
@@ -519,14 +539,10 @@ static int __init smsc_ircc_open(unsigned int fir_base, unsigned int sir_base, u
|
||||
goto err_out1;
|
||||
}
|
||||
|
||||
dev->hard_start_xmit = smsc_ircc_hard_xmit_sir;
|
||||
#if SMSC_IRCC2_C_NET_TIMEOUT
|
||||
dev->tx_timeout = smsc_ircc_timeout;
|
||||
dev->watchdog_timeo = HZ * 2; /* Allow enough time for speed change */
|
||||
#endif
|
||||
dev->open = smsc_ircc_net_open;
|
||||
dev->stop = smsc_ircc_net_close;
|
||||
dev->do_ioctl = smsc_ircc_net_ioctl;
|
||||
dev->netdev_ops = &smsc_ircc_netdev_ops;
|
||||
|
||||
self = netdev_priv(dev);
|
||||
self->netdev = dev;
|
||||
@@ -995,9 +1011,6 @@ static void smsc_ircc_fir_start(struct smsc_ircc_cb *self)
|
||||
|
||||
/* Reset everything */
|
||||
|
||||
/* Install FIR transmit handler */
|
||||
dev->hard_start_xmit = smsc_ircc_hard_xmit_fir;
|
||||
|
||||
/* Clear FIFO */
|
||||
outb(inb(fir_base + IRCC_LCR_A) | IRCC_LCR_A_FIFO_RESET, fir_base + IRCC_LCR_A);
|
||||
|
||||
@@ -1894,7 +1907,6 @@ static void smsc_ircc_sir_start(struct smsc_ircc_cb *self)
|
||||
IRDA_ASSERT(self != NULL, return;);
|
||||
dev = self->netdev;
|
||||
IRDA_ASSERT(dev != NULL, return;);
|
||||
dev->hard_start_xmit = &smsc_ircc_hard_xmit_sir;
|
||||
|
||||
fir_base = self->io.fir_base;
|
||||
sir_base = self->io.sir_base;
|
||||
|
@@ -1007,6 +1007,13 @@ static int stir_net_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static const struct net_device_ops stir_netdev_ops = {
|
||||
.ndo_open = stir_net_open,
|
||||
.ndo_stop = stir_net_close,
|
||||
.ndo_start_xmit = stir_hard_xmit,
|
||||
.ndo_do_ioctl = stir_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* This routine is called by the USB subsystem for each new device
|
||||
* in the system. We need to check if the device is ours, and in
|
||||
@@ -1054,10 +1061,7 @@ static int stir_probe(struct usb_interface *intf,
|
||||
irda_qos_bits_to_value(&stir->qos);
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
net->hard_start_xmit = stir_hard_xmit;
|
||||
net->open = stir_net_open;
|
||||
net->stop = stir_net_close;
|
||||
net->do_ioctl = stir_net_ioctl;
|
||||
net->netdev_ops = &stir_netdev_ops;
|
||||
|
||||
ret = register_netdev(net);
|
||||
if (ret != 0)
|
||||
|
@@ -310,6 +310,19 @@ static void __exit via_ircc_cleanup(void)
|
||||
pci_unregister_driver (&via_driver);
|
||||
}
|
||||
|
||||
static const struct net_device_ops via_ircc_sir_ops = {
|
||||
.ndo_start_xmit = via_ircc_hard_xmit_sir,
|
||||
.ndo_open = via_ircc_net_open,
|
||||
.ndo_stop = via_ircc_net_close,
|
||||
.ndo_do_ioctl = via_ircc_net_ioctl,
|
||||
};
|
||||
static const struct net_device_ops via_ircc_fir_ops = {
|
||||
.ndo_start_xmit = via_ircc_hard_xmit_fir,
|
||||
.ndo_open = via_ircc_net_open,
|
||||
.ndo_stop = via_ircc_net_close,
|
||||
.ndo_do_ioctl = via_ircc_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* Function via_ircc_open (iobase, irq)
|
||||
*
|
||||
@@ -428,10 +441,7 @@ static __devinit int via_ircc_open(int i, chipio_t * info, unsigned int id)
|
||||
self->tx_fifo.tail = self->tx_buff.head;
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
dev->hard_start_xmit = via_ircc_hard_xmit_sir;
|
||||
dev->open = via_ircc_net_open;
|
||||
dev->stop = via_ircc_net_close;
|
||||
dev->do_ioctl = via_ircc_net_ioctl;
|
||||
dev->netdev_ops = &via_ircc_sir_ops;
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err)
|
||||
@@ -798,11 +808,11 @@ static void via_ircc_change_speed(struct via_ircc_cb *self, __u32 speed)
|
||||
|
||||
if (speed > 115200) {
|
||||
/* Install FIR xmit handler */
|
||||
dev->hard_start_xmit = via_ircc_hard_xmit_fir;
|
||||
dev->netdev_ops = &via_ircc_fir_ops;
|
||||
via_ircc_dma_receive(self);
|
||||
} else {
|
||||
/* Install SIR xmit handler */
|
||||
dev->hard_start_xmit = via_ircc_hard_xmit_sir;
|
||||
dev->netdev_ops = &via_ircc_sir_ops;
|
||||
}
|
||||
netif_wake_queue(dev);
|
||||
}
|
||||
|
@@ -1573,6 +1573,14 @@ static int vlsi_close(struct net_device *ndev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct net_device_ops vlsi_netdev_ops = {
|
||||
.ndo_open = vlsi_open,
|
||||
.ndo_stop = vlsi_close,
|
||||
.ndo_start_xmit = vlsi_hard_start_xmit,
|
||||
.ndo_do_ioctl = vlsi_ioctl,
|
||||
.ndo_tx_timeout = vlsi_tx_timeout,
|
||||
};
|
||||
|
||||
static int vlsi_irda_init(struct net_device *ndev)
|
||||
{
|
||||
vlsi_irda_dev_t *idev = netdev_priv(ndev);
|
||||
@@ -1608,11 +1616,7 @@ static int vlsi_irda_init(struct net_device *ndev)
|
||||
ndev->flags |= IFF_PORTSEL | IFF_AUTOMEDIA;
|
||||
ndev->if_port = IF_PORT_UNKNOWN;
|
||||
|
||||
ndev->open = vlsi_open;
|
||||
ndev->stop = vlsi_close;
|
||||
ndev->hard_start_xmit = vlsi_hard_start_xmit;
|
||||
ndev->do_ioctl = vlsi_ioctl;
|
||||
ndev->tx_timeout = vlsi_tx_timeout;
|
||||
ndev->netdev_ops = &vlsi_netdev_ops;
|
||||
ndev->watchdog_timeo = 500*HZ/1000; /* max. allowed turn time for IrLAP */
|
||||
|
||||
SET_NETDEV_DEV(ndev, &pdev->dev);
|
||||
|
@@ -140,6 +140,13 @@ static void __exit w83977af_cleanup(void)
|
||||
}
|
||||
}
|
||||
|
||||
static const struct net_device_ops w83977_netdev_ops = {
|
||||
.ndo_open = w83977af_net_open,
|
||||
.ndo_stop = w83977af_net_close,
|
||||
.ndo_start_xmit = w83977af_hard_xmit,
|
||||
.ndo_do_ioctl = w83977af_net_ioctl,
|
||||
};
|
||||
|
||||
/*
|
||||
* Function w83977af_open (iobase, irq)
|
||||
*
|
||||
@@ -231,11 +238,7 @@ static int w83977af_open(int i, unsigned int iobase, unsigned int irq,
|
||||
self->rx_buff.data = self->rx_buff.head;
|
||||
self->netdev = dev;
|
||||
|
||||
/* Override the network functions we need to use */
|
||||
dev->hard_start_xmit = w83977af_hard_xmit;
|
||||
dev->open = w83977af_net_open;
|
||||
dev->stop = w83977af_net_close;
|
||||
dev->do_ioctl = w83977af_net_ioctl;
|
||||
dev->netdev_ops = &w83977_netdev_ops;
|
||||
|
||||
err = register_netdev(dev);
|
||||
if (err) {
|
||||
|
Reference in New Issue
Block a user