ar71xx: merge ag71xx specific patches
SVN-Revision: 18751
This commit is contained in:
parent
fce3ebbff8
commit
18885b425c
@ -593,7 +593,7 @@ static void ag71xx_oom_timer_handler(unsigned long data)
|
|||||||
struct net_device *dev = (struct net_device *) data;
|
struct net_device *dev = (struct net_device *) data;
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
struct ag71xx *ag = netdev_priv(dev);
|
||||||
|
|
||||||
netif_rx_schedule(dev, &ag->napi);
|
napi_schedule(&ag->napi);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
static void ag71xx_tx_timeout(struct net_device *dev)
|
||||||
@ -749,7 +749,7 @@ static int ag71xx_poll(struct napi_struct *napi, int limit)
|
|||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
||||||
dev->name, done, limit);
|
dev->name, done, limit);
|
||||||
|
|
||||||
netif_rx_complete(dev, napi);
|
napi_complete(napi);
|
||||||
|
|
||||||
/* enable interrupts */
|
/* enable interrupts */
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
spin_lock_irqsave(&ag->lock, flags);
|
||||||
@ -768,7 +768,7 @@ static int ag71xx_poll(struct napi_struct *napi, int limit)
|
|||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
||||||
netif_rx_complete(dev, napi);
|
napi_complete(napi);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -798,7 +798,7 @@ static irqreturn_t ag71xx_interrupt(int irq, void *dev_id)
|
|||||||
if (likely(status & AG71XX_INT_POLL)) {
|
if (likely(status & AG71XX_INT_POLL)) {
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
DBG("%s: enable polling mode\n", dev->name);
|
||||||
netif_rx_schedule(dev, &ag->napi);
|
napi_schedule(&ag->napi);
|
||||||
}
|
}
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
@ -809,6 +809,18 @@ static void ag71xx_set_multicast_list(struct net_device *dev)
|
|||||||
/* TODO */
|
/* TODO */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct net_device_ops ag71xx_netdev_ops = {
|
||||||
|
.ndo_open = ag71xx_open,
|
||||||
|
.ndo_stop = ag71xx_stop,
|
||||||
|
.ndo_start_xmit = ag71xx_hard_start_xmit,
|
||||||
|
.ndo_set_multicast_list = ag71xx_set_multicast_list,
|
||||||
|
.ndo_do_ioctl = ag71xx_do_ioctl,
|
||||||
|
.ndo_tx_timeout = ag71xx_tx_timeout,
|
||||||
|
.ndo_change_mtu = eth_change_mtu,
|
||||||
|
.ndo_set_mac_address = eth_mac_addr,
|
||||||
|
.ndo_validate_addr = eth_validate_addr,
|
||||||
|
};
|
||||||
|
|
||||||
static int __init ag71xx_probe(struct platform_device *pdev)
|
static int __init ag71xx_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
@ -884,14 +896,9 @@ static int __init ag71xx_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
dev->base_addr = (unsigned long)ag->mac_base;
|
dev->base_addr = (unsigned long)ag->mac_base;
|
||||||
dev->open = ag71xx_open;
|
dev->netdev_ops = &ag71xx_netdev_ops;
|
||||||
dev->stop = ag71xx_stop;
|
|
||||||
dev->hard_start_xmit = ag71xx_hard_start_xmit;
|
|
||||||
dev->set_multicast_list = ag71xx_set_multicast_list;
|
|
||||||
dev->do_ioctl = ag71xx_do_ioctl;
|
|
||||||
dev->ethtool_ops = &ag71xx_ethtool_ops;
|
dev->ethtool_ops = &ag71xx_ethtool_ops;
|
||||||
|
|
||||||
dev->tx_timeout = ag71xx_tx_timeout;
|
|
||||||
INIT_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
INIT_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
||||||
|
|
||||||
init_timer(&ag->oom_timer);
|
init_timer(&ag->oom_timer);
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -595,7 +595,7 @@ static void ag71xx_oom_timer_handler(uns
|
|
||||||
struct net_device *dev = (struct net_device *) data;
|
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
|
||||||
|
|
||||||
- netif_rx_schedule(dev, &ag->napi);
|
|
||||||
+ netif_rx_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
|
||||||
@@ -751,7 +751,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
|
||||||
dev->name, done, limit);
|
|
||||||
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ netif_rx_complete(napi);
|
|
||||||
|
|
||||||
/* enable interrupts */
|
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
|
||||||
@@ -770,7 +770,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ netif_rx_complete(napi);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ static irqreturn_t ag71xx_interrupt(int
|
|
||||||
if (likely(status & AG71XX_INT_POLL)) {
|
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
|
||||||
- netif_rx_schedule(dev, &ag->napi);
|
|
||||||
+ netif_rx_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
@ -1,38 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -595,7 +595,7 @@ static void ag71xx_oom_timer_handler(uns
|
|
||||||
struct net_device *dev = (struct net_device *) data;
|
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
|
||||||
|
|
||||||
- netif_rx_schedule(&ag->napi);
|
|
||||||
+ napi_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
|
||||||
@@ -751,7 +751,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
|
||||||
dev->name, done, limit);
|
|
||||||
|
|
||||||
- netif_rx_complete(napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
|
|
||||||
/* enable interrupts */
|
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
|
||||||
@@ -770,7 +770,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
|
||||||
- netif_rx_complete(napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ static irqreturn_t ag71xx_interrupt(int
|
|
||||||
if (likely(status & AG71XX_INT_POLL)) {
|
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
|
||||||
- netif_rx_schedule(&ag->napi);
|
|
||||||
+ napi_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
@ -1,37 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -811,6 +811,18 @@ static void ag71xx_set_multicast_list(st
|
|
||||||
/* TODO */
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const struct net_device_ops ag71xx_netdev_ops = {
|
|
||||||
+ .ndo_open = ag71xx_open,
|
|
||||||
+ .ndo_stop = ag71xx_stop,
|
|
||||||
+ .ndo_start_xmit = ag71xx_hard_start_xmit,
|
|
||||||
+ .ndo_set_multicast_list = ag71xx_set_multicast_list,
|
|
||||||
+ .ndo_do_ioctl = ag71xx_do_ioctl,
|
|
||||||
+ .ndo_tx_timeout = ag71xx_tx_timeout,
|
|
||||||
+ .ndo_change_mtu = eth_change_mtu,
|
|
||||||
+ .ndo_set_mac_address = eth_mac_addr,
|
|
||||||
+ .ndo_validate_addr = eth_validate_addr,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static int __init ag71xx_probe(struct platform_device *pdev)
|
|
||||||
{
|
|
||||||
struct net_device *dev;
|
|
||||||
@@ -886,14 +898,9 @@ static int __init ag71xx_probe(struct pl
|
|
||||||
}
|
|
||||||
|
|
||||||
dev->base_addr = (unsigned long)ag->mac_base;
|
|
||||||
- dev->open = ag71xx_open;
|
|
||||||
- dev->stop = ag71xx_stop;
|
|
||||||
- dev->hard_start_xmit = ag71xx_hard_start_xmit;
|
|
||||||
- dev->set_multicast_list = ag71xx_set_multicast_list;
|
|
||||||
- dev->do_ioctl = ag71xx_do_ioctl;
|
|
||||||
+ dev->netdev_ops = &ag71xx_netdev_ops;
|
|
||||||
dev->ethtool_ops = &ag71xx_ethtool_ops;
|
|
||||||
|
|
||||||
- dev->tx_timeout = ag71xx_tx_timeout;
|
|
||||||
INIT_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
|
||||||
|
|
||||||
init_timer(&ag->oom_timer);
|
|
@ -1,38 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -595,7 +595,7 @@ static void ag71xx_oom_timer_handler(uns
|
|
||||||
struct net_device *dev = (struct net_device *) data;
|
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
|
||||||
|
|
||||||
- netif_rx_schedule(dev, &ag->napi);
|
|
||||||
+ netif_rx_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
|
||||||
@@ -751,7 +751,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
|
||||||
dev->name, done, limit);
|
|
||||||
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ netif_rx_complete(napi);
|
|
||||||
|
|
||||||
/* enable interrupts */
|
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
|
||||||
@@ -770,7 +770,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ netif_rx_complete(napi);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ static irqreturn_t ag71xx_interrupt(int
|
|
||||||
if (likely(status & AG71XX_INT_POLL)) {
|
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
|
||||||
- netif_rx_schedule(dev, &ag->napi);
|
|
||||||
+ netif_rx_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
@ -1,38 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -595,7 +595,7 @@ static void ag71xx_oom_timer_handler(uns
|
|
||||||
struct net_device *dev = (struct net_device *) data;
|
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
|
||||||
|
|
||||||
- netif_rx_schedule(&ag->napi);
|
|
||||||
+ napi_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
|
||||||
@@ -751,7 +751,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
|
||||||
dev->name, done, limit);
|
|
||||||
|
|
||||||
- netif_rx_complete(napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
|
|
||||||
/* enable interrupts */
|
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
|
||||||
@@ -770,7 +770,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
|
||||||
- netif_rx_complete(napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ static irqreturn_t ag71xx_interrupt(int
|
|
||||||
if (likely(status & AG71XX_INT_POLL)) {
|
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
|
||||||
- netif_rx_schedule(&ag->napi);
|
|
||||||
+ napi_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
@ -1,37 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -811,6 +811,18 @@ static void ag71xx_set_multicast_list(st
|
|
||||||
/* TODO */
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const struct net_device_ops ag71xx_netdev_ops = {
|
|
||||||
+ .ndo_open = ag71xx_open,
|
|
||||||
+ .ndo_stop = ag71xx_stop,
|
|
||||||
+ .ndo_start_xmit = ag71xx_hard_start_xmit,
|
|
||||||
+ .ndo_set_multicast_list = ag71xx_set_multicast_list,
|
|
||||||
+ .ndo_do_ioctl = ag71xx_do_ioctl,
|
|
||||||
+ .ndo_tx_timeout = ag71xx_tx_timeout,
|
|
||||||
+ .ndo_change_mtu = eth_change_mtu,
|
|
||||||
+ .ndo_set_mac_address = eth_mac_addr,
|
|
||||||
+ .ndo_validate_addr = eth_validate_addr,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static int __init ag71xx_probe(struct platform_device *pdev)
|
|
||||||
{
|
|
||||||
struct net_device *dev;
|
|
||||||
@@ -886,14 +898,9 @@ static int __init ag71xx_probe(struct pl
|
|
||||||
}
|
|
||||||
|
|
||||||
dev->base_addr = (unsigned long)ag->mac_base;
|
|
||||||
- dev->open = ag71xx_open;
|
|
||||||
- dev->stop = ag71xx_stop;
|
|
||||||
- dev->hard_start_xmit = ag71xx_hard_start_xmit;
|
|
||||||
- dev->set_multicast_list = ag71xx_set_multicast_list;
|
|
||||||
- dev->do_ioctl = ag71xx_do_ioctl;
|
|
||||||
+ dev->netdev_ops = &ag71xx_netdev_ops;
|
|
||||||
dev->ethtool_ops = &ag71xx_ethtool_ops;
|
|
||||||
|
|
||||||
- dev->tx_timeout = ag71xx_tx_timeout;
|
|
||||||
INIT_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
|
||||||
|
|
||||||
init_timer(&ag->oom_timer);
|
|
@ -1,38 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -595,7 +595,7 @@ static void ag71xx_oom_timer_handler(uns
|
|
||||||
struct net_device *dev = (struct net_device *) data;
|
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
|
||||||
|
|
||||||
- netif_rx_schedule(dev, &ag->napi);
|
|
||||||
+ netif_rx_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
|
||||||
@@ -751,7 +751,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
|
||||||
dev->name, done, limit);
|
|
||||||
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ netif_rx_complete(napi);
|
|
||||||
|
|
||||||
/* enable interrupts */
|
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
|
||||||
@@ -770,7 +770,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
|
||||||
- netif_rx_complete(dev, napi);
|
|
||||||
+ netif_rx_complete(napi);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ static irqreturn_t ag71xx_interrupt(int
|
|
||||||
if (likely(status & AG71XX_INT_POLL)) {
|
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
|
||||||
- netif_rx_schedule(dev, &ag->napi);
|
|
||||||
+ netif_rx_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
@ -1,38 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -595,7 +595,7 @@ static void ag71xx_oom_timer_handler(uns
|
|
||||||
struct net_device *dev = (struct net_device *) data;
|
|
||||||
struct ag71xx *ag = netdev_priv(dev);
|
|
||||||
|
|
||||||
- netif_rx_schedule(&ag->napi);
|
|
||||||
+ napi_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ag71xx_tx_timeout(struct net_device *dev)
|
|
||||||
@@ -751,7 +751,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
DBG("%s: disable polling mode, done=%d, limit=%d\n",
|
|
||||||
dev->name, done, limit);
|
|
||||||
|
|
||||||
- netif_rx_complete(napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
|
|
||||||
/* enable interrupts */
|
|
||||||
spin_lock_irqsave(&ag->lock, flags);
|
|
||||||
@@ -770,7 +770,7 @@ static int ag71xx_poll(struct napi_struc
|
|
||||||
printk(KERN_DEBUG "%s: out of memory\n", dev->name);
|
|
||||||
|
|
||||||
mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL);
|
|
||||||
- netif_rx_complete(napi);
|
|
||||||
+ napi_complete(napi);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -800,7 +800,7 @@ static irqreturn_t ag71xx_interrupt(int
|
|
||||||
if (likely(status & AG71XX_INT_POLL)) {
|
|
||||||
ag71xx_int_disable(ag, AG71XX_INT_POLL);
|
|
||||||
DBG("%s: enable polling mode\n", dev->name);
|
|
||||||
- netif_rx_schedule(&ag->napi);
|
|
||||||
+ napi_schedule(&ag->napi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
|
@ -1,37 +0,0 @@
|
|||||||
--- a/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
+++ b/drivers/net/ag71xx/ag71xx_main.c
|
|
||||||
@@ -811,6 +811,18 @@ static void ag71xx_set_multicast_list(st
|
|
||||||
/* TODO */
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const struct net_device_ops ag71xx_netdev_ops = {
|
|
||||||
+ .ndo_open = ag71xx_open,
|
|
||||||
+ .ndo_stop = ag71xx_stop,
|
|
||||||
+ .ndo_start_xmit = ag71xx_hard_start_xmit,
|
|
||||||
+ .ndo_set_multicast_list = ag71xx_set_multicast_list,
|
|
||||||
+ .ndo_do_ioctl = ag71xx_do_ioctl,
|
|
||||||
+ .ndo_tx_timeout = ag71xx_tx_timeout,
|
|
||||||
+ .ndo_change_mtu = eth_change_mtu,
|
|
||||||
+ .ndo_set_mac_address = eth_mac_addr,
|
|
||||||
+ .ndo_validate_addr = eth_validate_addr,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static int __init ag71xx_probe(struct platform_device *pdev)
|
|
||||||
{
|
|
||||||
struct net_device *dev;
|
|
||||||
@@ -886,14 +898,9 @@ static int __init ag71xx_probe(struct pl
|
|
||||||
}
|
|
||||||
|
|
||||||
dev->base_addr = (unsigned long)ag->mac_base;
|
|
||||||
- dev->open = ag71xx_open;
|
|
||||||
- dev->stop = ag71xx_stop;
|
|
||||||
- dev->hard_start_xmit = ag71xx_hard_start_xmit;
|
|
||||||
- dev->set_multicast_list = ag71xx_set_multicast_list;
|
|
||||||
- dev->do_ioctl = ag71xx_do_ioctl;
|
|
||||||
+ dev->netdev_ops = &ag71xx_netdev_ops;
|
|
||||||
dev->ethtool_ops = &ag71xx_ethtool_ops;
|
|
||||||
|
|
||||||
- dev->tx_timeout = ag71xx_tx_timeout;
|
|
||||||
INIT_WORK(&ag->restart_work, ag71xx_restart_work_func);
|
|
||||||
|
|
||||||
init_timer(&ag->oom_timer);
|
|
Loading…
Reference in New Issue
Block a user