Commit 62a7573e authored by Benzi Zbit's avatar Benzi Zbit Committed by Pierre Ossman

sdio: fix the use of hard coded timeout value.

This adds reading and using of enable_timeout from the CIS
Signed-off-by: default avatarBenzi Zbit <benzi.zbit@intel.com>
Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
parent c71f6512
...@@ -129,6 +129,12 @@ static int cistpl_funce_func(struct sdio_func *func, ...@@ -129,6 +129,12 @@ static int cistpl_funce_func(struct sdio_func *func,
/* TPLFE_MAX_BLK_SIZE */ /* TPLFE_MAX_BLK_SIZE */
func->max_blksize = buf[12] | (buf[13] << 8); func->max_blksize = buf[12] | (buf[13] << 8);
/* TPLFE_ENABLE_TIMEOUT_VAL, present in ver 1.1 and above */
if (vsn > SDIO_SDIO_REV_1_00)
func->enable_timeout = (buf[28] | (buf[29] << 8)) * 10;
else
func->enable_timeout = jiffies_to_msecs(HZ);
return 0; return 0;
} }
......
...@@ -76,11 +76,7 @@ int sdio_enable_func(struct sdio_func *func) ...@@ -76,11 +76,7 @@ int sdio_enable_func(struct sdio_func *func)
if (ret) if (ret)
goto err; goto err;
/* timeout = jiffies + msecs_to_jiffies(func->enable_timeout);
* FIXME: This should timeout based on information in the CIS,
* but we don't have card to parse that yet.
*/
timeout = jiffies + HZ;
while (1) { while (1) {
ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IORx, 0, &reg); ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IORx, 0, &reg);
......
...@@ -46,6 +46,8 @@ struct sdio_func { ...@@ -46,6 +46,8 @@ struct sdio_func {
unsigned max_blksize; /* maximum block size */ unsigned max_blksize; /* maximum block size */
unsigned cur_blksize; /* current block size */ unsigned cur_blksize; /* current block size */
unsigned enable_timeout; /* max enable timeout in msec */
unsigned int state; /* function state */ unsigned int state; /* function state */
#define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */ #define SDIO_STATE_PRESENT (1<<0) /* present in sysfs */
......
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