aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/arch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-11-03 14:55:53 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-11-03 14:55:53 +0000
commitb4e2c09b46d37dd2e7020b9f8f157c3fcfc9b76d (patch)
treedf28bbae0879ec65f71f706c2ce7a9a13e5eba72 /target/linux/ar71xx/files/arch
parent00e1797f14aae1b62dc18be41c65b507e07b0d42 (diff)
downloadupstream-b4e2c09b46d37dd2e7020b9f8f157c3fcfc9b76d.tar.gz
upstream-b4e2c09b46d37dd2e7020b9f8f157c3fcfc9b76d.tar.bz2
upstream-b4e2c09b46d37dd2e7020b9f8f157c3fcfc9b76d.zip
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
SVN-Revision: 23822
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 2342d7f7ea..e773702e14 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 2436491b4e..1fd40bb628 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 024d29044b..7840ff9c58 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[] = {