* [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h @ 2009-10-07 3:39 Hin-Tak Leung 2009-10-07 3:45 ` Hin-Tak Leung 2009-10-07 5:40 ` Luis R. Rodriguez 0 siblings, 2 replies; 7+ messages in thread From: Hin-Tak Leung @ 2009-10-07 3:39 UTC (permalink / raw) To: linux-wireless, lrodriguez; +Cc: Hin-Tak Leung, Hin-Tak Leung Between 2.6.30 and 2.6.31, linux/netdevice.h started to include linux/ethtool.h (commit b1b67dd45a6b629eb41553856805aaa1614fbb83, "net: factor out ethtool invocation of vlan/macvlan drivers"), and commit 7508e486965b0af13984bc6d9da62a8d8f0dc5f9, "cfg80211: add firmware and hardware version to wiphy", introduces dependency of ETHTOOL_BUSINFO_LEN from linux/ethtool.h to net/cfg80211.h . Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net> --- compat/compat-2.6.31.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/compat/compat-2.6.31.h b/compat/compat-2.6.31.h index 154209c..e46334a 100644 --- a/compat/compat-2.6.31.h +++ b/compat/compat-2.6.31.h @@ -12,6 +12,7 @@ #include <linux/interrupt.h> #include <net/dst.h> #include <net/genetlink.h> +#include <linux/ethtool.h> /* * These macros allow us to backport rfkill without any -- 1.6.5.rc2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h 2009-10-07 3:39 [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h Hin-Tak Leung @ 2009-10-07 3:45 ` Hin-Tak Leung 2009-10-07 5:41 ` Luis R. Rodriguez 2009-10-07 5:40 ` Luis R. Rodriguez 1 sibling, 1 reply; 7+ messages in thread From: Hin-Tak Leung @ 2009-10-07 3:45 UTC (permalink / raw) To: linux-wireless, lrodriguez After 'compat-2.6: adjusting 01-netdev.patch for libertas cfg80211 support' (which fixes the patches), and 'compat-2.6: adding ethtool.h to compat-2.6.31.h' (which fixes the cfg80211.h header), the next error is ath5k_pm_ops type missing: ---------------- CC [M] /home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k/base.o /home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k/base.c:201: warning: data definition has no type or storage class /home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k/base.c:201: warning: type defaults to ‘int’ in declaration of ‘SIMPLE_DEV_PM_OPS’ /home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k/base.c:201: warning: parameter names (without types) in function declaration /home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k/base.c:212: error: ‘ath5k_pm_ops’ undeclared here (not in a function) make[5]: *** [/home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k/base.o] Error 1 make[4]: *** [/home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath/ath5k] Error 2 make[3]: *** [/home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless/ath] Error 2 make[2]: *** [/home/Hin-Tak/tmp-git/compat-wireless-2.6/drivers/net/wireless] Error 2 make[1]: *** [_module_/home/Hin-Tak/tmp-git/compat-wireless-2.6] Error 2 make[1]: Leaving directory `/usr/src/kernels/2.6.30.8-67.fc11.x86_64' make: *** [modules] Error 2 --------------- Since this is slightly outside my interest (I am mostly just tracking rtl818x and to a lesser extent zd1211rw), I'll let others carry on fixing compat-wireless against current wireless-testing... apologies. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h 2009-10-07 3:45 ` Hin-Tak Leung @ 2009-10-07 5:41 ` Luis R. Rodriguez 2009-10-07 6:30 ` Luis R. Rodriguez 0 siblings, 1 reply; 7+ messages in thread From: Luis R. Rodriguez @ 2009-10-07 5:41 UTC (permalink / raw) To: Hin-Tak Leung; +Cc: linux-wireless On Tue, Oct 6, 2009 at 11:45 PM, Hin-Tak Leung <hintak.leung@gmail.com> wrote: > warning: type defaults to ‘int’ in declaration of ‘SIMPLE_DEV_PM_OPS’ Yeah we need to backport this stuff, it seems all drivers are intended to be moved to use these simple dev pm ops so we might as well. Luis ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h 2009-10-07 5:41 ` Luis R. Rodriguez @ 2009-10-07 6:30 ` Luis R. Rodriguez 0 siblings, 0 replies; 7+ messages in thread From: Luis R. Rodriguez @ 2009-10-07 6:30 UTC (permalink / raw) To: Luis R. Rodriguez; +Cc: Hin-Tak Leung, linux-wireless, Rafael J. Wysocki On Wed, Oct 07, 2009 at 01:41:08AM -0400, Luis R. Rodriguez wrote: > On Tue, Oct 6, 2009 at 11:45 PM, Hin-Tak Leung <hintak.leung@gmail.com> wrote: > > > warning: type defaults to ‘int’ in declaration of ‘SIMPLE_DEV_PM_OPS’ > > Yeah we need to backport this stuff, it seems all drivers are intended > to be moved to use these simple dev pm ops so we might as well. OK I just committed this patch as a quick attempt to backport this. Testers welcomed. You'll need the ethtool patch from Hin-Tak as John hasn't yet applied his own on wireless-testing. From: Luis R. Rodriguez <lrodriguez@atheros.com> Subject: [PATCH] compat-2.6: backport dev_pm_ops stuff and SIMPLE_DEV_PM_OPS The 2.6.29 kernel has new struct dev_pm_ops [1] which are used on the pci device to distinguish power management hooks for suspend to RAM and hibernation. Older kernels don't have these so we need to resort back to the good ol' suspend/resume. Fortunately the calls are not so different so it should be possible to resuse the same calls on compat code with only slight modifications. The SIMPLE_DEV_PM_OPS macro is used as a helper to make the regular suspend/resume calls be linked to the equivalent hibernation calls as that is the same behaviour in older kernels. We backport SIMPLE_DEV_PM_OPS only for kernels 2.6.29..2.6.31 and for older kernels this is a no-op. [1] http://lxr.linux.no/#linux+v2.6.29/include/linux/pm.h#L170 Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> --- compat/compat-2.6.32.h | 26 ++++++++++++++++ compat/patches/11-dev-pm-ops.patch | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 0 deletions(-) create mode 100644 compat/patches/11-dev-pm-ops.patch diff --git a/compat/compat-2.6.32.h b/compat/compat-2.6.32.h index 418b521..9c2dba9 100644 --- a/compat/compat-2.6.32.h +++ b/compat/compat-2.6.32.h @@ -8,6 +8,7 @@ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)) #include <linux/netdevice.h> +#include <linux/pm.h> #define SDIO_VENDOR_ID_INTEL 0x0089 #define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX 0x1402 @@ -43,6 +44,31 @@ enum netdev_tx { typedef enum netdev_tx netdev_tx_t; #endif /* __KERNEL__ */ + +/* + * dev_pm_ops is only available on kernels >= 2.6.29, for + * older kernels we rely on reverting the work to old + * power management style stuff. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) +/* + * Use this if you want to use the same suspend and resume callbacks for suspend + * to RAM and hibernation. + */ +#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \ +struct dev_pm_ops name = { \ + .suspend = suspend_fn, \ + .resume = resume_fn, \ + .freeze = suspend_fn, \ + .thaw = resume_fn, \ + .poweroff = suspend_fn, \ + .restore = resume_fn, \ +} +#else +#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) +#endif /* >= 2.6.29 */ + + #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)) */ #endif /* LINUX_26_32_COMPAT_H */ diff --git a/compat/patches/11-dev-pm-ops.patch b/compat/patches/11-dev-pm-ops.patch new file mode 100644 index 0000000..e01eafc --- /dev/null +++ b/compat/patches/11-dev-pm-ops.patch @@ -0,0 +1,57 @@ +The 2.6.29 kernel has new struct dev_pm_ops [1] which are used +on the pci device to distinguish power management hooks for suspend +to RAM and hibernation. Older kernels don't have these so we need +to resort back to the good ol' suspend/resume. Fortunately the calls +are not so different so it should be possible to resuse the same +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/wireless/ath/ath5k/base.c 2009-10-07 01:58:19.000000000 -0400 ++++ b/drivers/net/wireless/ath/ath5k/base.c 2009-10-07 02:19:58.000000000 -0400 +@@ -197,6 +197,32 @@ + #ifdef CONFIG_PM + static int ath5k_pci_suspend(struct device *dev); + static int ath5k_pci_resume(struct device *dev); ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)) ++#endif ++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); ++} ++ ++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); ++} + + SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume); + #define ATH5K_PM_OPS (&ath5k_pm_ops) +@@ -209,7 +235,12 @@ + .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, ++#else ++ .suspend = ath5k_pci_suspend_compat, ++ .resume = ath5k_pci_resume_compat, ++#endif + }; + + -- 1.6.0.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h 2009-10-07 3:39 [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h Hin-Tak Leung 2009-10-07 3:45 ` Hin-Tak Leung @ 2009-10-07 5:40 ` Luis R. Rodriguez 2009-10-07 14:45 ` John W. Linville 1 sibling, 1 reply; 7+ messages in thread From: Luis R. Rodriguez @ 2009-10-07 5:40 UTC (permalink / raw) To: Hin-Tak Leung; +Cc: linux-wireless, Hin-Tak Leung On Tue, Oct 6, 2009 at 11:39 PM, Hin-Tak Leung <hintak.leung@gmail.com> wrote: > Between 2.6.30 and 2.6.31, linux/netdevice.h started > to include linux/ethtool.h (commit b1b67dd45a6b629eb41553856805aaa1614fbb83, > "net: factor out ethtool invocation of vlan/macvlan drivers"), > and commit 7508e486965b0af13984bc6d9da62a8d8f0dc5f9, > "cfg80211: add firmware and hardware version to wiphy", introduces > dependency of ETHTOOL_BUSINFO_LEN from linux/ethtool.h > to net/cfg80211.h . John's patch titled "cfg80211: fix compile error from missing ethtool.h" seems to address this upstream. I'll wait until he applies that to the tree. Luis ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h 2009-10-07 5:40 ` Luis R. Rodriguez @ 2009-10-07 14:45 ` John W. Linville 2009-10-07 15:22 ` Luis R. Rodriguez 0 siblings, 1 reply; 7+ messages in thread From: John W. Linville @ 2009-10-07 14:45 UTC (permalink / raw) To: Luis R. Rodriguez; +Cc: Hin-Tak Leung, linux-wireless, Hin-Tak Leung On Wed, Oct 07, 2009 at 01:40:04AM -0400, Luis R. Rodriguez wrote: > On Tue, Oct 6, 2009 at 11:39 PM, Hin-Tak Leung <hintak.leung@gmail.com> wrote: > > Between 2.6.30 and 2.6.31, linux/netdevice.h started > > to include linux/ethtool.h (commit b1b67dd45a6b629eb41553856805aaa1614fbb83, > > "net: factor out ethtool invocation of vlan/macvlan drivers"), > > and commit 7508e486965b0af13984bc6d9da62a8d8f0dc5f9, > > "cfg80211: add firmware and hardware version to wiphy", introduces > > dependency of ETHTOOL_BUSINFO_LEN from linux/ethtool.h > > to net/cfg80211.h . > > John's patch titled "cfg80211: fix compile error from missing > ethtool.h" seems to address this upstream. I'll wait until he applies > that to the tree. As Hin-Tak points-out, linux/netdevice.h is alreadying "doing the needful". :-) I'll just drop my patch and let this get sorted in compat-wireless. John -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h 2009-10-07 14:45 ` John W. Linville @ 2009-10-07 15:22 ` Luis R. Rodriguez 0 siblings, 0 replies; 7+ messages in thread From: Luis R. Rodriguez @ 2009-10-07 15:22 UTC (permalink / raw) To: John W. Linville; +Cc: Hin-Tak Leung, linux-wireless, Hin-Tak Leung On Wed, Oct 7, 2009 at 10:45 AM, John W. Linville <linville@tuxdriver.com> wrote: > On Wed, Oct 07, 2009 at 01:40:04AM -0400, Luis R. Rodriguez wrote: >> On Tue, Oct 6, 2009 at 11:39 PM, Hin-Tak Leung <hintak.leung@gmail.com> wrote: >> > Between 2.6.30 and 2.6.31, linux/netdevice.h started >> > to include linux/ethtool.h (commit b1b67dd45a6b629eb41553856805aaa1614fbb83, >> > "net: factor out ethtool invocation of vlan/macvlan drivers"), >> > and commit 7508e486965b0af13984bc6d9da62a8d8f0dc5f9, >> > "cfg80211: add firmware and hardware version to wiphy", introduces >> > dependency of ETHTOOL_BUSINFO_LEN from linux/ethtool.h >> > to net/cfg80211.h . >> >> John's patch titled "cfg80211: fix compile error from missing >> ethtool.h" seems to address this upstream. I'll wait until he applies >> that to the tree. > > As Hin-Tak points-out, linux/netdevice.h is alreadying "doing the needful". :-) > > I'll just drop my patch and let this get sorted in compat-wireless. Heh ok applied, thanks. Luis ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-10-07 15:23 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-10-07 3:39 [PATCH] compat-2.6: adding ethtool.h to compat-2.6.31.h Hin-Tak Leung 2009-10-07 3:45 ` Hin-Tak Leung 2009-10-07 5:41 ` Luis R. Rodriguez 2009-10-07 6:30 ` Luis R. Rodriguez 2009-10-07 5:40 ` Luis R. Rodriguez 2009-10-07 14:45 ` John W. Linville 2009-10-07 15:22 ` Luis R. Rodriguez
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).