diff options
author | Hauke Mehrtens | 2011-11-18 13:44:04 -0600 |
---|---|---|
committer | Luis R. Rodriguez | 2011-11-18 14:00:11 -0600 |
commit | fddb19cef1092dba20f4ce2cb2859616de943137 (patch) | |
tree | ff8f002f95973842c8344b35d5f0d31972edfd9f | |
parent | c5cfdf2d138ba20a648990d9615c44942eef5fd3 (diff) | |
download | compat-wireless-fddb19cef1092dba20f4ce2cb2859616de943137.tar.gz compat-wireless-fddb19cef1092dba20f4ce2cb2859616de943137.tar.xz compat-wireless-fddb19cef1092dba20f4ce2cb2859616de943137.zip |
compat-wireless: make patches apply again
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r-- | patches/01-netdev.patch | 28 | ||||
-rw-r--r-- | patches/29-sdio_no_suspend.patch | 64 |
2 files changed, 57 insertions, 35 deletions
diff --git a/patches/01-netdev.patch b/patches/01-netdev.patch index 2927219..c01024a 100644 --- a/patches/01-netdev.patch +++ b/patches/01-netdev.patch | |||
@@ -34,18 +34,18 @@ without creating a headache on maintenance of the pathes. | |||
34 | 34 | ||
35 | --- a/drivers/net/wireless/ath/ath6kl/main.c | 35 | --- a/drivers/net/wireless/ath/ath6kl/main.c |
36 | +++ b/drivers/net/wireless/ath/ath6kl/main.c | 36 | +++ b/drivers/net/wireless/ath/ath6kl/main.c |
37 | @@ -1465,7 +1465,7 @@ static struct net_device_ops ath6kl_netd | 37 | @@ -1114,7 +1114,7 @@ static struct net_device_ops ath6kl_netd |
38 | 38 | ||
39 | void init_netdev(struct net_device *dev) | 39 | void init_netdev(struct net_device *dev) |
40 | { | 40 | { |
41 | - dev->netdev_ops = &ath6kl_netdev_ops; | 41 | - dev->netdev_ops = &ath6kl_netdev_ops; |
42 | + netdev_attach_ops(dev, &ath6kl_netdev_ops); | 42 | + netdev_attach_ops(dev, &ath6kl_netdev_ops); |
43 | dev->destructor = free_netdev; | ||
43 | dev->watchdog_timeo = ATH6KL_TX_TIMEOUT; | 44 | dev->watchdog_timeo = ATH6KL_TX_TIMEOUT; |
44 | 45 | ||
45 | dev->needed_headroom = ETH_HLEN; | ||
46 | --- a/drivers/net/wireless/rndis_wlan.c | 46 | --- a/drivers/net/wireless/rndis_wlan.c |
47 | +++ b/drivers/net/wireless/rndis_wlan.c | 47 | +++ b/drivers/net/wireless/rndis_wlan.c |
48 | @@ -3439,7 +3439,7 @@ static int rndis_wlan_bind(struct usbnet | 48 | @@ -3452,7 +3452,7 @@ static int rndis_wlan_bind(struct usbnet |
49 | * rndis_host wants to avoid all OID as much as possible | 49 | * rndis_host wants to avoid all OID as much as possible |
50 | * so do promisc/multicast handling in rndis_wlan. | 50 | * so do promisc/multicast handling in rndis_wlan. |
51 | */ | 51 | */ |
@@ -56,7 +56,7 @@ without creating a headache on maintenance of the pathes. | |||
56 | retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp, | 56 | retval = rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &tmp, |
57 | --- a/net/mac80211/iface.c | 57 | --- a/net/mac80211/iface.c |
58 | +++ b/net/mac80211/iface.c | 58 | +++ b/net/mac80211/iface.c |
59 | @@ -697,7 +697,12 @@ static void ieee80211_if_setup(struct ne | 59 | @@ -713,7 +713,12 @@ static void ieee80211_if_setup(struct ne |
60 | { | 60 | { |
61 | ether_setup(dev); | 61 | ether_setup(dev); |
62 | dev->priv_flags &= ~IFF_TX_SKB_SHARING; | 62 | dev->priv_flags &= ~IFF_TX_SKB_SHARING; |
@@ -70,7 +70,7 @@ without creating a headache on maintenance of the pathes. | |||
70 | dev->destructor = free_netdev; | 70 | dev->destructor = free_netdev; |
71 | } | 71 | } |
72 | 72 | ||
73 | @@ -844,7 +849,7 @@ static void ieee80211_setup_sdata(struct | 73 | @@ -860,7 +865,7 @@ static void ieee80211_setup_sdata(struct |
74 | /* and set some type-dependent values */ | 74 | /* and set some type-dependent values */ |
75 | sdata->vif.type = type; | 75 | sdata->vif.type = type; |
76 | sdata->vif.p2p = false; | 76 | sdata->vif.p2p = false; |
@@ -79,7 +79,7 @@ without creating a headache on maintenance of the pathes. | |||
79 | sdata->wdev.iftype = type; | 79 | sdata->wdev.iftype = type; |
80 | 80 | ||
81 | sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE); | 81 | sdata->control_port_protocol = cpu_to_be16(ETH_P_PAE); |
82 | @@ -883,7 +888,7 @@ static void ieee80211_setup_sdata(struct | 82 | @@ -899,7 +904,7 @@ static void ieee80211_setup_sdata(struct |
83 | break; | 83 | break; |
84 | case NL80211_IFTYPE_MONITOR: | 84 | case NL80211_IFTYPE_MONITOR: |
85 | sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP; | 85 | sdata->dev->type = ARPHRD_IEEE80211_RADIOTAP; |
@@ -88,7 +88,7 @@ without creating a headache on maintenance of the pathes. | |||
88 | sdata->u.mntr_flags = MONITOR_FLAG_CONTROL | | 88 | sdata->u.mntr_flags = MONITOR_FLAG_CONTROL | |
89 | MONITOR_FLAG_OTHER_BSS; | 89 | MONITOR_FLAG_OTHER_BSS; |
90 | break; | 90 | break; |
91 | @@ -1134,6 +1139,8 @@ int ieee80211_if_add(struct ieee80211_lo | 91 | @@ -1150,6 +1155,8 @@ int ieee80211_if_add(struct ieee80211_lo |
92 | return -ENOMEM; | 92 | return -ENOMEM; |
93 | dev_net_set(ndev, wiphy_net(local->hw.wiphy)); | 93 | dev_net_set(ndev, wiphy_net(local->hw.wiphy)); |
94 | 94 | ||
@@ -97,7 +97,7 @@ without creating a headache on maintenance of the pathes. | |||
97 | ndev->needed_headroom = local->tx_headroom + | 97 | ndev->needed_headroom = local->tx_headroom + |
98 | 4*6 /* four MAC addresses */ | 98 | 4*6 /* four MAC addresses */ |
99 | + 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */ | 99 | + 2 + 2 + 2 + 2 /* ctl, dur, seq, qos */ |
100 | @@ -1142,6 +1149,7 @@ int ieee80211_if_add(struct ieee80211_lo | 100 | @@ -1158,6 +1165,7 @@ int ieee80211_if_add(struct ieee80211_lo |
101 | - ETH_HLEN /* ethernet hard_header_len */ | 101 | - ETH_HLEN /* ethernet hard_header_len */ |
102 | + IEEE80211_ENCRYPT_HEADROOM; | 102 | + IEEE80211_ENCRYPT_HEADROOM; |
103 | ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM; | 103 | ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM; |
@@ -186,7 +186,7 @@ without creating a headache on maintenance of the pathes. | |||
186 | 186 | ||
187 | --- a/drivers/net/wireless/ipw2x00/ipw2100.c | 187 | --- a/drivers/net/wireless/ipw2x00/ipw2100.c |
188 | +++ b/drivers/net/wireless/ipw2x00/ipw2100.c | 188 | +++ b/drivers/net/wireless/ipw2x00/ipw2100.c |
189 | @@ -6114,7 +6114,7 @@ static struct net_device *ipw2100_alloc_ | 189 | @@ -6115,7 +6115,7 @@ static struct net_device *ipw2100_alloc_ |
190 | priv->ieee->perfect_rssi = -20; | 190 | priv->ieee->perfect_rssi = -20; |
191 | priv->ieee->worst_rssi = -85; | 191 | priv->ieee->worst_rssi = -85; |
192 | 192 | ||
@@ -197,7 +197,7 @@ without creating a headache on maintenance of the pathes. | |||
197 | priv->wireless_data.libipw = priv->ieee; | 197 | priv->wireless_data.libipw = priv->ieee; |
198 | --- a/drivers/net/wireless/ipw2x00/ipw2200.c | 198 | --- a/drivers/net/wireless/ipw2x00/ipw2200.c |
199 | +++ b/drivers/net/wireless/ipw2x00/ipw2200.c | 199 | +++ b/drivers/net/wireless/ipw2x00/ipw2200.c |
200 | @@ -11673,7 +11673,7 @@ static int ipw_prom_alloc(struct ipw_pri | 200 | @@ -11682,7 +11682,7 @@ static int ipw_prom_alloc(struct ipw_pri |
201 | memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN); | 201 | memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN); |
202 | 202 | ||
203 | priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP; | 203 | priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP; |
@@ -206,7 +206,7 @@ without creating a headache on maintenance of the pathes. | |||
206 | 206 | ||
207 | priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR; | 207 | priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR; |
208 | SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev); | 208 | SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev); |
209 | @@ -11812,7 +11812,7 @@ static int __devinit ipw_pci_probe(struc | 209 | @@ -11821,7 +11821,7 @@ static int __devinit ipw_pci_probe(struc |
210 | priv->ieee->perfect_rssi = -20; | 210 | priv->ieee->perfect_rssi = -20; |
211 | priv->ieee->worst_rssi = -85; | 211 | priv->ieee->worst_rssi = -85; |
212 | 212 | ||
@@ -336,7 +336,7 @@ without creating a headache on maintenance of the pathes. | |||
336 | } | 336 | } |
337 | --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 337 | --- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c |
338 | +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 338 | +++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c |
339 | @@ -2231,7 +2231,7 @@ static int atl1e_init_netdev(struct net_ | 339 | @@ -2234,7 +2234,7 @@ static int atl1e_init_netdev(struct net_ |
340 | pci_set_drvdata(pdev, netdev); | 340 | pci_set_drvdata(pdev, netdev); |
341 | 341 | ||
342 | netdev->irq = pdev->irq; | 342 | netdev->irq = pdev->irq; |
@@ -347,7 +347,7 @@ without creating a headache on maintenance of the pathes. | |||
347 | atl1e_set_ethtool_ops(netdev); | 347 | atl1e_set_ethtool_ops(netdev); |
348 | --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 348 | --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c |
349 | +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 349 | +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c |
350 | @@ -2617,7 +2617,7 @@ static int atl1c_init_netdev(struct net_ | 350 | @@ -2620,7 +2620,7 @@ static int atl1c_init_netdev(struct net_ |
351 | pci_set_drvdata(pdev, netdev); | 351 | pci_set_drvdata(pdev, netdev); |
352 | 352 | ||
353 | netdev->irq = pdev->irq; | 353 | netdev->irq = pdev->irq; |
@@ -369,7 +369,7 @@ without creating a headache on maintenance of the pathes. | |||
369 | netdev->ethtool_ops = &atl1_ethtool_ops; | 369 | netdev->ethtool_ops = &atl1_ethtool_ops; |
370 | --- a/drivers/net/ethernet/atheros/atlx/atl2.c | 370 | --- a/drivers/net/ethernet/atheros/atlx/atl2.c |
371 | +++ b/drivers/net/ethernet/atheros/atlx/atl2.c | 371 | +++ b/drivers/net/ethernet/atheros/atlx/atl2.c |
372 | @@ -1411,7 +1411,7 @@ static int __devinit atl2_probe(struct p | 372 | @@ -1414,7 +1414,7 @@ static int __devinit atl2_probe(struct p |
373 | 373 | ||
374 | atl2_setup_pcicmd(pdev); | 374 | atl2_setup_pcicmd(pdev); |
375 | 375 | ||
diff --git a/patches/29-sdio_no_suspend.patch b/patches/29-sdio_no_suspend.patch index 934eb94..f5b85b7 100644 --- a/patches/29-sdio_no_suspend.patch +++ b/patches/29-sdio_no_suspend.patch | |||
@@ -5,66 +5,88 @@ suspend and resume that are not backported. | |||
5 | 5 | ||
6 | --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c | 6 | --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c |
7 | +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c | 7 | +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c |
8 | @@ -1411,7 +1411,7 @@ static int ath6kl_flush_pmksa(struct wip | 8 | @@ -1871,7 +1871,7 @@ int ath6kl_cfg80211_resume(struct ath6kl |
9 | return 0; | 9 | return 0; |
10 | } | 10 | } |
11 | 11 | ||
12 | -#ifdef CONFIG_PM | 12 | -#ifdef CONFIG_PM |
13 | +#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | 13 | +#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) |
14 | static int ar6k_cfg80211_suspend(struct wiphy *wiphy, | 14 | |
15 | struct cfg80211_wowlan *wow) | 15 | /* hif layer decides what suspend mode to use */ |
16 | { | 16 | static int __ath6kl_cfg80211_suspend(struct wiphy *wiphy, |
17 | @@ -1827,7 +1827,7 @@ static struct cfg80211_ops ath6kl_cfg802 | 17 | @@ -2346,7 +2346,7 @@ static struct cfg80211_ops ath6kl_cfg802 |
18 | .del_pmksa = ath6kl_del_pmksa, | 18 | .del_pmksa = ath6kl_del_pmksa, |
19 | .flush_pmksa = ath6kl_flush_pmksa, | 19 | .flush_pmksa = ath6kl_flush_pmksa, |
20 | CFG80211_TESTMODE_CMD(ath6kl_tm_cmd) | 20 | CFG80211_TESTMODE_CMD(ath6kl_tm_cmd) |
21 | -#ifdef CONFIG_PM | 21 | -#ifdef CONFIG_PM |
22 | +#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | 22 | +#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) |
23 | .suspend = ar6k_cfg80211_suspend, | 23 | .suspend = __ath6kl_cfg80211_suspend, |
24 | .resume = __ath6kl_cfg80211_resume, | ||
24 | #endif | 25 | #endif |
25 | .set_channel = ath6kl_set_channel, | ||
26 | --- a/drivers/net/wireless/ath/ath6kl/hif-ops.h | 26 | --- a/drivers/net/wireless/ath/ath6kl/hif-ops.h |
27 | +++ b/drivers/net/wireless/ath/ath6kl/hif-ops.h | 27 | +++ b/drivers/net/wireless/ath/ath6kl/hif-ops.h |
28 | @@ -69,9 +69,11 @@ static inline void ath6kl_hif_cleanup_sc | 28 | @@ -83,6 +83,7 @@ static inline void ath6kl_hif_cleanup_sc |
29 | return ar->hif_ops->cleanup_scatter(ar); | 29 | return ar->hif_ops->cleanup_scatter(ar); |
30 | } | 30 | } |
31 | 31 | ||
32 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | 32 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) |
33 | static inline int ath6kl_hif_suspend(struct ath6kl *ar) | 33 | static inline int ath6kl_hif_suspend(struct ath6kl *ar, |
34 | struct cfg80211_wowlan *wow) | ||
34 | { | 35 | { |
35 | return ar->hif_ops->suspend(ar); | 36 | @@ -97,6 +98,7 @@ static inline int ath6kl_hif_resume(stru |
37 | |||
38 | return ar->hif_ops->resume(ar); | ||
36 | } | 39 | } |
37 | +#endif | 40 | +#endif |
38 | 41 | ||
39 | #endif | 42 | static inline int ath6kl_hif_power_on(struct ath6kl *ar) |
43 | { | ||
40 | --- a/drivers/net/wireless/ath/ath6kl/sdio.c | 44 | --- a/drivers/net/wireless/ath/ath6kl/sdio.c |
41 | +++ b/drivers/net/wireless/ath/ath6kl/sdio.c | 45 | +++ b/drivers/net/wireless/ath/ath6kl/sdio.c |
42 | @@ -724,6 +724,7 @@ static int ath6kl_sdio_enable_scatter(st | 46 | @@ -774,6 +774,7 @@ out: |
43 | return 0; | 47 | return ret; |
44 | } | 48 | } |
45 | 49 | ||
46 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | 50 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) |
47 | static int ath6kl_sdio_suspend(struct ath6kl *ar) | 51 | static int ath6kl_sdio_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow) |
48 | { | 52 | { |
49 | struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); | 53 | struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); |
50 | @@ -751,6 +752,7 @@ static int ath6kl_sdio_suspend(struct at | 54 | @@ -845,6 +846,7 @@ static int ath6kl_sdio_resume(struct ath |
51 | 55 | ||
52 | return 0; | 56 | return 0; |
53 | } | 57 | } |
54 | +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) */ | 58 | +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) */ |
55 | 59 | ||
56 | static const struct ath6kl_hif_ops ath6kl_sdio_ops = { | 60 | static void ath6kl_sdio_stop(struct ath6kl *ar) |
57 | .read_write_sync = ath6kl_sdio_read_write_sync, | 61 | { |
58 | @@ -762,7 +764,9 @@ static const struct ath6kl_hif_ops ath6k | 62 | @@ -888,14 +890,16 @@ static const struct ath6kl_hif_ops ath6k |
59 | .enable_scatter = ath6kl_sdio_enable_scatter, | 63 | .enable_scatter = ath6kl_sdio_enable_scatter, |
60 | .scat_req_rw = ath6kl_sdio_async_rw_scatter, | 64 | .scat_req_rw = ath6kl_sdio_async_rw_scatter, |
61 | .cleanup_scatter = ath6kl_sdio_cleanup_scatter, | 65 | .cleanup_scatter = ath6kl_sdio_cleanup_scatter, |
62 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | 66 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) |
63 | .suspend = ath6kl_sdio_suspend, | 67 | .suspend = ath6kl_sdio_suspend, |
68 | .resume = ath6kl_sdio_resume, | ||
69 | +#endif | ||
70 | .power_on = ath6kl_sdio_power_on, | ||
71 | .power_off = ath6kl_sdio_power_off, | ||
72 | .stop = ath6kl_sdio_stop, | ||
73 | }; | ||
74 | |||
75 | -#ifdef CONFIG_PM_SLEEP | ||
76 | +#if defined(CONFIG_PM_SLEEP) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | ||
77 | |||
78 | /* | ||
79 | * Empty handlers so that mmc subsystem doesn't remove us entirely during | ||
80 | @@ -1037,7 +1041,9 @@ static struct sdio_driver ath6kl_sdio_dr | ||
81 | .id_table = ath6kl_sdio_devices, | ||
82 | .probe = ath6kl_sdio_probe, | ||
83 | .remove = ath6kl_sdio_remove, | ||
84 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) | ||
85 | .drv.pm = ATH6KL_SDIO_PM_OPS, | ||
64 | +#endif | 86 | +#endif |
65 | }; | 87 | }; |
66 | 88 | ||
67 | static int ath6kl_sdio_probe(struct sdio_func *func, | 89 | static int __init ath6kl_sdio_init(void) |
68 | --- a/drivers/net/wireless/libertas/if_sdio.c | 90 | --- a/drivers/net/wireless/libertas/if_sdio.c |
69 | +++ b/drivers/net/wireless/libertas/if_sdio.c | 91 | +++ b/drivers/net/wireless/libertas/if_sdio.c |
70 | @@ -1306,6 +1306,7 @@ static void if_sdio_remove(struct sdio_f | 92 | @@ -1306,6 +1306,7 @@ static void if_sdio_remove(struct sdio_f |
@@ -123,7 +145,7 @@ suspend and resume that are not backported. | |||
123 | 145 | ||
124 | /* Device ID for SD8787 */ | 146 | /* Device ID for SD8787 */ |
125 | #define SDIO_DEVICE_ID_MARVELL_8787 (0x9119) | 147 | #define SDIO_DEVICE_ID_MARVELL_8787 (0x9119) |
126 | @@ -267,10 +271,12 @@ static const struct sdio_device_id mwifi | 148 | @@ -270,10 +274,12 @@ static const struct sdio_device_id mwifi |
127 | 149 | ||
128 | MODULE_DEVICE_TABLE(sdio, mwifiex_ids); | 150 | MODULE_DEVICE_TABLE(sdio, mwifiex_ids); |
129 | 151 | ||
@@ -136,7 +158,7 @@ suspend and resume that are not backported. | |||
136 | 158 | ||
137 | static struct sdio_driver mwifiex_sdio = { | 159 | static struct sdio_driver mwifiex_sdio = { |
138 | .name = "mwifiex_sdio", | 160 | .name = "mwifiex_sdio", |
139 | @@ -279,7 +285,9 @@ static struct sdio_driver mwifiex_sdio = | 161 | @@ -282,7 +288,9 @@ static struct sdio_driver mwifiex_sdio = |
140 | .remove = mwifiex_sdio_remove, | 162 | .remove = mwifiex_sdio_remove, |
141 | .drv = { | 163 | .drv = { |
142 | .owner = THIS_MODULE, | 164 | .owner = THIS_MODULE, |