1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- 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
- @@ -157,7 +157,6 @@ int __init board_register_devices(void)
- int button_count = 0;
- int led_count = 0;
- int usbh_ports = 0;
- - u8 mac[ETH_ALEN];
-
- if (board.has_uart0)
- bcm63xx_uart_register(0);
- @@ -203,8 +202,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
- @@ -8,6 +8,7 @@
- #include <bcm63xx_dev_enet.h>
- #include <bcm63xx_dev_usb_usbd.h>
- #include <bcm63xx_dev_dsp.h>
- +#include <bcm63xx_fallback_sprom.h>
-
- /*
- * flash mapping
- @@ -59,6 +60,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;
|