register uart0 on DWV-S0 boards (#10409)
[openwrt/openwrt.git] / target / linux / brcm63xx / patches-2.6.39 / 500-ssb-add-callback-for-sprom.patch
1 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
2 +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
3 @@ -2133,6 +2133,17 @@ static struct ssb_sprom bcm63xx_sprom =
4 .boardflags_lo = 0x2848,
5 .boardflags_hi = 0x0000,
6 };
7 +
8 +int bcm63xx_get_fallback_sprom(struct ssb_bus *bus, struct ssb_sprom *out)
9 +{
10 + if (bus->bustype == SSB_BUSTYPE_PCI) {
11 + memcpy(out, &bcm63xx_sprom, sizeof(struct ssb_sprom));
12 + return 0;
13 + } else {
14 + printk(KERN_ERR PFX "unable to fill SPROM for given bustype.\n");
15 + return -EINVAL;
16 + }
17 +}
18 #endif
19
20 /*
21 @@ -2402,8 +2413,9 @@ int __init board_register_devices(void)
22 if (!board_get_mac_address(bcm63xx_sprom.il0mac)) {
23 memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
24 memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
25 - if (ssb_arch_set_fallback_sprom(&bcm63xx_sprom) < 0)
26 - printk(KERN_ERR "failed to register fallback SPROM\n");
27 + if (ssb_arch_register_fallback_sprom(
28 + &bcm63xx_get_fallback_sprom) < 0)
29 + printk(KERN_ERR PFX "failed to register fallback SPROM\n");
30 }
31 #endif
32