From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Sowjanya Komatineni <skomatineni@nvidia.com>,
axboe@kernel.dk, jonathanh@nvidia.com, robh+dt@kernel.org,
pchandru@nvidia.com, devicetree@vger.kernel.org,
linux-ide@vger.kernel.org, linux-tegra@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 3/3] ata: ahci_tegra: Add AHCI support for Tegra186
Date: Thu, 8 Apr 2021 17:41:21 +0300 [thread overview]
Message-ID: <c05f6f69-b355-857a-1fe7-6c68596d141f@gmail.com> (raw)
In-Reply-To: <YG7/xPVoA4gPrMBf@orome.fritz.box>
08.04.2021 16:06, Thierry Reding пишет:
> On Thu, Apr 08, 2021 at 02:25:19AM +0300, Dmitry Osipenko wrote:
>> 08.04.2021 02:00, Sowjanya Komatineni пишет:
>>>
>>> On 4/7/21 3:57 PM, Sowjanya Komatineni wrote:
>>>>
>>>> On 4/7/21 2:36 PM, Dmitry Osipenko wrote:
>>>>> 07.04.2021 04:25, Sowjanya Komatineni пишет:
>>>>>> + if (!tegra->pdev->dev.pm_domain) {
>>>>>> + ret = tegra_powergate_sequence_power_up(TEGRA_POWERGATE_SATA,
>>>>>> + tegra->sata_clk,
>>>>>> + tegra->sata_rst);
>>>>>> + if (ret)
>>>>>> + goto disable_regulators;
>>>>>> + }
>>>>> Hi,
>>>>>
>>>>> Why you haven't added condition for tegra_powergate_power_off()? I think
>>>>> it should break GENPD and legacy PD API isn't not supported by T186
>>>>> at all.
>>>>>
>>>>> I'm also not sure whether the power up/down sequence is correct using
>>>>> GENPD.
>>>>>
>>>>> Moreover the driver doesn't support runtime PM, so GENPD should be
>>>>> always off?
>>>>
>>>> This driver already using legacy PD API's so thought its supported and
>>>> added power domain device check during powergate_sequence_power_up and
>>>> yes same should apply for powergate_power_off as well. But if legacy
>>>> PD is not supported by T186 then not sure why original driver even
>>>> using these API's.
>>>>
>>>>
>>> Sorry just took a look and driver supports T210 and prior tegra as well.
>>> T210 and prior supports legacy PD and this check is applicable for
>>> those. So we should add power domain device check for power off as well.
>>
>> You could fix it with a follow up patch. Please try to test that
>> power-off works properly, at least try to unload the driver module and
>> re-load it.
>
> Agreed, this should have the same check as above for
> tegra_powergate_power_off(). It currently works fine because on Tegra186
> tegra_powergate_power_off() (and all the other legacy APIs for that
> matter) will abort early since no power gates are implemented. The AHCI
> driver doesn't check for errors, so this will just fail silently. It's
> better to be symmetric, though, and add the check in both paths.
I missed that tegra_powergate_power_off() usage isn't fatal if GENPD is
used, thank you for the clarification.
>>> But for T186, we should have GENPD working once we add runtime PM
>>> support to driver.
>>>
>>> Preetham/Thierry, Can you confirm where SATA is un powergated prior to
>>> kernel?
>>>
>>>
>>>> But as RPM is not implemented yet for this driver, GENPD will be OFF
>>>> but SATA is not in power-gate by the time kernel starts and
>>>> functionally works.
>>>>
>>>> But with RPM implementation, I guess we can do proper power gate on/off.
>>>>
>>
>> I now recalled that GENPD turns ON all domains by default and then turns
>> them OFF only when driver entered into the RPM-suspended state. This
>> means that AHCI GENPD should be always-ON for T186, which should be okay
>> if this doesn't break power sequences.
>
> Yeah, the generic PM domain will just stay enabled after probe and until
> remove. This does not impact the power sequences because they have to be
> completely implemented in the power domains code anyway. With the legacy
> API we used to need more rigorous sequences in the individual drivers,
> but with generic PM domains none of that should be necessary, though it
> also doesn't hurt, so some of the unnecessary clock enablement code is
> kept for simplicity.
>
> To be honest, I'm not sure if it's worth adding runtime PM support for
> this driver. If this top-level layer has a way of getting notification
> when no device was detected, then it might make some sense to turn off
> the power domain and the regulators again, but I'm not sure if that's
> the case. tegra_ahci_host_stop() seems like it might be usable for that
> so yeah, that might work. We currently do turn off the powergate in that
> case, so extending that power optimization to Tegra186 using runtime PM
> makes sense.
Alright, then this all should be good as-is.
next prev parent reply other threads:[~2021-04-08 14:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-07 1:25 [PATCH v4 0/3] Add AHCI support for Tegra186 Sowjanya Komatineni
2021-04-07 1:25 ` [PATCH v4 1/3] dt-bindings: ata: tegra: Convert binding documentation to YAML Sowjanya Komatineni
2021-04-07 15:04 ` Thierry Reding
2021-04-07 1:25 ` [PATCH v4 2/3] dt-binding: ata: tegra: Add dt-binding documentation for Tegra186 Sowjanya Komatineni
2021-04-07 15:04 ` Thierry Reding
2021-04-07 1:25 ` [PATCH v4 3/3] ata: ahci_tegra: Add AHCI support " Sowjanya Komatineni
2021-04-07 15:05 ` Thierry Reding
2021-04-07 21:36 ` Dmitry Osipenko
2021-04-07 22:57 ` Sowjanya Komatineni
2021-04-07 23:00 ` Sowjanya Komatineni
2021-04-07 23:25 ` Dmitry Osipenko
2021-04-08 13:06 ` Thierry Reding
2021-04-08 14:41 ` Dmitry Osipenko [this message]
2021-04-07 15:44 ` [PATCH v4 0/3] " Jens Axboe
2021-04-07 16:18 ` Thierry Reding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c05f6f69-b355-857a-1fe7-6c68596d141f@gmail.com \
--to=digetx@gmail.com \
--cc=axboe@kernel.dk \
--cc=devicetree@vger.kernel.org \
--cc=jonathanh@nvidia.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=pchandru@nvidia.com \
--cc=robh+dt@kernel.org \
--cc=skomatineni@nvidia.com \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).