From: Jisheng Zhang Date: Sun, 4 Jan 2015 15:15:47 +0000 (+0800) Subject: mmc: sdhci-pxav3: fix unbalanced clock issues during probe X-Git-Tag: fixes-v4.0-rc1~141^2~42 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62cf983ad84275f8580c807e5e596216c46773cf;p=pandora-kernel.git mmc: sdhci-pxav3: fix unbalanced clock issues during probe Commit 0dcaa2499b7d ("sdhci-pxav3: Fix runtime PM initialization") tries to fix one hang issue caused by calling sdhci_add_host() on a suspended device. The fix enables the clock twice, once by clk_prepare_enable() and another by pm_runtime_get_sync(), meaning that the clock will never be gated at runtime PM suspend. I observed the power consumption regression on Marvell BG2Q SoCs. In fact, the fix is not correct. There still be a very small window during which a runtime suspend might somehow occur after pm_runtime_enable() but before pm_runtime_get_sync(). This patch fixes all of the two problems by just incrementing the usage counter before pm_runtime_enable(). It also adjust the order of disabling runtime pm and storing the usage count in the error path to handle clock gating properly. Signed-off-by: Jisheng Zhang Cc: # v3.11+ Signed-off-by: Ulf Hansson --- Reading git-diff-tree failed