aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bcma/sprom.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/bcma/sprom.c')
-rw-r--r--drivers/bcma/sprom.c7
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)