diff options
Diffstat (limited to 'drivers/bcma/sprom.c')
-rw-r--r-- | drivers/bcma/sprom.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c index e35134f724f6..ca7752510d5b 100644 --- a/drivers/bcma/sprom.c +++ b/drivers/bcma/sprom.c | |||
@@ -250,6 +250,7 @@ int bcma_sprom_get(struct bcma_bus *bus) | |||
250 | { | 250 | { |
251 | u16 offset; | 251 | u16 offset; |
252 | u16 *sprom; | 252 | u16 *sprom; |
253 | u32 sromctrl; | ||
253 | int err = 0; | 254 | int err = 0; |
254 | 255 | ||
255 | if (!bus->drv_cc.core) | 256 | if (!bus->drv_cc.core) |
@@ -258,6 +259,12 @@ int bcma_sprom_get(struct bcma_bus *bus) | |||
258 | if (!(bus->drv_cc.capabilities & BCMA_CC_CAP_SPROM)) | 259 | if (!(bus->drv_cc.capabilities & BCMA_CC_CAP_SPROM)) |
259 | return -ENOENT; | 260 | return -ENOENT; |
260 | 261 | ||
262 | if (bus->drv_cc.core->id.rev >= 32) { | ||
263 | sromctrl = bcma_read32(bus->drv_cc.core, BCMA_CC_SROM_CONTROL); | ||
264 | if (!(sromctrl & BCMA_CC_SROM_CONTROL_PRESENT)) | ||
265 | return -ENOENT; | ||
266 | } | ||
267 | |||
261 | sprom = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16), | 268 | sprom = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16), |
262 | GFP_KERNEL); | 269 | GFP_KERNEL); |
263 | if (!sprom) | 270 | if (!sprom) |