ucc_geth: add support for netpoll
This patch adds netpoll support for the QE UCC Gigabit Ethernet driver. Tested using netconsole and KGDBoE. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
80a9fad8e8
Коммит
26d29ea799
|
@ -3666,6 +3666,23 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
|
|||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
/*
|
||||
* Polling 'interrupt' - used by things like netconsole to send skbs
|
||||
* without having to re-enable interrupts. It's not called while
|
||||
* the interrupt routine is executing.
|
||||
*/
|
||||
static void ucc_netpoll(struct net_device *dev)
|
||||
{
|
||||
struct ucc_geth_private *ugeth = netdev_priv(dev);
|
||||
int irq = ugeth->ug_info->uf_info.irq;
|
||||
|
||||
disable_irq(irq);
|
||||
ucc_geth_irq_handler(irq, dev);
|
||||
enable_irq(irq);
|
||||
}
|
||||
#endif /* CONFIG_NET_POLL_CONTROLLER */
|
||||
|
||||
/* Called when something needs to use the ethernet device */
|
||||
/* Returns 0 for success. */
|
||||
static int ucc_geth_open(struct net_device *dev)
|
||||
|
@ -4008,6 +4025,9 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
|
|||
#ifdef CONFIG_UGETH_NAPI
|
||||
netif_napi_add(dev, &ugeth->napi, ucc_geth_poll, UCC_GETH_DEV_WEIGHT);
|
||||
#endif /* CONFIG_UGETH_NAPI */
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
dev->poll_controller = ucc_netpoll;
|
||||
#endif
|
||||
dev->stop = ucc_geth_close;
|
||||
// dev->change_mtu = ucc_geth_change_mtu;
|
||||
dev->mtu = 1500;
|
||||
|
|
Загрузка…
Ссылка в новой задаче