diff options
-rw-r--r-- | drivers/net/wireless/wl12xx/main.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c index b9a3fe497274..aa1c0f3ebeeb 100644 --- a/drivers/net/wireless/wl12xx/main.c +++ b/drivers/net/wireless/wl12xx/main.c | |||
@@ -1313,7 +1313,16 @@ static int wl1271_chip_wakeup(struct wl1271 *wl) | |||
1313 | /* 0. read chip id from CHIP_ID */ | 1313 | /* 0. read chip id from CHIP_ID */ |
1314 | wl->chip.id = wl1271_read32(wl, CHIP_ID_B); | 1314 | wl->chip.id = wl1271_read32(wl, CHIP_ID_B); |
1315 | 1315 | ||
1316 | /* 1. check if chip id is valid */ | 1316 | /* |
1317 | * For wl127x based devices we could use the default block | ||
1318 | * size (512 bytes), but due to a bug in the sdio driver, we | ||
1319 | * need to set it explicitly after the chip is powered on. To | ||
1320 | * simplify the code and since the performance impact is | ||
1321 | * negligible, we use the same block size for all different | ||
1322 | * chip types. | ||
1323 | */ | ||
1324 | if (!wl1271_set_block_size(wl)) | ||
1325 | wl->quirks |= WL12XX_QUIRK_NO_BLOCKSIZE_ALIGNMENT; | ||
1317 | 1326 | ||
1318 | switch (wl->chip.id) { | 1327 | switch (wl->chip.id) { |
1319 | case CHIP_ID_1271_PG10: | 1328 | case CHIP_ID_1271_PG10: |
@@ -1343,9 +1352,6 @@ static int wl1271_chip_wakeup(struct wl1271 *wl) | |||
1343 | ret = wl1271_setup(wl); | 1352 | ret = wl1271_setup(wl); |
1344 | if (ret < 0) | 1353 | if (ret < 0) |
1345 | goto out; | 1354 | goto out; |
1346 | |||
1347 | if (!wl1271_set_block_size(wl)) | ||
1348 | wl->quirks |= WL12XX_QUIRK_NO_BLOCKSIZE_ALIGNMENT; | ||
1349 | break; | 1355 | break; |
1350 | case CHIP_ID_1283_PG10: | 1356 | case CHIP_ID_1283_PG10: |
1351 | default: | 1357 | default: |