From bd031b661d60689ea41057ce8889e2d3cf8ae77e Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Tue, 5 Jan 2010 03:43:00 +0100 Subject: [PATCH] kernel: sdio: Not all cards claiming to be v1.10 have a enable_timeout_val field For example the ks7010 has not. --- ...860-sdio-v1_10-no-enable-timeout-val.patch | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 target/linux/generic-2.6/patches-2.6.31/860-sdio-v1_10-no-enable-timeout-val.patch diff --git a/target/linux/generic-2.6/patches-2.6.31/860-sdio-v1_10-no-enable-timeout-val.patch b/target/linux/generic-2.6/patches-2.6.31/860-sdio-v1_10-no-enable-timeout-val.patch new file mode 100644 index 000000000..eb9df0eea --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.31/860-sdio-v1_10-no-enable-timeout-val.patch @@ -0,0 +1,19 @@ +--- drivers/mmc/core/sdio_cis.c 2010-01-05 03:36:51.000000000 +0100 ++++ /opt/Projects/linux-2.6/drivers/mmc/core/sdio_cis.c 2010-01-05 03:38:44.000000000 +0100 +@@ -123,14 +123,14 @@ + vsn = func->card->cccr.sdio_vsn; + min_size = (vsn == SDIO_SDIO_REV_1_00) ? 28 : 42; + +- if (buf[0] != 1) ++ if (size < min_size || buf[0] != 1) + return -EINVAL; + + /* TPLFE_MAX_BLK_SIZE */ + 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 && size >= min_size) ++ if (vsn > SDIO_SDIO_REV_1_00) + func->enable_timeout = (buf[28] | (buf[29] << 8)) * 10; + else + func->enable_timeout = jiffies_to_msecs(HZ);