aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/sh_mmcif.c
diff options
context:
space:
mode:
authorTeppei Kamijou <teppei.kamijou.yb@renesas.com>2012-12-12 09:38:10 -0500
committerChris Ball <cjb@laptop.org>2013-02-11 12:51:25 -0500
commita812ba0fd031c14c7680c94a1a22d5c60c7b6e2b (patch)
tree7cf6ea6cb8f1e4d3324871b211c4d551b49c1768 /drivers/mmc/host/sh_mmcif.c
parentf9fd54f22e79046208ff1656afff7b5f9b7433cb (diff)
mmc: sh_mmcif: Avoid unnecessary mmc_delay() at mmc_card_sleepawake()
SH/R-Mobile MMCIF host controller can wait while the card signals busy. Set MMC_CAP_WAIT_WHILE_BUSY to inform an upper layer (core/mmc_ops.c) not to insert unnecessary mmc_delay(). Signed-off-by: Teppei Kamijou <teppei.kamijou.yb@renesas.com> Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc/host/sh_mmcif.c')
-rw-r--r--drivers/mmc/host/sh_mmcif.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
index 6d3644430877..663b92b364bb 100644
--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -758,6 +758,7 @@ static u32 sh_mmcif_set_cmd(struct sh_mmcif_host *host,
758 } 758 }
759 switch (opc) { 759 switch (opc) {
760 /* RBSY */ 760 /* RBSY */
761 case MMC_SLEEP_AWAKE:
761 case MMC_SWITCH: 762 case MMC_SWITCH:
762 case MMC_STOP_TRANSMISSION: 763 case MMC_STOP_TRANSMISSION:
763 case MMC_SET_WRITE_PROT: 764 case MMC_SET_WRITE_PROT:
@@ -851,6 +852,7 @@ static void sh_mmcif_start_cmd(struct sh_mmcif_host *host,
851 852
852 switch (opc) { 853 switch (opc) {
853 /* response busy check */ 854 /* response busy check */
855 case MMC_SLEEP_AWAKE:
854 case MMC_SWITCH: 856 case MMC_SWITCH:
855 case MMC_STOP_TRANSMISSION: 857 case MMC_STOP_TRANSMISSION:
856 case MMC_SET_WRITE_PROT: 858 case MMC_SET_WRITE_PROT:
@@ -1357,7 +1359,7 @@ static int sh_mmcif_probe(struct platform_device *pdev)
1357 mmc->ops = &sh_mmcif_ops; 1359 mmc->ops = &sh_mmcif_ops;
1358 sh_mmcif_init_ocr(host); 1360 sh_mmcif_init_ocr(host);
1359 1361
1360 mmc->caps = MMC_CAP_MMC_HIGHSPEED; 1362 mmc->caps = MMC_CAP_MMC_HIGHSPEED | MMC_CAP_WAIT_WHILE_BUSY;
1361 if (pd && pd->caps) 1363 if (pd && pd->caps)
1362 mmc->caps |= pd->caps; 1364 mmc->caps |= pd->caps;
1363 mmc->max_segs = 32; 1365 mmc->max_segs = 32;