[Linux-stm32] [PATCH] mmc: mmci: Only call .post_sig_volt_switch if voltage switch happened
Marek Vasut
marex at denx.de
Tue Mar 31 21:01:44 UTC 2020
On 3/31/20 8:53 PM, Ulf Hansson wrote:
> On Tue, 31 Mar 2020 at 17:53, Marek Vasut <marex at denx.de> wrote:
>>
>> Call the post voltage switch handler only if the voltage switch actually
>> happened. It is well possible that the regulator is already set correctly
>> and no voltage switch happened, so there is no need to take any further
>> action.
>>
>> This fixes a real issue on STM32MP1 where, if the eMMC is supplied with
>> VccQ=1.8 V, the post voltage switch code will spin indefinitelly waiting
>> for the voltage switch to complete, even though no voltage switch really
>> happened.
>
> Whether this is a common problem or not, I think in a first step we
> should manage this in the common mmc_regulator_set_vqmmc().
I can pass in a variable which would be set if a voltage switch actually
happened in mmc_regulator_set_vqmmc() OR I can return a code > 0 from
there. Which one do you prefer?
Then I guess we can add something like
if (regulator_get_voltage(...vqmmc) is already in voltage range)
return 1;
...
and the MMCI driver would do something like
if (mmc_regulator_set_vqmmc(...) > 0)
host->ops->post_sig_volt_switch(...);
That looks OK I guess ?
> Then on top of that, convert mmci into using the mmc_regulator_set_vqmmc() API.
>
> Can please try this approach instead?
Sure. Does the above look sane ?
[...]
--
Best regards,
Marek Vasut
More information about the Linux-stm32
mailing list