From: Krishna Chaitanya Chundru <quic_krichai@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: <helgaas@kernel.org>, <linux-pci@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<mka@chromium.org>, <quic_vbadigan@quicinc.com>,
<quic_hemantk@quicinc.com>, <quic_nitegupt@quicinc.com>,
<quic_skananth@quicinc.com>, <quic_ramkri@quicinc.com>,
<manivannan.sadhasivam@linaro.org>, <swboyd@chromium.org>,
Kishon Vijay Abraham I <kishon@ti.com>,
Vinod Koul <vkoul@kernel.org>,
"open list:GENERIC PHY FRAMEWORK" <linux-phy@lists.infradead.org>
Subject: Re: [PATCH v6 3/5] phy: core: Add support for phy power down & power up
Date: Tue, 20 Sep 2022 15:11:04 +0530 [thread overview]
Message-ID: <48c560ef-67fd-8903-a7c0-2fd7a9bd6b19@quicinc.com> (raw)
In-Reply-To: <bd6fc826-94b9-f539-a37e-820ab49b9d14@linaro.org>
On 9/19/2022 10:59 PM, Dmitry Baryshkov wrote:
> On 14/09/2022 17:50, Krishna Chaitanya Chundru wrote:
>>
>> On 9/9/2022 2:34 PM, Dmitry Baryshkov wrote:
>>> On Fri, 9 Sept 2022 at 11:45, Krishna chaitanya chundru
>>> <quic_krichai@quicinc.com> wrote:
>>>> Introducing phy power down/up callbacks for allowing to park the
>>>> link-state in L1ss without holding any PCIe resources during
>>>> system suspend.
>>>>
>>>> Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
>>>> ---
>>>> drivers/phy/phy-core.c | 30 ++++++++++++++++++++++++++++++
>>>> include/linux/phy/phy.h | 20 ++++++++++++++++++++
>>>> 2 files changed, 50 insertions(+)
>>>>
>>>> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
>>>> index d93ddf1..1b0b757 100644
>>>> --- a/drivers/phy/phy-core.c
>>>> +++ b/drivers/phy/phy-core.c
>>>> @@ -441,6 +441,36 @@ int phy_set_speed(struct phy *phy, int speed)
>>>> }
>>>> EXPORT_SYMBOL_GPL(phy_set_speed);
>>>>
>>>> +int phy_power_down(struct phy *phy)
>>>> +{
>>>> + int ret;
>>>> +
>>>> + if (!phy || !phy->ops->power_down)
>>>> + return 0;
>>>> +
>>>> + mutex_lock(&phy->mutex);
>>>> + ret = phy->ops->power_down(phy);
>>>> + mutex_unlock(&phy->mutex);
>>>> +
>>>> + return ret;
>>>> +}
>>>> +EXPORT_SYMBOL_GPL(phy_power_down);
>>>> +
>>>> +int phy_power_up(struct phy *phy)
>>>> +{
>>>> + int ret;
>>>> +
>>>> + if (!phy || !phy->ops->power_up)
>>>> + return 0;
>>>> +
>>>> + mutex_lock(&phy->mutex);
>>>> + ret = phy->ops->power_up(phy);
>>>> + mutex_unlock(&phy->mutex);
>>>> +
>>>> + return ret;
>>>> +}
>>> As it can be seen from the phy_power_off(), the PHY can be a shared
>>> resource, with the power_count counting the number of users that
>>> requested the PHY to be powered up. By introducing suc calls you break
>>> directly into this by allowing a single user to power down the PHY, no
>>> matter how many other users have requested the PHY to stay alive.
>>
>> can we use same power_count in this function also here and restrict
>> the single user to
>>
>> power down the PHY same like phy_power_off?.
>
> What is the difference between power_off() and power_down()?
In power_off we are turning off PCIe PHY-specific clocks, and also
resetting the PHY due to this PCIe link
also will go down. To retain, the PCIe link state in l1ss with PHY
clocks turned off, we need
park PCIe PHY in the power-down state and skip the resets of the PHY so
that it can maintain the link state in l1ss
with the help of the always-on power domain aka MX).
To support this PHY Power-down state PHY driver has been updated with
new interface APIs.
Initially we added phy_suspend & phy_resume to phy but as this API's are
already used by drivers/net/phy/phy_device.c we are getting compilation
errors.
So we used these power_down & power up.
As power_off & power_down is confusing we will change new api's
power_down & power_up to phy_pm_suspend & phy_pm_resume in
the next patch series.
>
>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
next prev parent reply other threads:[~2022-09-20 10:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1662713084-8106-1-git-send-email-quic_krichai@quicinc.com>
2022-09-09 8:44 ` [PATCH v6 3/5] phy: core: Add support for phy power down & power up Krishna chaitanya chundru
2022-09-09 9:04 ` Dmitry Baryshkov
2022-09-14 14:50 ` Krishna Chaitanya Chundru
2022-09-19 17:29 ` Dmitry Baryshkov
2022-09-20 9:41 ` Krishna Chaitanya Chundru [this message]
2022-09-13 14:58 ` Vinod Koul
2022-09-13 16:41 ` Bjorn Helgaas
2022-09-09 8:44 ` [PATCH v6 4/5] phy: qcom: Add power down/up callbacks to pcie phy Krishna chaitanya chundru
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=48c560ef-67fd-8903-a7c0-2fd7a9bd6b19@quicinc.com \
--to=quic_krichai@quicinc.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=helgaas@kernel.org \
--cc=kishon@ti.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=mka@chromium.org \
--cc=quic_hemantk@quicinc.com \
--cc=quic_nitegupt@quicinc.com \
--cc=quic_ramkri@quicinc.com \
--cc=quic_skananth@quicinc.com \
--cc=quic_vbadigan@quicinc.com \
--cc=swboyd@chromium.org \
--cc=vkoul@kernel.org \
/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