mmc: sdio: don't require CISTPL_VERS_1 to contain 4 strings
PATCH 15/16 mmc: sdio: don't require CISTPL_VERS_1 to contain 4 strings
From: David Vrabel <[email protected]>
The PC Card 8.0 specification (vol. 4, section 3.2.10) says the TPLLV1_INFO field of the CISTPL_VERS_1 tuple must contain 4 strings. Some cards don't have all 4 so just parse as many as we can.
[[email protected]: coding-style fixes]
Signed-off-by David Vrabel <[email protected]>
Tested-by Jonathan Cameron <[email protected]>
Tested-by Bing Zhao <[email protected]>
Cc Roel Kluin <[email protected]>
Cc <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/mmc/core/sdio_cis.c renamed from drivers/mmc/core/sdio_cis.c~mmc-sdio-dont-require-cistpl_vers_1-to-contain-4-strings +3 -4
@@ -29,6 +29,8 @@ static int cistpl_vers_1(struct mmc_cardunsigned i, nr_strings;char **buffer, *string; +/* Find all null-terminated (including zero length) strings in +the TPLLV1_INFO field. Trailing garbage is ignored. */ buf +=2 ; size -=2 ;
@@ -39,11 +41,8 @@ static int cistpl_vers_1(struct mmc_cardif (buf[i] ==0 ) nr_strings++; } - -if (nr_strings <4 ) { -printk (KERN_WARNING "SDIO: ignoring broken CISTPL_VERS_1\n" ); +if (nr_strings ==0 )return 0 ; - } size = i;
_