Root/target/linux/brcm47xx/patches-3.6/193-MIPS-BCM47xx-read-out-full-board-data.patch

1--- a/arch/mips/bcm47xx/sprom.c
2+++ b/arch/mips/bcm47xx/sprom.c
3@@ -164,10 +164,6 @@ static void nvram_read_alpha2(const char
4 static void bcm47xx_fill_sprom_r1234589(struct ssb_sprom *sprom,
5                     const char *prefix)
6 {
7- nvram_read_u16(prefix, NULL, "boardrev", &sprom->board_rev, 0);
8- if (!sprom->board_rev)
9- nvram_read_u16(NULL, NULL, "boardrev", &sprom->board_rev, 0);
10- nvram_read_u16(prefix, NULL, "boardnum", &sprom->board_num, 0);
11     nvram_read_u8(prefix, NULL, "ledbh0", &sprom->gpio0, 0xff);
12     nvram_read_u8(prefix, NULL, "ledbh1", &sprom->gpio1, 0xff);
13     nvram_read_u8(prefix, NULL, "ledbh2", &sprom->gpio2, 0xff);
14@@ -214,13 +210,6 @@ static void bcm47xx_fill_sprom_r2389(str
15     nvram_read_u8(prefix, NULL, "pa1himaxpwr", &sprom->maxpwr_ah, 0);
16 }
17 
18-static void bcm47xx_fill_sprom_r2(struct ssb_sprom *sprom, const char *prefix)
19-{
20- nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo,
21- &sprom->boardflags_hi);
22- nvram_read_u16(prefix, NULL, "boardtype", &sprom->board_type, 0);
23-}
24-
25 static void bcm47xx_fill_sprom_r389(struct ssb_sprom *sprom, const char *prefix)
26 {
27     nvram_read_u8(prefix, NULL, "bxa2g", &sprom->bxa2g, 0);
28@@ -241,9 +230,6 @@ static void bcm47xx_fill_sprom_r389(stru
29 
30 static void bcm47xx_fill_sprom_r3(struct ssb_sprom *sprom, const char *prefix)
31 {
32- nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo,
33- &sprom->boardflags_hi);
34- nvram_read_u16(prefix, NULL, "boardtype", &sprom->board_type, 0);
35     nvram_read_u8(prefix, NULL, "regrev", &sprom->regrev, 0);
36     nvram_read_leddc(prefix, "leddc", &sprom->leddc_on_time,
37              &sprom->leddc_off_time);
38@@ -252,11 +238,6 @@ static void bcm47xx_fill_sprom_r3(struct
39 static void bcm47xx_fill_sprom_r4589(struct ssb_sprom *sprom,
40                      const char *prefix)
41 {
42- nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo,
43- &sprom->boardflags_hi);
44- nvram_read_u32_2(prefix, "boardflags2", &sprom->boardflags2_lo,
45- &sprom->boardflags2_hi);
46- nvram_read_u16(prefix, NULL, "boardtype", &sprom->board_type, 0);
47     nvram_read_u8(prefix, NULL, "regrev", &sprom->regrev, 0);
48     nvram_read_s8(prefix, NULL, "ag2", &sprom->antenna_gain.a2, 0);
49     nvram_read_s8(prefix, NULL, "ag3", &sprom->antenna_gain.a3, 0);
50@@ -555,9 +536,23 @@ void bcm47xx_fill_sprom_ethernet(struct
51     nvram_read_macaddr(prefix, "il0macaddr", &sprom->il0mac);
52 }
53 
54+static void bcm47xx_fill_board_data(struct ssb_sprom *sprom, const char *prefix)
55+{
56+ nvram_read_u16(prefix, NULL, "boardrev", &sprom->board_rev, 0);
57+ if (!sprom->board_rev)
58+ nvram_read_u16(NULL, NULL, "boardrev", &sprom->board_rev, 0);
59+ nvram_read_u16(prefix, NULL, "boardnum", &sprom->board_num, 0);
60+ nvram_read_u16(prefix, NULL, "boardtype", &sprom->board_type, 0);
61+ nvram_read_u32_2(prefix, "boardflags", &sprom->boardflags_lo,
62+ &sprom->boardflags_hi);
63+ nvram_read_u32_2(prefix, "boardflags2", &sprom->boardflags2_lo,
64+ &sprom->boardflags2_hi);
65+}
66+
67 void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix)
68 {
69     bcm47xx_fill_sprom_ethernet(sprom, prefix);
70+ bcm47xx_fill_board_data(sprom, prefix);
71 
72     nvram_read_u8(prefix, NULL, "sromrev", &sprom->revision, 0);
73 
74@@ -571,7 +566,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom
75         bcm47xx_fill_sprom_r1234589(sprom, prefix);
76         bcm47xx_fill_sprom_r12389(sprom, prefix);
77         bcm47xx_fill_sprom_r2389(sprom, prefix);
78- bcm47xx_fill_sprom_r2(sprom, prefix);
79         break;
80     case 3:
81         bcm47xx_fill_sprom_r1234589(sprom, prefix);
82

Archive Download this file



interactive