Hi,

On Wed, Apr 23, 2014 at 08:07:57PM +0100, Russell King wrote:
> Patch suggested by Dong Aisheng <donga...@gmail.com>, this avoids
> additional clock start/stop cycles during the transition to 1.8V
> signalling mode.
> 
> Signed-off-by: Russell King <rmk+ker...@arm.linux.org.uk>

I tested the series on imx6s with a RIoT board. With this patch applied
the RIoT board emmc does not work. Here is the output of the board:

# dmesg | grep mmc2
mmc2: no vqmmc regulator found
mmc2: no vmmc regulator found
mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA
mmc2: BKOPS_EN bit is not set
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: error -110 whilst initialising MMC card
mmc2: BKOPS_EN bit is not set
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: error -110 whilst initialising MMC card
mmc2: BKOPS_EN bit is not set

Any ideas?

Regards,

Markus

> ---
>  drivers/mmc/host/sdhci.c | 12 ------------
>  1 file changed, 12 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 748333ba6e96..0bcef2d42da4 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1507,12 +1507,6 @@ static void sdhci_do_set_ios(struct sdhci_host *host, 
> struct mmc_ios *ios)
>                       host->ops->set_clock(host, host->clock);
>               }
>  
> -
> -             /* Reset SD Clock Enable */
> -             clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
> -             clk &= ~SDHCI_CLOCK_CARD_EN;
> -             sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
> -
>               if (host->ops->set_uhs_signaling)
>                       host->ops->set_uhs_signaling(host, ios->timing);
>               else {
> @@ -1546,9 +1540,6 @@ static void sdhci_do_set_ios(struct sdhci_host *host, 
> struct mmc_ios *ios)
>                       ios->drv_type = (preset & SDHCI_PRESET_DRV_MASK)
>                               >> SDHCI_PRESET_DRV_SHIFT;
>               }
> -
> -             /* Re-enable SD Clock */
> -             host->ops->set_clock(host, host->clock);
>       } else
>               sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
>  
> @@ -1757,9 +1748,6 @@ static int sdhci_do_start_signal_voltage_switch(struct 
> sdhci_host *host,
>               ctrl |= SDHCI_CTRL_VDD_180;
>               sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2);
>  
> -             /* Wait for 5ms */
> -             usleep_range(5000, 5500);
> -
>               /* 1.8V regulator output should be stable within 5 ms */
>               ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
>               if (ctrl & SDHCI_CTRL_VDD_180)
> -- 
> 1.8.3.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-ker...@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Attachment: signature.asc
Description: Digital signature

Reply via email to