Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
[linux-2.6-microblaze.git] / drivers / net / wireless / broadcom / brcm80211 / brcmfmac / bcmsdh.c
index a1fdb61..46346cb 100644 (file)
@@ -43,7 +43,8 @@
 
 #define SDIO_FUNC1_BLOCKSIZE           64
 #define SDIO_FUNC2_BLOCKSIZE           512
-#define SDIO_4359_FUNC2_BLOCKSIZE      256
+#define SDIO_4373_FUNC2_BLOCKSIZE      256
+#define SDIO_435X_FUNC2_BLOCKSIZE      256
 /* Maximum milliseconds to wait for F2 to come up */
 #define SDIO_WAIT_F2RDY        3000
 
@@ -910,13 +911,28 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
                sdio_release_host(sdiodev->func1);
                goto out;
        }
-       if (sdiodev->func2->device == SDIO_DEVICE_ID_BROADCOM_4359)
-               f2_blksz = SDIO_4359_FUNC2_BLOCKSIZE;
+       switch (sdiodev->func2->device) {
+       case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373:
+               f2_blksz = SDIO_4373_FUNC2_BLOCKSIZE;
+               break;
+       case SDIO_DEVICE_ID_BROADCOM_4359:
+               /* fallthrough */
+       case SDIO_DEVICE_ID_BROADCOM_4354:
+               /* fallthrough */
+       case SDIO_DEVICE_ID_BROADCOM_4356:
+               f2_blksz = SDIO_435X_FUNC2_BLOCKSIZE;
+               break;
+       default:
+               break;
+       }
+
        ret = sdio_set_block_size(sdiodev->func2, f2_blksz);
        if (ret) {
                brcmf_err("Failed to set F2 blocksize\n");
                sdio_release_host(sdiodev->func1);
                goto out;
+       } else {
+               brcmf_dbg(SDIO, "set F2 blocksize to %d\n", f2_blksz);
        }
 
        /* increase F2 timeout */
@@ -961,7 +977,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43340),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43341),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43362),
-       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43364),
+       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43364),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4335_4339),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4339),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43430),