diff options
author | Dale Farnsworth <dale@farnsworth.org> | 2007-03-20 19:38:04 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-03-23 01:48:34 -0400 |
commit | d57ab6fdde30816581f7b0a4fe3c015b3f41f9ca (patch) | |
tree | c45873c003649b014d36ccb9933ebb6fa23280a3 /drivers/net/mv643xx_eth.c | |
parent | 69a43ac0cf40577157111bbe25500e2b98e801ea (diff) |
mv643xx_eth: add mv643xx_eth_shutdown function
mv643xx_eth_shutdown is needed for kexec.
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
-rw-r--r-- | drivers/net/mv643xx_eth.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 1ee27c360a4b..c9f55bc57edb 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -1516,9 +1516,23 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev) | |||
1516 | return 0; | 1516 | return 0; |
1517 | } | 1517 | } |
1518 | 1518 | ||
1519 | static void mv643xx_eth_shutdown(struct platform_device *pdev) | ||
1520 | { | ||
1521 | struct net_device *dev = platform_get_drvdata(pdev); | ||
1522 | struct mv643xx_private *mp = netdev_priv(dev); | ||
1523 | unsigned int port_num = mp->port_num; | ||
1524 | |||
1525 | /* Mask all interrupts on ethernet port */ | ||
1526 | mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num), 0); | ||
1527 | mv_read (MV643XX_ETH_INTERRUPT_MASK_REG(port_num)); | ||
1528 | |||
1529 | eth_port_reset(port_num); | ||
1530 | } | ||
1531 | |||
1519 | static struct platform_driver mv643xx_eth_driver = { | 1532 | static struct platform_driver mv643xx_eth_driver = { |
1520 | .probe = mv643xx_eth_probe, | 1533 | .probe = mv643xx_eth_probe, |
1521 | .remove = mv643xx_eth_remove, | 1534 | .remove = mv643xx_eth_remove, |
1535 | .shutdown = mv643xx_eth_shutdown, | ||
1522 | .driver = { | 1536 | .driver = { |
1523 | .name = MV643XX_ETH_NAME, | 1537 | .name = MV643XX_ETH_NAME, |
1524 | }, | 1538 | }, |