From 9912a8b3c240a9b0af01ff496b7e8ed9e4cc5b82 Mon Sep 17 00:00:00 2001 From: Jonas Gorski 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 --- 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 @@ -142,7 +142,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); @@ -188,8 +187,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 + +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 #include #include +#include /* * flash mapping @@ -55,6 +56,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; + /* Additional platform devices */ struct platform_device **devs; unsigned int num_devs;