Skip to content

Commit

Permalink
[netdrvr] fec_mpc52xx: Implement polling, to make netconsole work.
Browse files Browse the repository at this point in the history
Implement polling for 5200FEC to make netconsole work. Tested on
Phytec pcm030 and Efika.

Signed-off-by: Jon Smirl <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
  • Loading branch information
jonsmirl authored and Jeff Garzik committed Oct 22, 2008
1 parent bb0d215 commit bd28bdb
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/net/fec_mpc52xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,21 @@ static int mpc52xx_fec_hard_start_xmit(struct sk_buff *skb, struct net_device *d
return 0;
}

#ifdef CONFIG_NET_POLL_CONTROLLER
static void mpc52xx_fec_poll_controller(struct net_device *dev)
{
struct mpc52xx_fec_priv *priv = netdev_priv(dev);

disable_irq(priv->t_irq);
mpc52xx_fec_tx_interrupt(priv->t_irq, dev);
enable_irq(priv->t_irq);
disable_irq(priv->r_irq);
mpc52xx_fec_rx_interrupt(priv->r_irq, dev);
enable_irq(priv->r_irq);
}
#endif


/* This handles BestComm transmit task interrupts
*/
static irqreturn_t mpc52xx_fec_tx_interrupt(int irq, void *dev_id)
Expand Down Expand Up @@ -926,6 +941,9 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match)
ndev->tx_timeout = mpc52xx_fec_tx_timeout;
ndev->watchdog_timeo = FEC_WATCHDOG_TIMEOUT;
ndev->base_addr = mem.start;
#ifdef CONFIG_NET_POLL_CONTROLLER
ndev->poll_controller = mpc52xx_fec_poll_controller;
#endif

priv->t_irq = priv->r_irq = ndev->irq = NO_IRQ; /* IRQ are free for now */

Expand Down

0 comments on commit bd28bdb

Please sign in to comment.