From: Felipe Balbi <balbi@kernel.org>
To: Sandeep Maheswaram <sanm@codeaurora.org>
Cc: Rob Herring <robh+dt@kernel.org>, Andy Gross <agross@kernel.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Stephen Boyd <swboyd@chromium.org>,
Doug Anderson <dianders@chromium.org>,
Matthias Kaehlcke <mka@chromium.org>,
devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
Pratham Pratap <prathampratap@codeaurora.org>
Subject: Re: [PATCH 2/3] usb: dwc3: qcom: Add multi-pd support
Date: Tue, 31 Aug 2021 08:34:56 +0300 [thread overview]
Message-ID: <87r1each0s.fsf@kernel.org> (raw)
In-Reply-To: <1630346073-7099-3-git-send-email-sanm@codeaurora.org>
Hi,
Sandeep Maheswaram <sanm@codeaurora.org> writes:
> Add multi pd support to set performance state for cx domain
> to maintain minimum corner voltage for USB clocks.
>
> Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org>
> ---
> drivers/usb/dwc3/dwc3-qcom.c | 49 ++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 49 insertions(+)
>
> diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c
> index 9abbd01..777a647 100644
> --- a/drivers/usb/dwc3/dwc3-qcom.c
> +++ b/drivers/usb/dwc3/dwc3-qcom.c
> @@ -17,6 +17,7 @@
> #include <linux/of_platform.h>
> #include <linux/platform_device.h>
> #include <linux/phy/phy.h>
> +#include <linux/pm_domain.h>
> #include <linux/usb/of.h>
> #include <linux/reset.h>
> #include <linux/iopoll.h>
> @@ -89,6 +90,10 @@ struct dwc3_qcom {
> bool pm_suspended;
> struct icc_path *icc_path_ddr;
> struct icc_path *icc_path_apps;
> + /* power domain for cx */
> + struct device *pd_cx;
> + /* power domain for usb gdsc */
> + struct device *pd_usb_gdsc;
> };
>
> static inline void dwc3_qcom_setbits(void __iomem *base, u32 offset, u32 val)
> @@ -521,6 +526,46 @@ static int dwc3_qcom_setup_irq(struct platform_device *pdev)
> return 0;
> }
>
> +static int dwc3_qcom_attach_pd(struct device *dev)
> +{
> + struct dwc3_qcom *qcom = dev_get_drvdata(dev);
> + struct device_link *link;
> +
> + /* Do nothing when in a single power domain */
> + if (dev->pm_domain)
> + return 0;
> +
> + qcom->pd_cx = dev_pm_domain_attach_by_name(dev, "cx");
> + if (IS_ERR(qcom->pd_cx))
> + return PTR_ERR(qcom->pd_cx);
> + /* Do nothing when power domain missing */
> + if (!qcom->pd_cx)
> + return 0;
> + link = device_link_add(dev, qcom->pd_cx,
> + DL_FLAG_STATELESS |
> + DL_FLAG_PM_RUNTIME |
> + DL_FLAG_RPM_ACTIVE);
> + if (!link) {
> + dev_err(dev, "Failed to add device_link to cx pd.\n");
do you need to call dev_pm_domain_dettach() here?
> + return -EINVAL;
> + }
> +
> + qcom->pd_usb_gdsc = dev_pm_domain_attach_by_name(dev, "usb_gdsc");
> + if (IS_ERR(qcom->pd_usb_gdsc))
do you need to call dev_pm_domain_dettach() here?
> + return PTR_ERR(qcom->pd_usb_gdsc);
> +
> + link = device_link_add(dev, qcom->pd_usb_gdsc,
> + DL_FLAG_STATELESS |
> + DL_FLAG_PM_RUNTIME |
> + DL_FLAG_RPM_ACTIVE);
> + if (!link) {
> + dev_err(dev, "Failed to add device_link to usb gdsc pd.\n");
do you need to call dev_pm_domain_dettach() here?
--
balbi
next prev parent reply other threads:[~2021-08-31 5:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-30 17:54 [PATCH 0/3] USB DWC3 QCOM Multi power domain support Sandeep Maheswaram
2021-08-30 17:54 ` [PATCH 1/3] dt-bindings: usb: qcom,dwc3: Add multi-pd bindings for dwc3 qcom Sandeep Maheswaram
2021-08-30 20:07 ` Doug Anderson
2021-09-06 9:15 ` Sandeep Maheswaram
2021-09-07 12:19 ` Rajendra Nayak
2021-09-07 13:50 ` Bjorn Andersson
[not found] ` <e947695b-cd50-391b-3de9-3c028dbddab2@codeaurora.org>
2021-09-30 16:07 ` Bjorn Andersson
2021-08-30 17:54 ` [PATCH 2/3] usb: dwc3: qcom: Add multi-pd support Sandeep Maheswaram
2021-08-31 5:34 ` Felipe Balbi [this message]
2021-08-30 17:54 ` [PATCH 3/3] arm64: dts: qcom: sc7280: Add cx power domain support Sandeep Maheswaram
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=87r1each0s.fsf@kernel.org \
--to=balbi@kernel.org \
--cc=agross@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mka@chromium.org \
--cc=prathampratap@codeaurora.org \
--cc=robh+dt@kernel.org \
--cc=sanm@codeaurora.org \
--cc=swboyd@chromium.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.