mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-02-02 19:51:05 +02:00
backfire: ar71xx: improve the wndr3700 quirks (backport of r23822, r23875)
- 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/branches/backfire@24921 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
2cfc5db509
commit
e21f26857b
@ -17,7 +17,9 @@
|
|||||||
|
|
||||||
#include "dev-ap91-pci.h"
|
#include "dev-ap91-pci.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 char ap91_wmac_mac[6];
|
||||||
static int ap91_pci_fixup_enabled;
|
static int ap91_pci_fixup_enabled;
|
||||||
|
|
||||||
|
@ -17,8 +17,12 @@
|
|||||||
|
|
||||||
#include "dev-ap94-pci.h"
|
#include "dev-ap94-pci.h"
|
||||||
|
|
||||||
static struct ath9k_platform_data ap94_wmac0_data;
|
static struct ath9k_platform_data ap94_wmac0_data = {
|
||||||
static struct ath9k_platform_data ap94_wmac1_data;
|
.led_pin = -1,
|
||||||
|
};
|
||||||
|
static struct ath9k_platform_data ap94_wmac1_data = {
|
||||||
|
.led_pin = -1,
|
||||||
|
};
|
||||||
static char ap94_wmac0_mac[6];
|
static char ap94_wmac0_mac[6];
|
||||||
static char ap94_wmac1_mac[6];
|
static char ap94_wmac1_mac[6];
|
||||||
static int ap94_pci_fixup_enabled;
|
static int ap94_pci_fixup_enabled;
|
||||||
@ -127,8 +131,17 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ap94_pci_fixup);
|
|||||||
|
|
||||||
void __init ap94_pci_enable_quirk_wndr3700(void)
|
void __init ap94_pci_enable_quirk_wndr3700(void)
|
||||||
{
|
{
|
||||||
ap94_wmac0_data.quirk_wndr3700 = 1;
|
/* WNDR3700 uses GPIO 6-9 for antenna configuration */
|
||||||
ap94_wmac1_data.quirk_wndr3700 = 1;
|
|
||||||
|
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 = (10 << 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,
|
void __init ap94_pci_init(u8 *cal_data0, u8 *mac_addr0,
|
||||||
|
@ -22,7 +22,9 @@
|
|||||||
|
|
||||||
#include "dev-ar913x-wmac.h"
|
#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 char ar913x_wmac_mac[6];
|
||||||
|
|
||||||
static struct resource ar913x_wmac_resources[] = {
|
static struct resource ar913x_wmac_resources[] = {
|
||||||
|
@ -1,11 +1,19 @@
|
|||||||
/*
|
/*
|
||||||
* ath9k platform data defines
|
* Copyright (c) 2008 Atheros Communications Inc.
|
||||||
|
* Copyright (c) 2009 Gabor Juhos <juhosg@openwrt.org>
|
||||||
|
* Copyright (c) 2009 Imre Kaloz <kaloz@openwrt.org>
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008 Gabor Juhos <juhosg@openwrt.org>
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
* under the terms of the GNU General Public License version 2 as published
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
* by the Free Software Foundation.
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _LINUX_ATH9K_PLATFORM_H
|
#ifndef _LINUX_ATH9K_PLATFORM_H
|
||||||
@ -17,7 +25,9 @@ struct ath9k_platform_data {
|
|||||||
u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
|
u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
|
||||||
u8 *macaddr;
|
u8 *macaddr;
|
||||||
|
|
||||||
unsigned long quirk_wndr3700:1;
|
int led_pin;
|
||||||
|
u32 gpio_mask;
|
||||||
|
u32 gpio_val;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _LINUX_ATH9K_PLATFORM_H */
|
#endif /* _LINUX_ATH9K_PLATFORM_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user