/branches/18.06.1/target/linux/brcm63xx/patches-4.9/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch/413-BCM63XX-allow-providing-fixup-data-in-board-data.patch |
@@ -0,0 +1,72 @@ |
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 |
@@ -8,6 +8,7 @@ |
#include <bcm63xx_dev_enet.h> |
#include <bcm63xx_dev_usb_usbd.h> |
#include <bcm63xx_fallback_sprom.h> |
+#include <pci_ath9k_fixup.h> |
|
/* |
* flash mapping |
@@ -15,6 +16,11 @@ |
#define BCM963XX_CFE_VERSION_OFFSET 0x570 |
#define BCM963XX_NVRAM_OFFSET 0x580 |
|
+struct ath9k_caldata { |
+ unsigned int slot; |
+ u32 caldata_offset; |
+}; |
+ |
/* |
* board definition |
*/ |
@@ -32,6 +38,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; |