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>
This commit is contained in:
Dale Farnsworth 2007-03-20 16:38:04 -07:00 committed by Jeff Garzik
parent 69a43ac0cf
commit d57ab6fdde

View File

@ -1516,9 +1516,23 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev)
return 0; return 0;
} }
static void mv643xx_eth_shutdown(struct platform_device *pdev)
{
struct net_device *dev = platform_get_drvdata(pdev);
struct mv643xx_private *mp = netdev_priv(dev);
unsigned int port_num = mp->port_num;
/* Mask all interrupts on ethernet port */
mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num), 0);
mv_read (MV643XX_ETH_INTERRUPT_MASK_REG(port_num));
eth_port_reset(port_num);
}
static struct platform_driver mv643xx_eth_driver = { static struct platform_driver mv643xx_eth_driver = {
.probe = mv643xx_eth_probe, .probe = mv643xx_eth_probe,
.remove = mv643xx_eth_remove, .remove = mv643xx_eth_remove,
.shutdown = mv643xx_eth_shutdown,
.driver = { .driver = {
.name = MV643XX_ETH_NAME, .name = MV643XX_ETH_NAME,
}, },