Search Linux Wireless

[PATCH 4/4] compat-wireless: use generic suspend resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
---
 patches/11-dev-pm-ops.patch |  173 +++++++++++++++----------------------------
 1 files changed, 61 insertions(+), 112 deletions(-)

diff --git a/patches/11-dev-pm-ops.patch b/patches/11-dev-pm-ops.patch
index dea121a..4aa257f 100644
--- a/patches/11-dev-pm-ops.patch
+++ b/patches/11-dev-pm-ops.patch
@@ -7,9 +7,59 @@ calls on compat code with only slight modifications.
 
 [1] http://lxr.linux.no/#linux+v2.6.29/include/linux/pm.h#L170
 
+--- a/drivers/net/atl1c/atl1c_main.c
++++ b/drivers/net/atl1c/atl1c_main.c
+@@ -2879,6 +2879,9 @@ static struct pci_error_handlers atl1c_e
+ 
+ static SIMPLE_DEV_PM_OPS(atl1c_pm_ops, atl1c_suspend, atl1c_resume);
+ 
++compat_pci_suspend(atl1c_suspend)
++compat_pci_resume(atl1c_resume)
++
+ static struct pci_driver atl1c_driver = {
+ 	.name     = atl1c_driver_name,
+ 	.id_table = atl1c_pci_tbl,
+@@ -2886,7 +2889,12 @@ static struct pci_driver atl1c_driver =
+ 	.remove   = __devexit_p(atl1c_remove),
+ 	.shutdown = atl1c_shutdown,
+ 	.err_handler = &atl1c_err_handler,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ 	.driver.pm = &atl1c_pm_ops,
++#elif defined(CONFIG_PM_SLEEP)
++	.suspend        = atl1c_suspend_compat,
++	.resume         = atl1c_resume_compat,
++#endif
+ };
+ 
+ /*
+--- a/drivers/net/wireless/ath/ath5k/pci.c
++++ b/drivers/net/wireless/ath/ath5k/pci.c
+@@ -286,6 +286,9 @@ static int ath5k_pci_resume(struct devic
+ 	return 0;
+ }
+ 
++compat_pci_suspend(ath5k_pci_suspend)
++compat_pci_resume(ath5k_pci_resume)
++
+ static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume);
+ #define ATH5K_PM_OPS	(&ath5k_pm_ops)
+ #else
+@@ -297,7 +300,12 @@ static struct pci_driver ath5k_pci_drive
+ 	.id_table	= ath5k_pci_id_table,
+ 	.probe		= ath5k_pci_probe,
+ 	.remove		= __devexit_p(ath5k_pci_remove),
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
+ 	.driver.pm	= ATH5K_PM_OPS,
++#elif defined(CONFIG_PM_SLEEP)
++	.suspend        = ath5k_pci_suspend_compat,
++	.resume         = ath5k_pci_resume_compat,
++#endif
+ };
+ 
+ /*
 --- a/drivers/net/wireless/ath/ath9k/pci.c
 +++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -315,14 +315,36 @@ static int ath_pci_resume(struct device
+@@ -326,14 +326,11 @@ static int ath_pci_resume(struct device
  	return 0;
  }
  
@@ -21,40 +71,15 @@ calls on compat code with only slight modifications.
 -	.poweroff = ath_pci_suspend,
 -	.restore = ath_pci_resume,
 -};
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
-+static int ath_pci_suspend_compat(struct pci_dev *pdev, pm_message_t state)
-+{
-+	int r;
 +
-+	r = ath_pci_suspend(&pdev->dev);
-+	if (r)
-+		return r;
-+
-+	pci_save_state(pdev);
-+	pci_disable_device(pdev);
-+	pci_set_power_state(pdev, PCI_D3hot);
-+
-+	return 0;
-+}
-+
-+static int ath_pci_resume_compat(struct pci_dev *pdev)
-+{
-+	int r;
-+
-+	pci_restore_state(pdev);
-+	r = pci_enable_device(pdev);
-+	if (r)
-+		return r;
-+
-+	return ath_pci_resume(&pdev->dev);
-+}
-+#endif
++compat_pci_suspend(ath_pci_suspend)
++compat_pci_resume(ath_pci_resume)
 +
 +static SIMPLE_DEV_PM_OPS(ath9k_pm_ops, ath_pci_suspend, ath_pci_resume);
  
  #define ATH9K_PM_OPS	(&ath9k_pm_ops)
  
-@@ -340,7 +362,12 @@ static struct pci_driver ath_pci_driver
+@@ -351,7 +348,12 @@ static struct pci_driver ath_pci_driver
  	.id_table   = ath_pci_id_table,
  	.probe      = ath_pci_probe,
  	.remove     = ath_pci_remove,
@@ -84,7 +109,7 @@ calls on compat code with only slight modifications.
  static int __init iwl_init(void)
 --- a/drivers/net/wireless/iwlwifi/iwl-core.c
 +++ b/drivers/net/wireless/iwlwifi/iwl-core.c
-@@ -2098,14 +2098,42 @@ int iwl_pci_resume(struct device *device
+@@ -2098,14 +2098,16 @@ int iwl_pci_resume(struct device *device
  }
  EXPORT_SYMBOL(iwl_pci_resume);
  
@@ -96,42 +121,16 @@ calls on compat code with only slight modifications.
 -	.poweroff = iwl_pci_suspend,
 -	.restore = iwl_pci_resume,
 -};
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
-+int iwl_pci_suspend_compat(struct pci_dev *pdev, pm_message_t state)
-+{
-+	int r;
-+
-+	r = iwl_pci_suspend(&pdev->dev);
-+	if (r)
-+		return r;
-+
-+	pci_save_state(pdev);
-+	pci_disable_device(pdev);
-+	pci_set_power_state(pdev, PCI_D3hot);
-+
-+	return 0;
-+}
-+EXPORT_SYMBOL(iwl_pci_suspend_compat);
-+
-+int iwl_pci_resume_compat(struct pci_dev *pdev)
-+{
-+	int r;
-+
-+	pci_set_power_state(pdev, PCI_D0);
-+	r = pci_enable_device(pdev);
-+	if (r)
-+		return r;
-+	pci_restore_state(pdev);
-+
-+	return iwl_pci_resume(&pdev->dev);
-+}
-+EXPORT_SYMBOL(iwl_pci_resume_compat);
-+#endif
-+
 +const SIMPLE_DEV_PM_OPS(iwl_pm_ops, iwl_pci_suspend, iwl_pci_resume);
 +
++compat_pci_suspend(iwl_pci_suspend)
++compat_pci_resume(iwl_pci_resume)
++
 +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
  EXPORT_SYMBOL(iwl_pm_ops);
++#else
++EXPORT_SYMBOL(iwl_pci_suspend_compat);
++EXPORT_SYMBOL(iwl_pci_resume_compat);
 +#endif
  
  #endif /* CONFIG_PM */
@@ -165,53 +164,3 @@ calls on compat code with only slight modifications.
  };
  
  static int __init iwl3945_init(void)
---- a/drivers/net/wireless/ath/ath5k/pci.c
-+++ b/drivers/net/wireless/ath/ath5k/pci.c
-@@ -286,6 +286,34 @@ static int ath5k_pci_resume(struct devic
- 	return 0;
- }
- 
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29))
-+static int ath5k_pci_suspend_compat(struct pci_dev *pdev, pm_message_t state)
-+{
-+	int r;
-+
-+	r = ath5k_pci_suspend(&pdev->dev);
-+	if (r)
-+		return r;
-+
-+	pci_save_state(pdev);
-+	pci_disable_device(pdev);
-+	pci_set_power_state(pdev, PCI_D3hot);
-+	return 0;
-+}
-+
-+static int ath5k_pci_resume_compat(struct pci_dev *pdev)
-+{
-+	int r;
-+
-+	pci_restore_state(pdev);
-+	r = pci_enable_device(pdev);
-+	if (r)
-+		return r;
-+
-+	return ath5k_pci_resume(&pdev->dev);
-+}
-+#endif
-+
- static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume);
- #define ATH5K_PM_OPS	(&ath5k_pm_ops)
- #else
-@@ -297,7 +325,12 @@ static struct pci_driver ath5k_pci_drive
- 	.id_table	= ath5k_pci_id_table,
- 	.probe		= ath5k_pci_probe,
- 	.remove		= __devexit_p(ath5k_pci_remove),
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29))
- 	.driver.pm	= ATH5K_PM_OPS,
-+#elif defined(CONFIG_PM_SLEEP)
-+	.suspend        = ath5k_pci_suspend_compat,
-+	.resume         = ath5k_pci_resume_compat,
-+#endif
- };
- 
- /*
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux