staging: brcm80211: remove iovar IOV_BLOCKSIZE in brcmfmac
authorFranky Lin <frankyl@broadcom.com>
Fri, 12 Aug 2011 13:34:49 +0000 (15:34 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 20:06:38 +0000 (13:06 -0700)
Iovar IOV_BLOCKSIZE code is not actually setting the sdio
function's block size. Use cur_blksize provided by mmc core where
necessary.

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc.c
drivers/staging/brcm80211/brcmfmac/dhd_sdio.c
drivers/staging/brcm80211/brcmfmac/sdio_host.h

index 1256847ae91c667aa33093ac9ed1f26ac07e3ec5..a2fba4f0904d4700d02b711983e6a3ab0b478107 100644 (file)
@@ -169,14 +169,12 @@ struct sdioh_info *brcmf_sdioh_attach(void *bar0)
        }
 
        sd->num_funcs = 2;
-       sd->client_block_size[0] = 64;
 
        gInstance->sd = sd;
 
        /* Claim host controller */
        sdio_claim_host(gInstance->func[1]);
 
-       sd->client_block_size[1] = 64;
        err_ret = sdio_set_block_size(gInstance->func[1], 64);
        if (err_ret)
                BRCMF_ERROR(("%s: Failed to set F1 blocksize\n", __func__));
@@ -188,7 +186,6 @@ struct sdioh_info *brcmf_sdioh_attach(void *bar0)
                /* Claim host controller F2 */
                sdio_claim_host(gInstance->func[2]);
 
-               sd->client_block_size[2] = sd_f2_blocksize;
                err_ret =
                    sdio_set_block_size(gInstance->func[2], sd_f2_blocksize);
                if (err_ret)
@@ -273,7 +270,6 @@ extern int brcmf_sdioh_interrupt_deregister(struct sdioh_info *sd)
 /* IOVar table */
 enum {
        IOV_MSGLEVEL = 1,
-       IOV_BLOCKSIZE,
        IOV_NUMINTS,
        IOV_DEVREG,
        IOV_HCIREGS,
@@ -281,8 +277,6 @@ enum {
 };
 
 const struct brcmu_iovar sdioh_iovars[] = {
-       {"sd_blocksize", IOV_BLOCKSIZE, 0, IOVT_UINT32, 0},/* ((fn << 16) |
-                                                                size) */
        {"sd_numints", IOV_NUMINTS, 0, IOVT_UINT32, 0},
        {"sd_devreg", IOV_DEVREG, 0, IOVT_BUFFER, sizeof(struct brcmf_sdreg)}
        ,
@@ -346,52 +340,6 @@ brcmf_sdioh_iovar_op(struct sdioh_info *si, const char *name,
 
        actionid = set ? IOV_SVAL(vi->varid) : IOV_GVAL(vi->varid);
        switch (actionid) {
-       case IOV_GVAL(IOV_BLOCKSIZE):
-               if ((u32) int_val > si->num_funcs) {
-                       bcmerror = -EINVAL;
-                       break;
-               }
-               int_val = (s32) si->client_block_size[int_val];
-               memcpy(arg, &int_val, val_size);
-               break;
-
-       case IOV_SVAL(IOV_BLOCKSIZE):
-               {
-                       uint func = ((u32) int_val >> 16);
-                       uint blksize = (u16) int_val;
-                       uint maxsize;
-
-                       if (func > si->num_funcs) {
-                               bcmerror = -EINVAL;
-                               break;
-                       }
-
-                       switch (func) {
-                       case 0:
-                               maxsize = 32;
-                               break;
-                       case 1:
-                               maxsize = 64;
-                               break;
-                       case 2:
-                               maxsize = 512;
-                               break;
-                       default:
-                               maxsize = 0;
-                       }
-                       if (blksize > maxsize) {
-                               bcmerror = -EINVAL;
-                               break;
-                       }
-                       if (!blksize)
-                               blksize = maxsize;
-
-                       /* Now set it */
-                       si->client_block_size[func] = blksize;
-
-                       break;
-               }
-
        case IOV_GVAL(IOV_RXCHAIN):
                int_val = false;
                memcpy(arg, &int_val, val_size);
index 8bea86595d609a16bc60939e2131996059a44486..65b245c1cb3f337b636b57a9f9501ac218977cb1 100644 (file)
@@ -3168,24 +3168,6 @@ brcmf_sdbrcm_bus_iovar_op(struct brcmf_pub *drvr, const char *name,
                bcmerror = brcmf_sdcard_iovar_op(bus->sdiodev, name, params,
                                                 plen, arg, len, set);
 
-               /* Similar check for blocksize change */
-               if (set && strcmp(name, "sd_blocksize") == 0) {
-                       s32 fnum = 2;
-                       if (brcmf_sdcard_iovar_op
-                           (bus->sdiodev, "sd_blocksize", &fnum, sizeof(s32),
-                            &bus->blocksize, sizeof(s32),
-                            false) != 0) {
-                               bus->blocksize = 0;
-                               BRCMF_ERROR(("%s: fail on %s get\n", __func__,
-                                            "sd_blocksize"));
-                       } else {
-                               BRCMF_INFO(("%s: noted sd_blocksize update,"
-                                           " value now %d\n", __func__,
-                                           bus->blocksize));
-                       }
-               }
-               bus->roundup = min(max_roundup, bus->blocksize);
-
                if (bus->idletime == BRCMF_IDLE_IMMEDIATE &&
                    !bus->dpc_sched) {
                        bus->activity = false;
@@ -5679,8 +5661,6 @@ fail:
 
 static bool brcmf_sdbrcm_probe_init(struct brcmf_bus *bus)
 {
-       s32 fnum;
-
        BRCMF_TRACE(("%s: Enter\n", __func__));
 
 #ifdef SDTEST
@@ -5705,16 +5685,7 @@ static bool brcmf_sdbrcm_probe_init(struct brcmf_bus *bus)
        bus->idleclock = BRCMF_IDLE_ACTIVE;
 
        /* Query the F2 block size, set roundup accordingly */
-       fnum = 2;
-       if (brcmf_sdcard_iovar_op(bus->sdiodev, "sd_blocksize", &fnum,
-                                 sizeof(s32), &bus->blocksize,
-                                 sizeof(s32), false) != 0) {
-               bus->blocksize = 0;
-               BRCMF_ERROR(("%s: fail on %s get\n", __func__, "sd_blocksize"));
-       } else {
-               BRCMF_INFO(("%s: Initial value for %s is %d\n",
-                           __func__, "sd_blocksize", bus->blocksize));
-       }
+       bus->blocksize = bus->sdiodev->func2->cur_blksize;
        bus->roundup = min(max_roundup, bus->blocksize);
 
        /* Query if bus module supports packet chaining,
index c5a68c0382afe1dc01e33c23034dd81a9bbad2de..c61a18679f6bddb34205bb399c3e06aa03b7348f 100644 (file)
@@ -129,7 +129,6 @@ struct sdioh_info {
        int intrcount;          /* Client interrupts */
        bool sd_blockmode;      /* sd_blockmode == false => 64 Byte Cmd 53s. */
        /*  Must be on for sd_multiblock to be effective */
-       int client_block_size[SDIOD_MAX_IOFUNCS];       /* Blocksize */
        u8 num_funcs;   /* Supported funcs on client */
        u32 com_cis_ptr;
        u32 func_cis_ptr[SDIOD_MAX_IOFUNCS];