diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-11-03 14:55:53 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-11-03 14:55:53 +0000 |
commit | 4f69a1b3292fcb51a22234af014d11191c456852 (patch) | |
tree | d7632afb57d76212386126584cef9bf85be8e268 /target/linux/ar71xx/files/arch | |
parent | 65bb54b1e58cdcfdabbe8cd531cb1af13e3fe115 (diff) |
ar71xx: improve the wndr3700 quirks - move most of the code out of ath9k and instead allow the platform device to specify gpio overrides - fixes 5ghz signal strength issues
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23822 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/files/arch')
3 files changed, 23 insertions, 6 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-pci.c b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-pci.c index 2342d7f7e..e773702e1 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-pci.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-pci.c @@ -18,7 +18,9 @@ #include "dev-ap91-pci.h" #include "pci-ath9k-fixup.h" -static struct ath9k_platform_data ap91_wmac_data; +static struct ath9k_platform_data ap91_wmac_data = { + .led_pin = -1, +}; static char ap91_wmac_mac[6]; static struct ar71xx_pci_irq ap91_pci_irqs[] __initdata = { diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.c b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.c index 2436491b4..1fd40bb62 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.c @@ -18,8 +18,12 @@ #include "dev-ap94-pci.h" #include "pci-ath9k-fixup.h" -static struct ath9k_platform_data ap94_wmac0_data; -static struct ath9k_platform_data ap94_wmac1_data; +static struct ath9k_platform_data ap94_wmac0_data = { + .led_pin = -1, +}; +static struct ath9k_platform_data ap94_wmac1_data = { + .led_pin = -1, +}; static char ap94_wmac0_mac[6]; static char ap94_wmac1_mac[6]; @@ -52,8 +56,17 @@ static int ap94_pci_plat_dev_init(struct pci_dev *dev) void __init ap94_pci_enable_quirk_wndr3700(void) { - ap94_wmac0_data.quirk_wndr3700 = 1; - ap94_wmac1_data.quirk_wndr3700 = 1; + /* WNDR3700 uses GPIO 6-9 for antenna configuration */ + + ap94_wmac0_data.led_pin = 5; + ap94_wmac0_data.gpio_mask = (0xf << 6); + /* 2.4 GHz uses the first fixed antenna group (0, 1, 0, 1) */ + ap94_wmac0_data.gpio_val = (5 << 6); + + ap94_wmac1_data.led_pin = 5; + ap94_wmac1_data.gpio_mask = (0xf << 6); + /* 5 GHz uses the second fixed antenna group (0, 1, 1, 0) */ + ap94_wmac1_data.gpio_val = (6 << 6); } void __init ap94_pci_init(u8 *cal_data0, u8 *mac_addr0, diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ar913x-wmac.c b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ar913x-wmac.c index 024d29044..7840ff9c5 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ar913x-wmac.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-ar913x-wmac.c @@ -22,7 +22,9 @@ #include "dev-ar913x-wmac.h" -static struct ath9k_platform_data ar913x_wmac_data; +static struct ath9k_platform_data ar913x_wmac_data = { + .led_pin = -1, +}; static char ar913x_wmac_mac[6]; static struct resource ar913x_wmac_resources[] = { |