| From 8879e209111192c5e9752d7bd203cf7582693328 Mon Sep 17 00:00:00 2001 |
| From: Jonas Gorski <jonas.gorski@gmail.com> |
| Date: Thu, 3 May 2012 14:40:03 +0200 |
| Subject: [PATCH 58/72] BCM63XX: allow providing fixup data in board data |
| |
| --- |
| arch/mips/bcm63xx/boards/board_bcm963xx.c | 9 ++++++++- |
| arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 10 ++++++++++ |
| 2 files changed, 18 insertions(+), 1 deletion(-) |
| |
| --- a/arch/mips/bcm63xx/boards/board_common.c |
| +++ b/arch/mips/bcm63xx/boards/board_common.c |
| @@ -31,6 +31,7 @@ |
| #include <bcm63xx_dev_usb_ohci.h> |
| #include <bcm63xx_dev_usb_usbd.h> |
| #include <board_bcm963xx.h> |
| +#include <pci_ath9k_fixup.h> |
| |
| #include "board_common.h" |
| |
| @@ -177,6 +178,7 @@ static struct of_device_id of_ids[] = { |
| int __init board_register_devices(void) |
| { |
| int usbh_ports = 0; |
| + int i; |
| |
| #if CONFIG_OF |
| if (of_have_populated_dt()) { |
| @@ -241,6 +243,10 @@ int __init board_register_devices(void) |
| board.ephy_reset_gpio_flags); |
| } |
| |
| + /* register any fixups */ |
| + for (i = 0; i < board.has_caldata; i++) |
| + pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset); |
| + |
| return 0; |
| } |
| |
| --- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h |
| +++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h |
| @@ -9,6 +9,7 @@ |
| #include <bcm63xx_dev_enet.h> |
| #include <bcm63xx_dev_usb_usbd.h> |
| #include <bcm63xx_fallback_sprom.h> |
| +#include <pci_ath9k_fixup.h> |
| |
| /* |
| * flash mapping |
| @@ -16,6 +17,11 @@ |
| #define BCM963XX_CFE_VERSION_OFFSET 0x570 |
| #define BCM963XX_NVRAM_OFFSET 0x580 |
| |
| +struct ath9k_caldata { |
| + unsigned int slot; |
| + u32 caldata_offset; |
| +}; |
| + |
| /* |
| * board definition |
| */ |
| @@ -33,6 +39,10 @@ struct board_info { |
| unsigned int has_ehci0:1; |
| unsigned int has_usbd:1; |
| unsigned int use_fallback_sprom:1; |
| + unsigned int has_caldata:2; |
| + |
| + /* wifi calibration data config */ |
| + struct ath9k_caldata caldata[2]; |
| |
| /* ethernet config */ |
| struct bcm63xx_enet_platform_data enet0; |