--- /dev/null
+--- a/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c
++++ b/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c
+@@ -387,6 +387,9 @@ MODULE_PARM_DESC(swlps, "Set to 1 to use
+ MODULE_PARM_DESC(fwlps, "Set to 1 to use FW control power save (default 1)\n");
+ MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)");
+
++compat_pci_suspend(rtl_pci_suspend);
++compat_pci_resume(rtl_pci_resume);
++
+ static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume);
+
+ static struct pci_driver rtl88ee_driver = {
+@@ -394,7 +397,12 @@ static struct pci_driver rtl88ee_driver
+ .id_table = rtl88ee_pci_ids,
+ .probe = rtl_pci_probe,
+ .remove = rtl_pci_disconnect,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ .driver.pm = &rtlwifi_pm_ops,
++#elif defined(CONFIG_PM_SLEEP)
++ .suspend = rtl_pci_suspend,
++ .resume = rtl_pci_resume,
++#endif
+ };
+
+ module_pci_driver(rtl88ee_driver);