diff options
author | Teppei Kamijou <teppei.kamijou.yb@renesas.com> | 2012-12-12 09:38:10 -0500 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2013-02-11 12:51:25 -0500 |
commit | a812ba0fd031c14c7680c94a1a22d5c60c7b6e2b (patch) | |
tree | 7cf6ea6cb8f1e4d3324871b211c4d551b49c1768 /drivers/mmc/host/sh_mmcif.c | |
parent | f9fd54f22e79046208ff1656afff7b5f9b7433cb (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.c | 4 |
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; |