Hi all, Today's linux-next merge of the net-next tree got a conflict in arch/mips/bcm47xx/setup.c between commits dc8db0fd9f9f ("MIPS: BCM47XX: Prepare support for LEDs"), db780310ed48 ("MIPS: BCM47XX: Prepare support for GPIO buttons") and 7fb942c59696 ("MIPS: BCM47XX: fix position of cpu_wait disabling") from the mips tree and commit b04138b33520 ("b44: use fixed PHY device if we do not find any") from the net-next tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc arch/mips/bcm47xx/setup.c index 12d77e9c2cb4,9057728ac56b..000000000000 --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c @@@ -26,10 -26,11 +26,13 @@@ * 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "bcm47xx_private.h" + #include <linux/export.h> #include <linux/types.h> + #include <linux/ethtool.h> + #include <linux/phy.h> + #include <linux/phy_fixed.h> #include <linux/ssb/ssb.h> #include <linux/ssb/ssb_embedded.h> #include <linux/bcma/bcma_soc.h> @@@ -229,34 -226,14 +232,40 @@@ void __init plat_mem_setup(void _machine_halt = bcm47xx_machine_halt; pm_power_off = bcm47xx_machine_halt; bcm47xx_board_detect(); + mips_set_machine_name(bcm47xx_board_get_name()); } +static int __init bcm47xx_cpu_fixes(void) +{ + switch (bcm47xx_bus_type) { +#ifdef CONFIG_BCM47XX_SSB + case BCM47XX_BUS_TYPE_SSB: + /* Nothing to do */ + break; +#endif +#ifdef CONFIG_BCM47XX_BCMA + case BCM47XX_BUS_TYPE_BCMA: + /* The BCM4706 has a problem with the CPU wait instruction. + * When r4k_wait or r4k_wait_irqoff is used will just hang and + * not return from a msleep(). Removing the cpu_wait + * functionality is a workaround for this problem. The BCM4716 + * does not have this problem. + */ + if (bcm47xx_bus.bcma.bus.chipinfo.id == BCMA_CHIP_ID_BCM4706) + cpu_wait = NULL; + break; +#endif + } + return 0; +} +arch_initcall(bcm47xx_cpu_fixes); + + static struct fixed_phy_status bcm47xx_fixed_phy_status __initdata = { + .link = 1, + .speed = SPEED_100, + .duplex = DUPLEX_FULL, + }; + static int __init bcm47xx_register_bus_complete(void) { switch (bcm47xx_bus_type) { @@@ -271,9 -248,7 +280,10 @@@ break; #endif } + bcm47xx_buttons_register(); + bcm47xx_leds_register(); + + fixed_phy_add(PHY_POLL, 0, &bcm47xx_fixed_phy_status); return 0; } device_initcall(bcm47xx_register_bus_complete);
Attachment:
pgpwzrw7ZLkau.pgp
Description: PGP signature