diff options
author | Bing Zhao <bzhao@marvell.com> | 2011-10-20 19:16:32 -0700 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2012-01-13 13:38:30 -0800 |
commit | 64ac4350ec82ef387fb256527250a460727f6f7c (patch) | |
tree | a1a357bb84972e263ff0a79eb87c2b392e1c7243 | |
parent | 85c9e192c14eb3f2bfe4fb60533cc8b2853b9538 (diff) |
mmc: recognise SDIO cards with SDIO_CCCR_REV 3.00
Table 6-2: CCCR bit Definitions, address 00h. Part E1 SDIO Simplified
Specification Version 3.00, Feb. 25, 2011.
This patch has been tested with Marvell WLAN device SD8797.
Reviewed-on: http://git-master/r/72877
Change-Id: I1ea3b63bde2bbe8532459205f61feffae3e30f0a
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-on: http://git-master/r/74581
Reviewed-by: Automatic_Commit_Validation_User
-rw-r--r-- | drivers/mmc/core/sdio.c | 8 | ||||
-rw-r--r-- | include/linux/mmc/sdio.h | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index fce904bcacb7..3d8a5e41a488 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -116,8 +116,8 @@ static int sdio_read_cccr(struct mmc_card *card) cccr_vsn = data & 0x0f; - if (cccr_vsn > SDIO_CCCR_REV_1_20) { - printk(KERN_ERR "%s: unrecognised CCCR structure version %d\n", + if (cccr_vsn > SDIO_CCCR_REV_3_00) { + pr_err("%s: unrecognised CCCR structure version %d\n", mmc_hostname(card->host), cccr_vsn); return -EINVAL; } @@ -645,7 +645,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, (MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | MMC_CAP_UHS_SDR50 | MMC_CAP_UHS_SDR104 | MMC_CAP_UHS_DDR50))) { - err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180); + err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180, true); if (err) { ocr &= ~R4_18V_PRESENT; host->ocr &= ~R4_18V_PRESENT; @@ -781,7 +781,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, goto remove; /* Card is an ultra-high-speed card */ - mmc_card_set_uhs(card); + mmc_sd_card_set_uhs(card); } else { /* * Switch to high-speed (if supported). diff --git a/include/linux/mmc/sdio.h b/include/linux/mmc/sdio.h index aced403778df..666ff6b0aea9 100644 --- a/include/linux/mmc/sdio.h +++ b/include/linux/mmc/sdio.h @@ -73,12 +73,13 @@ #define SDIO_CCCR_REV_1_00 0 /* CCCR/FBR Version 1.00 */ #define SDIO_CCCR_REV_1_10 1 /* CCCR/FBR Version 1.10 */ #define SDIO_CCCR_REV_1_20 2 /* CCCR/FBR Version 1.20 */ +#define SDIO_CCCR_REV_3_00 3 /* CCCR/FBR Version 3.00 */ #define SDIO_SDIO_REV_1_00 0 /* SDIO Spec Version 1.00 */ #define SDIO_SDIO_REV_1_10 1 /* SDIO Spec Version 1.10 */ #define SDIO_SDIO_REV_1_20 2 /* SDIO Spec Version 1.20 */ #define SDIO_SDIO_REV_2_00 3 /* SDIO Spec Version 2.00 */ -#define SDIO_SD_REV_3_00 3 /* SD Physical Spev Version 3.00 */ +#define SDIO_SDIO_REV_3_00 4 /* SDIO Spec Version 3.00 */ #define SDIO_CCCR_SD 0x01 |