summaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/arch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-11-03 14:55:53 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-11-03 14:55:53 +0000
commit4f69a1b3292fcb51a22234af014d11191c456852 (patch)
treed7632afb57d76212386126584cef9bf85be8e268 /target/linux/ar71xx/files/arch
parent65bb54b1e58cdcfdabbe8cd531cb1af13e3fe115 (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')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap91-pci.c4
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/dev-ap94-pci.c21
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/dev-ar913x-wmac.c4
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[] = {