diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2011-12-12 15:33:12 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-12-13 15:47:41 -0500 |
commit | daadc6b3bd563128de67bafa1c0fc38508d5760e (patch) | |
tree | 7874b4c30fb08476b5b3e9a32ab1c31fdde21665 | |
parent | 53d69c399abf3b382c1e737ff9402d31ca5a7a51 (diff) |
bcma: extract revision and TX power IDs from SPROM
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/bcma/sprom.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c index b6c474bbd572..6f230fb087c5 100644 --- a/drivers/bcma/sprom.c +++ b/drivers/bcma/sprom.c | |||
@@ -129,6 +129,9 @@ static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom) | |||
129 | u16 v; | 129 | u16 v; |
130 | int i; | 130 | int i; |
131 | 131 | ||
132 | bus->sprom.revision = sprom[SSB_SPROMSIZE_WORDS_R4 - 1] & | ||
133 | SSB_SPROM_REVISION_REV; | ||
134 | |||
132 | for (i = 0; i < 3; i++) { | 135 | for (i = 0; i < 3; i++) { |
133 | v = sprom[SPOFF(SSB_SPROM8_IL0MAC) + i]; | 136 | v = sprom[SPOFF(SSB_SPROM8_IL0MAC) + i]; |
134 | *(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v); | 137 | *(((__be16 *)bus->sprom.il0mac) + i) = cpu_to_be16(v); |
@@ -136,6 +139,42 @@ static void bcma_sprom_extract_r8(struct bcma_bus *bus, const u16 *sprom) | |||
136 | 139 | ||
137 | bus->sprom.board_rev = sprom[SPOFF(SSB_SPROM8_BOARDREV)]; | 140 | bus->sprom.board_rev = sprom[SPOFF(SSB_SPROM8_BOARDREV)]; |
138 | 141 | ||
142 | bus->sprom.txpid2g[0] = (sprom[SPOFF(SSB_SPROM4_TXPID2G01)] & | ||
143 | SSB_SPROM4_TXPID2G0) >> SSB_SPROM4_TXPID2G0_SHIFT; | ||
144 | bus->sprom.txpid2g[1] = (sprom[SPOFF(SSB_SPROM4_TXPID2G01)] & | ||
145 | SSB_SPROM4_TXPID2G1) >> SSB_SPROM4_TXPID2G1_SHIFT; | ||
146 | bus->sprom.txpid2g[2] = (sprom[SPOFF(SSB_SPROM4_TXPID2G23)] & | ||
147 | SSB_SPROM4_TXPID2G2) >> SSB_SPROM4_TXPID2G2_SHIFT; | ||
148 | bus->sprom.txpid2g[3] = (sprom[SPOFF(SSB_SPROM4_TXPID2G23)] & | ||
149 | SSB_SPROM4_TXPID2G3) >> SSB_SPROM4_TXPID2G3_SHIFT; | ||
150 | |||
151 | bus->sprom.txpid5gl[0] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL01)] & | ||
152 | SSB_SPROM4_TXPID5GL0) >> SSB_SPROM4_TXPID5GL0_SHIFT; | ||
153 | bus->sprom.txpid5gl[1] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL01)] & | ||
154 | SSB_SPROM4_TXPID5GL1) >> SSB_SPROM4_TXPID5GL1_SHIFT; | ||
155 | bus->sprom.txpid5gl[2] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL23)] & | ||
156 | SSB_SPROM4_TXPID5GL2) >> SSB_SPROM4_TXPID5GL2_SHIFT; | ||
157 | bus->sprom.txpid5gl[3] = (sprom[SPOFF(SSB_SPROM4_TXPID5GL23)] & | ||
158 | SSB_SPROM4_TXPID5GL3) >> SSB_SPROM4_TXPID5GL3_SHIFT; | ||
159 | |||
160 | bus->sprom.txpid5g[0] = (sprom[SPOFF(SSB_SPROM4_TXPID5G01)] & | ||
161 | SSB_SPROM4_TXPID5G0) >> SSB_SPROM4_TXPID5G0_SHIFT; | ||
162 | bus->sprom.txpid5g[1] = (sprom[SPOFF(SSB_SPROM4_TXPID5G01)] & | ||
163 | SSB_SPROM4_TXPID5G1) >> SSB_SPROM4_TXPID5G1_SHIFT; | ||
164 | bus->sprom.txpid5g[2] = (sprom[SPOFF(SSB_SPROM4_TXPID5G23)] & | ||
165 | SSB_SPROM4_TXPID5G2) >> SSB_SPROM4_TXPID5G2_SHIFT; | ||
166 | bus->sprom.txpid5g[3] = (sprom[SPOFF(SSB_SPROM4_TXPID5G23)] & | ||
167 | SSB_SPROM4_TXPID5G3) >> SSB_SPROM4_TXPID5G3_SHIFT; | ||
168 | |||
169 | bus->sprom.txpid5gh[0] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH01)] & | ||
170 | SSB_SPROM4_TXPID5GH0) >> SSB_SPROM4_TXPID5GH0_SHIFT; | ||
171 | bus->sprom.txpid5gh[1] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH01)] & | ||
172 | SSB_SPROM4_TXPID5GH1) >> SSB_SPROM4_TXPID5GH1_SHIFT; | ||
173 | bus->sprom.txpid5gh[2] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH23)] & | ||
174 | SSB_SPROM4_TXPID5GH2) >> SSB_SPROM4_TXPID5GH2_SHIFT; | ||
175 | bus->sprom.txpid5gh[3] = (sprom[SPOFF(SSB_SPROM4_TXPID5GH23)] & | ||
176 | SSB_SPROM4_TXPID5GH3) >> SSB_SPROM4_TXPID5GH3_SHIFT; | ||
177 | |||
139 | bus->sprom.boardflags_lo = sprom[SPOFF(SSB_SPROM8_BFLLO)]; | 178 | bus->sprom.boardflags_lo = sprom[SPOFF(SSB_SPROM8_BFLLO)]; |
140 | bus->sprom.boardflags_hi = sprom[SPOFF(SSB_SPROM8_BFLHI)]; | 179 | bus->sprom.boardflags_hi = sprom[SPOFF(SSB_SPROM8_BFLHI)]; |
141 | bus->sprom.boardflags2_lo = sprom[SPOFF(SSB_SPROM8_BFL2LO)]; | 180 | bus->sprom.boardflags2_lo = sprom[SPOFF(SSB_SPROM8_BFL2LO)]; |