Re: [PATCH v3 4/4] soc/tegra: pmc: apply MBIST work around fo Tegra210

Jon Hunter
2018-01-25T13:07:41Z

On 25/01/18 12:26, Peter De Schrijver wrote:
> On Thu, Jan 25, 2018 at 10:57:36AM +0000, Jon Hunter wrote:
>>
>> On 25/01/18 10:06, Peter De Schrijver wrote:
>>> On Wed, Jan 24, 2018 at 10:43:45PM +0000, Jon Hunter wrote:
>>>>
>>>> On 23/01/18 09:22, Peter De Schrijver wrote:
>>>>> Apply the memory built-in self test work around when ungating certain
>>>>> Tegra210 power domains.
>>>>
>>>> Nit-pick .. typo in $subject.
>>>>
>>>>> Signed-off-by: Peter De Schrijver <pdeschrijver-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>>>>> ---
>>>>> drivers/soc/tegra/pmc.c | 5 +++++
>>>>> 1 file changed, 5 insertions(+)
>>>>>
>>>>> diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
>>>>> index ce62a47..c4eff4b 100644
>>>>> --- a/drivers/soc/tegra/pmc.c
>>>>> +++ b/drivers/soc/tegra/pmc.c
>>>>> @@ -153,6 +153,7 @@ struct tegra_pmc_soc {
>>>>>
>>>>> bool has_tsense_reset;
>>>>> bool has_gpu_clamps;
>>>>> + bool needs_mbist_war;
>>>>>
>>>>> const struct tegra_io_pad_soc *io_pads;
>>>>> unsigned int num_io_pads;
>>>>> @@ -431,6 +432,9 @@ static int tegra_powergate_power_up(struct tegra_powergate *pg,
>>>>>
>>>>> usleep_range(10, 20);
>>>>>
>>>>> + if (pg->pmc->soc->needs_mbist_war)
>>>>> + tegra210_clk_handle_mbist_war(pg->id);
>>>>> +
>>>>
>>>> Be good if we could return an error from the above function.
>>>>
>>>
>>> We need to also undo whatever we did before then.
>>
>> I think it is fine if on error you 'goto disable_clks'.
>
> Shouldn't we do this for tegra_powergate_reset_deassert() failure as well then?
> Also in case of tegra_powergate_enable_clocks() failure we should probably jump
> to powergate_off because tegra_powergate_enable_clocks() will disable the
> already enabled clocks on failure.

Yes that looks like a bug in the existing code and we should fix that.
Good catch.

Jon

--
nvpublic