Hello Ulf,
On 01/30/2015 12:17 PM, Ulf Hansson wrote:
quoted
};
@@ -39,6 +42,11 @@ static void mmc_pwrseq_simple_pre_power_on(struct mmc_host *host)
struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq,
struct mmc_pwrseq_simple, pwrseq);
+ if (!IS_ERR(pwrseq->ext_clk)) {
This should be:
if (!IS_ERR(pwrseq->ext_clk) && !pwrseq->clk_enabled) {
Oh, I thought that it was not possible to enter mmc_pwrseq_pre_power_on()
twice without a prior call to mmc_pwrseq_power_off() but I guess I didn't
read the MMC core code carefully...
quoted
+ clk_prepare_enable(pwrseq->ext_clk);
+ pwrseq->clk_enabled = true;
+ }
+
mmc_pwrseq_simple_set_gpios_value(pwrseq, 1);
}
@@ -50,6 +58,19 @@ static void mmc_pwrseq_simple_post_power_on(struct mmc_host *host)
mmc_pwrseq_simple_set_gpios_value(pwrseq, 0);
}
+static void mmc_pwrseq_simple_power_off(struct mmc_host *host)
+{
+ struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq,
+ struct mmc_pwrseq_simple, pwrseq);
+
+ mmc_pwrseq_simple_set_gpios_value(pwrseq, 1);
+
+ if (pwrseq->clk_enabled) {
I changed this as well, but that was just to make code clearer.
if (!IS_ERR(pwrseq->ext_clk) && pwrseq->clk_enabled) {
Yeah, if IS_ERR(pwrseq->ext_clk) then clk_enabled will always be false but I
agree that the change makes the code to be more consistent.
quoted
As I stated in the response to he coverletter for the patchset, this
patch is applied for next with above changes.
Thanks!
Thanks a lot for your help and for fixing these things!
Kind regards
Uffe
Best regards,
Javier