net/fec: add poll controller function for fec nic
Add poll controller function for fec nic. Signed-off-by: Xiao Jiang <jgq516@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c7c83d1c95
commit
7f5c6addcd
|
@ -242,6 +242,7 @@ struct fec_enet_private {
|
|||
int link;
|
||||
int full_duplex;
|
||||
struct completion mdio_done;
|
||||
int irq[FEC_IRQ_NUM];
|
||||
};
|
||||
|
||||
/* FEC MII MMFR bits definition */
|
||||
|
@ -1363,6 +1364,29 @@ fec_set_mac_address(struct net_device *ndev, void *p)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
/*
|
||||
* fec_poll_controller: FEC Poll controller function
|
||||
* @dev: The FEC network adapter
|
||||
*
|
||||
* Polled functionality used by netconsole and others in non interrupt mode
|
||||
*
|
||||
*/
|
||||
void fec_poll_controller(struct net_device *dev)
|
||||
{
|
||||
int i;
|
||||
struct fec_enet_private *fep = netdev_priv(dev);
|
||||
|
||||
for (i = 0; i < FEC_IRQ_NUM; i++) {
|
||||
if (fep->irq[i] > 0) {
|
||||
disable_irq(fep->irq[i]);
|
||||
fec_enet_interrupt(fep->irq[i], dev);
|
||||
enable_irq(fep->irq[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static const struct net_device_ops fec_netdev_ops = {
|
||||
.ndo_open = fec_enet_open,
|
||||
.ndo_stop = fec_enet_close,
|
||||
|
@ -1373,6 +1397,9 @@ static const struct net_device_ops fec_netdev_ops = {
|
|||
.ndo_tx_timeout = fec_timeout,
|
||||
.ndo_set_mac_address = fec_set_mac_address,
|
||||
.ndo_do_ioctl = fec_enet_ioctl,
|
||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||
.ndo_poll_controller = fec_poll_controller,
|
||||
#endif
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue