From 69dd183b838e544692e01c000840b096cd1ac63c Mon Sep 17 00:00:00 2001 From: "Arce, Abraham" Date: Thu, 28 Oct 2010 18:57:20 +0000 Subject: [PATCH] --- yaml --- r: 224111 b: refs/heads/master c: 1d5439b9a29b1386d44a617cbaf2f7acde1d697c h: refs/heads/master i: 224109: 5f606d92f56fb118d91abe3525a6e74aced797f0 224107: 9b676158690d519066fa269d240ad9b4ae74f345 224103: 835fd27149fb1d4b58255d05f584f1e41643a1b6 224095: acc682e74d3fea306070a57c0bcb886cac609174 v: v3 --- [refs] | 2 +- trunk/drivers/net/ks8851.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 07e318999bdd..ba036398d976 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d0eaeec8e8dfdc31815941054802dcccd7c3fe1d +refs/heads/master: 1d5439b9a29b1386d44a617cbaf2f7acde1d697c diff --git a/trunk/drivers/net/ks8851.c b/trunk/drivers/net/ks8851.c index 51919fcd50c2..0fa4a9887ba2 100644 --- a/trunk/drivers/net/ks8851.c +++ b/trunk/drivers/net/ks8851.c @@ -1545,6 +1545,37 @@ static int ks8851_read_selftest(struct ks8851_net *ks) /* driver bus management functions */ +#ifdef CONFIG_PM +static int ks8851_suspend(struct spi_device *spi, pm_message_t state) +{ + struct ks8851_net *ks = dev_get_drvdata(&spi->dev); + struct net_device *dev = ks->netdev; + + if (netif_running(dev)) { + netif_device_detach(dev); + ks8851_net_stop(dev); + } + + return 0; +} + +static int ks8851_resume(struct spi_device *spi) +{ + struct ks8851_net *ks = dev_get_drvdata(&spi->dev); + struct net_device *dev = ks->netdev; + + if (netif_running(dev)) { + ks8851_net_open(dev); + netif_device_attach(dev); + } + + return 0; +} +#else +#define ks8851_suspend NULL +#define ks8851_resume NULL +#endif + static int __devinit ks8851_probe(struct spi_device *spi) { struct net_device *ndev; @@ -1679,6 +1710,8 @@ static struct spi_driver ks8851_driver = { }, .probe = ks8851_probe, .remove = __devexit_p(ks8851_remove), + .suspend = ks8851_suspend, + .resume = ks8851_resume, }; static int __init ks8851_init(void)