Commit c9ed29ac authored by Franky Lin's avatar Franky Lin Committed by Greg Kroah-Hartman

staging: brcm80211: remove iovar IOV_BLOCKSIZE in brcmfmac

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: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 297658de
......@@ -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);
......
......@@ -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 @@ static bool brcmf_sdbrcm_probe_malloc(struct brcmf_bus *bus)
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,
......
......@@ -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];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment