diff options
Diffstat (limited to 'package/madwifi/patches/109-soc_platform.patch')
-rw-r--r-- | package/madwifi/patches/109-soc_platform.patch | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/package/madwifi/patches/109-soc_platform.patch b/package/madwifi/patches/109-soc_platform.patch deleted file mode 100644 index d24e262ec8..0000000000 --- a/package/madwifi/patches/109-soc_platform.patch +++ /dev/null @@ -1,240 +0,0 @@ -diff -ur madwifi.old/ath/if_ath_ahb.c madwifi.dev/ath/if_ath_ahb.c ---- madwifi.old/ath/if_ath_ahb.c 2007-02-04 04:07:15.810701232 +0100 -+++ madwifi.dev/ath/if_ath_ahb.c 2007-02-04 04:14:02.699844680 +0100 -@@ -17,6 +17,9 @@ - #include <linux/if.h> - #include <linux/netdevice.h> - #include <linux/cache.h> -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) -+#include <linux/platform_device.h> -+#endif - - #include <asm/io.h> - #include <asm/uaccess.h> -@@ -39,6 +42,7 @@ - static struct ath_ahb_softc *sclist[2] = {NULL, NULL}; - static u_int8_t num_activesc = 0; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) - static struct ar531x_boarddata *ar5312_boardConfig = NULL; - static char *radioConfig = NULL; - -@@ -136,6 +140,8 @@ - data[i] = eepromAddr[off]; - } - -+#endif -+ - /* set bus cachesize in 4B word units */ - void - bus_read_cachesize(struct ath_softc *sc, u_int8_t *csz) -@@ -180,7 +186,8 @@ - u_int32_t reset; - u_int32_t enable; - -- if ((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) { -+ if (((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) || -+ ((devid & AR5315_REV_MAJ_M) == AR5317_REV_MAJ)) { - u_int32_t reg; - u_int32_t *en = (u_int32_t *) AR5315_AHB_ARB_CTL; - -@@ -241,7 +248,8 @@ - ahb_disable_wmac(u_int16_t devid, u_int16_t wlanNum) - { - u_int32_t enable; -- if ((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) { -+ if (((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) || -+ ((devid & AR5315_REV_MAJ_M) == AR5317_REV_MAJ)) { - u_int32_t *en = (u_int32_t *) AR5315_AHB_ARB_CTL; - - KASSERT(wlanNum == 0, ("invalid wlan # %d", wlanNum) ); -@@ -265,12 +273,12 @@ - } - - -+ - int --exit_ath_wmac(u_int16_t wlanNum) -+exit_ath_wmac(u_int16_t wlanNum, struct ar531x_config *config) - { - struct ath_ahb_softc *sc = sclist[wlanNum]; - struct net_device *dev; -- const char *sysType; - u_int16_t devid; - - if (sc == NULL) -@@ -280,13 +288,17 @@ - ath_detach(dev); - if (dev->irq) - free_irq(dev->irq, dev); -- sysType = get_system_type(); -- if (!strcmp(sysType, "Atheros AR5315")) -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) -+ devid = (u32) config->tag; -+#else -+ if (!strcmp(get_system_type(), "Atheros AR5315")) - devid = (u_int16_t) (sysRegRead(AR5315_SREV) & - (AR5315_REV_MAJ_M | AR5315_REV_MIN_M)); - else - devid = (u_int16_t) ((sysRegRead(AR531X_REV) >> 8) & - (AR531X_REV_MAJ | AR531X_REV_MIN)); -+#endif - - ahb_disable_wmac(devid, wlanNum); - free_netdev(dev); -@@ -295,7 +307,7 @@ - } - - int --init_ath_wmac(u_int16_t devid, u_int16_t wlanNum) -+init_ath_wmac(u_int16_t devid, u_int16_t wlanNum, struct ar531x_config *config) - { - const char *athname; - struct net_device *dev; -@@ -329,7 +341,8 @@ - - switch (wlanNum) { - case AR531X_WLAN0_NUM: -- if ((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) { -+ if (((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) || -+ ((devid & AR5315_REV_MAJ_M) == AR5317_REV_MAJ)) { - dev->irq = AR5315_IRQ_WLAN0_INTRS; - dev->mem_start = AR5315_WLAN0; - } else { -@@ -352,12 +365,7 @@ - goto bad3; - } - -- struct ar531x_config config; -- config.board = ar5312_boardConfig; -- config.radio = radioConfig; -- config.unit = wlanNum; -- config.tag = NULL; -- if (ath_attach(devid, dev, &config) != 0) -+ if (ath_attach(devid, dev, config) != 0) - goto bad4; - athname = ath_hal_probe(ATHEROS_VENDOR_ID, devid); - printk(KERN_INFO "%s: %s: mem=0x%lx, irq=%d\n", -@@ -379,24 +387,63 @@ - return -ENODEV; - } - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) -+static int ahb_wmac_probe(struct platform_device *pdev) -+{ -+ u32 devid; -+ struct ar531x_config *config; -+ -+ config = (struct ar531x_config *) pdev->dev.platform_data; -+ devid = (u32) config->tag; -+ config->tag = NULL; -+ -+ return init_ath_wmac((u_int16_t) devid, pdev->id, config); -+} -+ -+ -+static int ahb_wmac_remove(struct platform_device *pdev) -+{ -+ exit_ath_wmac(pdev->id, (struct ar531x_config *) pdev->dev.platform_data); -+ -+ return 0; -+} -+ -+struct platform_driver ahb_wmac_driver = { -+ .driver.name = "ar531x-wmac", -+ .probe = ahb_wmac_probe, -+ .remove = ahb_wmac_remove -+}; -+ -+#else -+ - int - init_ahb(void) - { - int ret; - u_int16_t devid, radioMask; - const char *sysType; -+ struct ar531x_config config; -+ - sysType = get_system_type(); -+ -+ /* Probe to find out the silicon revision and enable the -+ correct number of macs */ -+ if (!ar5312SetupFlash()) -+ return -ENODEV; -+ -+ config.board = ar5312_boardConfig; -+ config.radio = radioConfig; -+ config.unit = wlanNum; -+ config.tag = NULL; -+ - if (!strcmp(sysType,"Atheros AR5315")) { - devid = (u_int16_t) (sysRegRead(AR5315_SREV) & - (AR5315_REV_MAJ_M | AR5315_REV_MIN_M)); -- if ((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) -+ if (((devid & AR5315_REV_MAJ_M) == AR5315_REV_MAJ) || -+ ((devid & AR5315_REV_MAJ_M) == AR5317_REV_MAJ)) - return init_ath_wmac(devid, 0); - } - -- /* Probe to find out the silicon revision and enable the -- correct number of macs */ -- if (!ar5312SetupFlash()) -- return -ENODEV; - devid = (u_int16_t) ((sysRegRead(AR531X_REV) >>8) & - (AR531X_REV_MAJ | AR531X_REV_MIN)); - switch (devid) { -@@ -420,6 +467,7 @@ - return 0; - } - -+#endif - - /* - * Module glue. -@@ -460,13 +508,19 @@ - { - printk(KERN_INFO "%s: %s\n", dev_info, version); - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) -+ platform_driver_register(&ahb_wmac_driver); -+#else - if (init_ahb() != 0) { - printk("ath_ahb: No devices found, driver not installed.\n"); - return (-ENODEV); - } -+#endif -+ - #ifdef CONFIG_SYSCTL - ath_sysctl_register(); - #endif -+ - return 0; - } - module_init(init_ath_ahb); -@@ -477,8 +531,13 @@ - #ifdef CONFIG_SYSCTL - ath_sysctl_unregister(); - #endif -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) -+ platform_driver_unregister(&ahb_wmac_driver); -+#else - exit_ath_wmac(AR531X_WLAN0_NUM); - exit_ath_wmac(AR531X_WLAN1_NUM); -+#endif - - printk(KERN_INFO "%s: driver unloaded\n", dev_info); - } -diff -ur madwifi.old/ath/if_ath_ahb.h madwifi.dev/ath/if_ath_ahb.h ---- madwifi.old/ath/if_ath_ahb.h 2007-02-04 04:07:15.810701232 +0100 -+++ madwifi.dev/ath/if_ath_ahb.h 2007-02-04 04:06:49.070766320 +0100 -@@ -59,6 +59,7 @@ - #define AR5315_SREV 0xb1000014 - - #define AR5315_REV_MAJ 0x0080 -+#define AR5317_REV_MAJ 0x0090 - #define AR5315_REV_MAJ_M 0x00f0 - #define AR5315_REV_MAJ_S 4 - #define AR5315_REV_MIN_M 0x000f |