aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/rtl8192su/r8192U_pm.c
diff options
context:
space:
mode:
authorJerry Chuang <wlanfae@realtek.com>2009-05-21 22:16:02 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-06-19 11:00:53 -0700
commit5f53d8ca3d5d6afa55011e1e858a4bf255a3abf4 (patch)
tree5dfc036b97b9e68336298a61384e86f619d361e8 /drivers/staging/rtl8192su/r8192U_pm.c
parentd01c3c8e13f7be29fae5b55bbd4a01d6f84d3d5e (diff)
Staging: add rtl8192SU wireless usb driver
Driver from Realtek for the Realtek RTL8192 USB wifi device Based on the r8187 driver from Andrea Merello <andreamrl@tiscali.it> and others. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8192su/r8192U_pm.c')
-rw-r--r--drivers/staging/rtl8192su/r8192U_pm.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/drivers/staging/rtl8192su/r8192U_pm.c b/drivers/staging/rtl8192su/r8192U_pm.c
new file mode 100644
index 00000000000..92c95aa3663
--- /dev/null
+++ b/drivers/staging/rtl8192su/r8192U_pm.c
@@ -0,0 +1,77 @@
+/*
+ Power management interface routines.
+ Written by Mariusz Matuszek.
+ This code is currently just a placeholder for later work and
+ does not do anything useful.
+
+ This is part of rtl8180 OpenSource driver.
+ Copyright (C) Andrea Merello 2004 <andreamrl@tiscali.it>
+ Released under the terms of GPL (General Public Licence)
+*/
+
+#ifdef CONFIG_RTL8192_PM
+#include "r8192U.h"
+#include "r8192U_pm.h"
+
+/*****************************************************************************/
+int rtl8192U_save_state (struct pci_dev *dev, u32 state)
+{
+ printk(KERN_NOTICE "r8192U save state call (state %u).\n", state);
+ return(-EAGAIN);
+}
+
+int rtl8192U_suspend(struct usb_interface *intf, pm_message_t state)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct net_device *dev = usb_get_intfdata(intf);
+#else
+ //struct net_device *dev = (struct net_device *)ptr;
+#endif
+ RT_TRACE(COMP_POWER, "============> r8192U suspend call.\n");
+
+ if(dev) {
+ if (!netif_running(dev)) {
+ printk(KERN_WARNING "netif not running, go out suspend function\n");
+ return 0;
+ }
+
+ dev->stop(dev);
+ mdelay(10);
+
+ netif_device_detach(dev);
+ }
+
+ return 0;
+}
+
+int rtl8192U_resume (struct usb_interface *intf)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct net_device *dev = usb_get_intfdata(intf);
+#else
+ //struct net_device *dev = (struct net_device *)ptr;
+#endif
+
+ RT_TRACE(COMP_POWER, "================>r8192U resume call.");
+
+ if(dev) {
+ if (!netif_running(dev)){
+ printk(KERN_WARNING "netif not running, go out resume function\n");
+ return 0;
+ }
+
+ netif_device_attach(dev);
+ dev->open(dev);
+ }
+
+ return 0;
+}
+
+int rtl8192U_enable_wake (struct pci_dev *dev, u32 state, int enable)
+{
+ printk(KERN_NOTICE "r8192U enable wake call (state %u, enable %d).\n",
+ state, enable);
+ return(-EAGAIN);
+}
+
+#endif //CONFIG_RTL8192_PM