From: Levitsky Maxim <maximlevitsky@yahoo.com>
To: linux-kernel@vger.kernel.org
Cc: tori@unhappy.mine.nu, netdev@vger.kernel.org, pavel@suse.cz
Subject: [PATCH] [NETDEV] [004] dmfe : Add suspend/resume support
Date: Wed, 7 Feb 2007 10:33:55 -0800 (PST) [thread overview]
Message-ID: <549393.8054.qm@web38506.mail.mud.yahoo.com> (raw)
From: Maxim Levitsky <maximlevitsky@yahoo.com>
Subject: [PATCH] [NETDEV] [004] dmfe : Add suspend/resume support
Adds support for suspend/resume
---
--- linux-2.6.20-mod/drivers/net/tulip/dmfe.c 2007-02-07 18:46:13.000000000 +0200
+++ linux-2.6.20-test/drivers/net/tulip/dmfe.c 2007-02-07 18:50:52.000000000 +0200
@@ -55,9 +55,6 @@
TODO
- Implement pci_driver::suspend() and pci_driver::resume()
- power management methods.
-
Check on 64 bit boxes.
Check and fix on big endian boxes.
@@ -2027,11 +2024,59 @@ static struct pci_device_id dmfe_pci_tbl
MODULE_DEVICE_TABLE(pci, dmfe_pci_tbl);
+
+static int dmfe_suspend(struct pci_dev *pci_dev, pm_message_t state)
+{
+ u32 tmp;
+
+ struct net_device *dev = pci_get_drvdata(pci_dev);
+ struct dmfe_board_info *db = netdev_priv(dev);
+
+ /* Disable upper layer interface */
+ netif_device_detach(dev);
+
+ /* Disable Tx/Rx */
+ db->cr6_data &= ~(CR6_RXSC | CR6_TXSC);
+ update_cr6(db->cr6_data, dev->base_addr);
+
+ /* Disable Interrupt */
+ outl(0, dev->base_addr + DCR7);
+ outl(inl(dev->base_addr + DCR5), dev->base_addr + DCR5);
+
+ /* Fre RX buffers */
+ dmfe_free_rxbuffer(db);
+
+ /* Power down device*/
+ pci_set_power_state(pci_dev , pci_choose_state(pci_dev,state));
+ pci_save_state(pci_dev);
+
+ return 0;
+}
+
+static int dmfe_resume(struct pci_dev *pci_dev)
+{
+ struct net_device *dev = pci_get_drvdata(pci_dev);
+ u32 tmp;
+
+ pci_restore_state(pci_dev);
+ pci_set_power_state(pci_dev ,PCI_D0);
+
+ /* Re-initilize DM910X board */
+ dmfe_init_dm910x(dev);
+
+ /* Restart upper layer interface */
+ netif_device_attach(dev);
+
+ return 0;
+}
+
static struct pci_driver dmfe_driver = {
.name = "dmfe",
.id_table = dmfe_pci_tbl,
.probe = dmfe_init_one,
.remove = __devexit_p(dmfe_remove_one),
+ .suspend = dmfe_suspend,
+ .resume = dmfe_resume
};
MODULE_AUTHOR("Sten Wang, sten_wang@davicom.com.tw");
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com
next reply other threads:[~2007-02-07 18:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-07 18:33 Levitsky Maxim [this message]
2007-02-09 20:54 ` [PATCH] [NETDEV] [004] dmfe : Add suspend/resume support Pavel Machek
2007-02-11 21:05 ` Maxim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=549393.8054.qm@web38506.mail.mud.yahoo.com \
--to=maximlevitsky@yahoo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pavel@suse.cz \
--cc=tori@unhappy.mine.nu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.