Skip to content

Commit

Permalink
wimax/i2400m: sdio: set the block size before enabling the function
Browse files Browse the repository at this point in the history
From a fix by Cindy H Kao:

  Block size has to be set before sending IOE enable because the
  firmware reads the block size register before it reads IOE register.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
  • Loading branch information
Inaky Perez-Gonzalez committed May 29, 2009
1 parent 52a8d96 commit a0a4c4c
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions drivers/net/wimax/i2400m/sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -409,19 +409,19 @@ int i2400ms_probe(struct sdio_func *func,
i2400m->bus_fw_names = i2400ms_bus_fw_names;
i2400m->bus_bm_mac_addr_impaired = 1;

result = i2400ms_enable_function(i2400ms->func);
if (result < 0) {
dev_err(dev, "Cannot enable SDIO function: %d\n", result);
goto error_func_enable;
}

sdio_claim_host(func);
result = sdio_set_block_size(func, I2400MS_BLK_SIZE);
sdio_release_host(func);
if (result < 0) {
dev_err(dev, "Failed to set block size: %d\n", result);
goto error_set_blk_size;
}
sdio_release_host(func);

result = i2400ms_enable_function(i2400ms->func);
if (result < 0) {
dev_err(dev, "Cannot enable SDIO function: %d\n", result);
goto error_func_enable;
}

result = i2400m_setup(i2400m, I2400M_BRI_NO_REBOOT);
if (result < 0) {
Expand All @@ -440,12 +440,12 @@ int i2400ms_probe(struct sdio_func *func,
error_debugfs_add:
i2400m_release(i2400m);
error_setup:
sdio_set_drvdata(func, NULL);
sdio_claim_host(func);
error_set_blk_size:
sdio_disable_func(func);
sdio_release_host(func);
error_func_enable:
error_set_blk_size:
sdio_set_drvdata(func, NULL);
free_netdev(net_dev);
error_alloc_netdev:
return result;
Expand Down

0 comments on commit a0a4c4c

Please sign in to comment.