/branches/18.06.1/target/linux/brcm63xx/patches-4.14/357-MIPS-BCM63XX-use-platform-data-for-the-sprom.patch |
@@ -0,0 +1,95 @@ |
From 9912a8b3c240a9b0af01ff496b7e8ed9e4cc5b82 Mon Sep 17 00:00:00 2001 |
From: Jonas Gorski <jogo@openwrt.org> |
Date: Tue, 29 Jul 2014 21:43:49 +0200 |
Subject: [PATCH 02/10] MIPS: BCM63XX: use platform data for the sprom |
|
Similar to ethernet setup, use a platform data struct for passing |
the mac. This eliminates the requirement to allocate an array on |
stack for the mac passed. |
|
Signed-off-by: Jonas Gorski <jogo@openwrt.org> |
--- |
arch/mips/bcm63xx/boards/board_common.c | 6 ++---- |
arch/mips/bcm63xx/sprom.c | 8 ++++---- |
arch/mips/include/asm/mach-bcm63xx/bcm63xx_fallback_sprom.h | 8 +++++++- |
arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 4 ++++ |
4 files changed, 17 insertions(+), 9 deletions(-) |
|
--- a/arch/mips/bcm63xx/boards/board_common.c |
+++ b/arch/mips/bcm63xx/boards/board_common.c |
@@ -141,7 +141,6 @@ static struct platform_device bcm63xx_gp |
int __init board_register_devices(void) |
{ |
int usbh_ports = 0; |
- u8 mac[ETH_ALEN]; |
|
if (board.has_uart0) |
bcm63xx_uart_register(0); |
@@ -184,8 +183,8 @@ int __init board_register_devices(void) |
* do this after registering enet devices |
*/ |
|
- if (board_get_mac_address(mac) || |
- bcm63xx_register_fallback_sprom(mac)) |
+ if (board_get_mac_address(board.fallback_sprom.mac_addr) || |
+ bcm63xx_register_fallback_sprom(&board.fallback_sprom)) |
pr_err(PFX "failed to register fallback SPROM\n"); |
|
bcm63xx_spi_register(); |
--- a/arch/mips/bcm63xx/sprom.c |
+++ b/arch/mips/bcm63xx/sprom.c |
@@ -55,14 +55,14 @@ int bcm63xx_get_fallback_sprom(struct ss |
} |
#endif |
|
-int __init bcm63xx_register_fallback_sprom(u8 *mac) |
+int __init bcm63xx_register_fallback_sprom(struct fallback_sprom_data *data) |
{ |
int ret = 0; |
|
#ifdef CONFIG_SSB_PCIHOST |
- memcpy(bcm63xx_sprom.il0mac, mac, ETH_ALEN); |
- memcpy(bcm63xx_sprom.et0mac, mac, ETH_ALEN); |
- memcpy(bcm63xx_sprom.et1mac, mac, ETH_ALEN); |
+ memcpy(bcm63xx_sprom.il0mac, data->mac_addr, ETH_ALEN); |
+ memcpy(bcm63xx_sprom.et0mac, data->mac_addr, ETH_ALEN); |
+ memcpy(bcm63xx_sprom.et1mac, data->mac_addr, ETH_ALEN); |
|
ret = ssb_arch_register_fallback_sprom(&bcm63xx_get_fallback_sprom); |
#endif |
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_fallback_sprom.h |
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_fallback_sprom.h |
@@ -1,6 +1,12 @@ |
#ifndef __BCM63XX_FALLBACK_SPROM |
#define __BCM63XX_FALLBACK_SPROM |
|
-int bcm63xx_register_fallback_sprom(u8 *mac); |
+#include <linux/if_ether.h> |
+ |
+struct fallback_sprom_data { |
+ u8 mac_addr[ETH_ALEN]; |
+}; |
+ |
+int bcm63xx_register_fallback_sprom(struct fallback_sprom_data *data); |
|
#endif |
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h |
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h |
@@ -7,6 +7,7 @@ |
#include <linux/leds.h> |
#include <bcm63xx_dev_enet.h> |
#include <bcm63xx_dev_usb_usbd.h> |
+#include <bcm63xx_fallback_sprom.h> |
|
/* |
* flash mapping |
@@ -50,6 +51,9 @@ struct board_info { |
|
/* External PHY reset GPIO flags from gpio.h */ |
unsigned long ephy_reset_gpio_flags; |
+ |
+ /* fallback sprom config */ |
+ struct fallback_sprom_data fallback_sprom; |
}; |
|
#endif /* ! BOARD_BCM963XX_H_ */ |