On sh-mobile platforms the MMC clock frequency for the TMIO MMC unit is obtained from the same clock, as the one, that runtime power-manages the controller. The SDHI glue code has to access that clock directly, bypassing the runtime PM framework, to get its frequency, but it shouldn't enable or disable it. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx> --- Hi Magnus On Fri, 6 Jan 2012, Magnus Damm wrote: > >From my point of view there is very little difference between SH and > SH-Mobile ARM, so I don't understand the special treatment. Also, is > this change really needed for SH with your recent Runtime PM patches? I tested on ecovec, using polled hotplug and debug prints from the PM clock enable / disable routines - seems to also work properly with this patch. So, looks like you were right, cannot say anything about other platforms, obviously. drivers/mmc/host/sh_mobile_sdhi.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index a8d353e..95a2405 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -117,8 +117,6 @@ static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev) goto eclkget; } - clk_enable(priv->clk); - mmc_data->hclk = clk_get_rate(priv->clk); mmc_data->set_pwr = sh_mobile_sdhi_set_pwr; mmc_data->get_cd = sh_mobile_sdhi_get_cd; @@ -235,7 +233,6 @@ eirq_sdio: eirq_card_detect: tmio_mmc_host_remove(host); eprobe: - clk_disable(priv->clk); clk_put(priv->clk); eclkget: kfree(priv); @@ -261,7 +258,6 @@ static int sh_mobile_sdhi_remove(struct platform_device *pdev) free_irq(irq, host); } - clk_disable(priv->clk); clk_put(priv->clk); kfree(priv); -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html