diff options
Diffstat (limited to 'package/acx-mac80211/patches')
6 files changed, 177 insertions, 14 deletions
diff --git a/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch b/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch new file mode 100644 index 000000000..707ba8bb4 --- /dev/null +++ b/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch @@ -0,0 +1,30 @@ +--- a/main.h ++++ b/main.h +@@ -44,8 +44,11 @@ int acx_e_op_get_tx_stats(struct ieee802 + + #if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(2, 6, 39) + int acx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb); +-#else ++#elif CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 7, 0) + void acx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb); ++#else ++void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, ++ struct sk_buff *skb); + #endif + + +--- a/main.c ++++ b/main.c +@@ -1024,7 +1024,12 @@ int acx_e_op_get_tx_stats(struct ieee802 + * acx_compat, and hiding this #if/else. OTOH, inclusion doesnt care + * about old kernels + */ ++#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 7, 0) + OP_TX_RET_TYPE acx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) ++#else ++void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control, ++ struct sk_buff *skb) ++#endif + { + acx_device_t *adev = ieee2adev(hw); + diff --git a/package/acx-mac80211/patches/002-remove-usage-of__dev.patch b/package/acx-mac80211/patches/002-remove-usage-of__dev.patch new file mode 100644 index 000000000..f16d3b68b --- /dev/null +++ b/package/acx-mac80211/patches/002-remove-usage-of__dev.patch @@ -0,0 +1,85 @@ +--- a/mem.c ++++ b/mem.c +@@ -2002,7 +2002,7 @@ int acx100mem_ioctl_set_phy_amp_bias(str + * configuration + * id - ptr to the device id entry that matched this device + */ +-static int __devinit acxmem_probe(struct platform_device *pdev) ++static int acxmem_probe(struct platform_device *pdev) + { + acx_device_t *adev = NULL; + const char *chip_name; +@@ -2268,7 +2268,7 @@ done: + * pdev - ptr to PCI device structure containing info about pci + * configuration + */ +-static int __devexit acxmem_remove(struct platform_device *pdev) ++static int acxmem_remove(struct platform_device *pdev) + { + struct ieee80211_hw *hw = (struct ieee80211_hw *) + platform_get_drvdata(pdev); +@@ -2470,7 +2470,7 @@ static struct platform_driver acxmem_dri + .name = "acx-mem", + }, + .probe = acxmem_probe, +- .remove = __devexit_p(acxmem_remove), ++ .remove = acxmem_remove, + + #ifdef CONFIG_PM + .suspend = acxmem_e_suspend, +--- a/pci.c ++++ b/pci.c +@@ -982,7 +982,7 @@ int acx100pci_ioctl_set_phy_amp_bias(str + * id - ptr to the device id entry that matched this device + */ + #ifdef CONFIG_PCI +-static int __devinit acxpci_probe(struct pci_dev *pdev, ++static int acxpci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) + { + acx111_ie_configoption_t co; +@@ -1346,7 +1346,7 @@ done: + * + * pdev - ptr to PCI device structure containing info about pci configuration + */ +-static void __devexit acxpci_remove(struct pci_dev *pdev) ++static void acxpci_remove(struct pci_dev *pdev) + { + struct ieee80211_hw *hw + = (struct ieee80211_hw *) pci_get_drvdata(pdev); +@@ -1537,7 +1537,7 @@ static int acxpci_e_resume(struct pci_de + */ + + #if 0 // use later ? +-static struct acxpci_device_info acxpci_info_tbl[] __devinitdata = { ++static struct acxpci_device_info acxpci_info_tbl[] = { + [0] = { + .part_name = "acx111", + .helper_image = "tiacx1111r16", // probly wrong !! +@@ -1564,7 +1564,7 @@ static struct pci_driver acxpci_driver = + .name = "acx_pci", + .id_table = acxpci_id_tbl, + .probe = acxpci_probe, +- .remove = __devexit_p(acxpci_remove), ++ .remove = acxpci_remove, + #ifdef CONFIG_PM + .suspend = acxpci_e_suspend, + .resume = acxpci_e_resume +@@ -1662,7 +1662,7 @@ static struct vlynq_device_id acx_vlynq_ + }; + + +-static __devinit int vlynq_probe(struct vlynq_device *vdev, ++static int vlynq_probe(struct vlynq_device *vdev, + struct vlynq_device_id *id) + { + int result = -EIO, i; +@@ -1971,7 +1971,7 @@ static struct vlynq_driver vlynq_acx = { + .name = "acx_vlynq", + .id_table = acx_vlynq_id, + .probe = vlynq_probe, +- .remove = __devexit_p(vlynq_remove), ++ .remove = vlynq_remove, + }; + #endif /* CONFIG_VLYNQ */ + diff --git a/package/acx-mac80211/patches/003-add-changes-for-3-10.patch b/package/acx-mac80211/patches/003-add-changes-for-3-10.patch new file mode 100644 index 000000000..18d4f9e39 --- /dev/null +++ b/package/acx-mac80211/patches/003-add-changes-for-3-10.patch @@ -0,0 +1,27 @@ +--- a/main.c ++++ b/main.c +@@ -681,6 +681,7 @@ int acx_op_config(struct ieee80211_hw *h + if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { + changed_not_done &= ~IEEE80211_CONF_CHANGE_CHANNEL; + ++#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 10, 0) + logf1(L_DEBUG, "IEEE80211_CONF_CHANGE_CHANNEL, " + "channel->hw_value=%i\n", conf->channel->hw_value); + +@@ -689,6 +690,16 @@ int acx_op_config(struct ieee80211_hw *h + + acx_selectchannel(adev, conf->channel->hw_value, + conf->channel->center_freq); ++#else ++ logf1(L_DEBUG, "IEEE80211_CONF_CHANGE_CHANNEL, " ++ "channel->hw_value=%i\n", conf->chandef.chan->hw_value); ++ ++ if (conf->chandef.chan->hw_value == adev->channel) ++ goto change_channel_done; ++ ++ acx_selectchannel(adev, conf->chandef.chan->hw_value, ++ conf->chandef.chan->center_freq); ++#endif + } + change_channel_done: + if (changed_not_done) diff --git a/package/acx-mac80211/patches/004-ratelimit_compile_fix.patch b/package/acx-mac80211/patches/004-ratelimit_compile_fix.patch deleted file mode 100644 index 56110eab0..000000000 --- a/package/acx-mac80211/patches/004-ratelimit_compile_fix.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/common.c -+++ b/common.c -@@ -34,6 +34,7 @@ - #include <linux/pci.h> - #include <linux/nl80211.h> - #include <linux/ieee80211.h> -+#include <linux/ratelimit.h> - - #include <net/mac80211.h> - diff --git a/package/acx-mac80211/patches/100-hw-queue-check-fix.patch b/package/acx-mac80211/patches/100-hw-queue-check-fix.patch index 62f2998e8..73366f342 100644 --- a/package/acx-mac80211/patches/100-hw-queue-check-fix.patch +++ b/package/acx-mac80211/patches/100-hw-queue-check-fix.patch @@ -1,6 +1,6 @@ --- a/mem.c +++ b/mem.c -@@ -2026,7 +2026,7 @@ static int __devinit acxmem_probe(struct +@@ -2036,7 +2036,7 @@ static int acxmem_probe(struct platform_ */ ieee->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); @@ -11,7 +11,7 @@ /* TODO: although in the original driver the maximum value was --- a/pci.c +++ b/pci.c -@@ -1010,7 +1010,7 @@ static int __devinit acxpci_probe(struct +@@ -1022,7 +1022,7 @@ static int acxpci_probe(struct pci_dev * BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_AP); @@ -20,7 +20,7 @@ /* OW TODO Check if RTS/CTS threshold can be included here */ /* TODO: although in the original driver the maximum value was -@@ -1682,7 +1682,7 @@ static __devinit int vlynq_probe(struct +@@ -1691,7 +1691,7 @@ static int vlynq_probe(struct vlynq_devi BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_AP); @@ -31,7 +31,7 @@ * TODO OW 20100615 This should into a common init code --- a/usb.c +++ b/usb.c -@@ -1627,7 +1627,7 @@ acxusb_probe(struct usb_interface *intf, +@@ -1624,7 +1624,7 @@ acxusb_probe(struct usb_interface *intf, */ ieee->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC); diff --git a/package/acx-mac80211/patches/200-initial-macaddr.patch b/package/acx-mac80211/patches/200-initial-macaddr.patch new file mode 100644 index 000000000..cc82fecbb --- /dev/null +++ b/package/acx-mac80211/patches/200-initial-macaddr.patch @@ -0,0 +1,31 @@ +--- a/cardsetting.c ++++ b/cardsetting.c +@@ -710,12 +710,27 @@ static int acx1xx_get_station_id(acx_dev + u8 stationID[4 + acx_ie_descs[ACX1xx_IE_DOT11_STATION_ID].len]; + const u8 *paddr; + int i, res; ++ const char *prom_addr; ++ char *prom_getenv(const char *name); + + + + res = acx_interrogate(adev, &stationID, ACX1xx_IE_DOT11_STATION_ID); + paddr = &stationID[4]; +- for (i = 0; i < ETH_ALEN; i++) { ++ prom_addr = NULL; ++#ifdef CONFIG_VLYNQ ++ prom_addr = prom_getenv("macwlan"); ++ if (prom_addr == NULL) ++ prom_addr = prom_getenv("mac_ap"); ++#endif ++ if (prom_addr) ++ sscanf(prom_addr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", adev->dev_addr, ++ adev->dev_addr + 1, ++ adev->dev_addr + 2, ++ adev->dev_addr + 3, ++ adev->dev_addr + 4, ++ adev->dev_addr + 5); ++ else for (i = 0; i < ETH_ALEN; i++) { + /* we copy the MAC address (reversed in the card) to + * the netdevice's MAC address, and on ifup it will be + * copied into iwadev->dev_addr */ |