From: sanm@codeaurora.org
To: Andy Gross <agross@kernel.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Felipe Balbi <balbi@kernel.org>,
Stephen Boyd <swboyd@chromium.org>,
Doug Anderson <dianders@chromium.org>,
Matthias Kaehlcke <mka@chromium.org>
Cc: linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Manu Gautam <mgautam@codeaurora.org>
Subject: Re: [PATCH] usb: dwc3: qcom: Add shutdown callback for dwc3
Date: Wed, 13 Jan 2021 11:14:35 +0530 [thread overview]
Message-ID: <d39144b6495db2d23466e76e509be0ed@codeaurora.org> (raw)
In-Reply-To: <1605162619-10064-1-git-send-email-sanm@codeaurora.org>
On 2020-11-12 12:00, Sandeep Maheswaram wrote:
> This patch adds a shutdown callback to USB DWC QCOM driver to ensure
> that
> it is properly shutdown in reboot/shutdown path. This is required
> where SMMU address translation is enabled like on SC7180
> SoC and few others. If the hardware is still accessing memory after
> SMMU translation is disabled as part of SMMU shutdown callback in
> system reboot or shutdown path, then IOVAs(I/O virtual address)
> which it was using will go on the bus as the physical addresses which
> might result in unknown crashes (NoC/interconnect errors).
>
> Signed-off-by: Sandeep Maheswaram <sanm@codeaurora.org>
> ---
> drivers/usb/dwc3/dwc3-qcom.c | 26 ++++++++++++++++++++------
> 1 file changed, 20 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-qcom.c
> b/drivers/usb/dwc3/dwc3-qcom.c
> index c703d55..a930e06 100644
> --- a/drivers/usb/dwc3/dwc3-qcom.c
> +++ b/drivers/usb/dwc3/dwc3-qcom.c
> @@ -790,13 +790,11 @@ static int dwc3_qcom_probe(struct platform_device
> *pdev)
> return ret;
> }
>
> -static int dwc3_qcom_remove(struct platform_device *pdev)
> +static void __dwc3_qcom_teardown(struct dwc3_qcom *qcom)
> {
> - struct dwc3_qcom *qcom = platform_get_drvdata(pdev);
> - struct device *dev = &pdev->dev;
> int i;
>
> - of_platform_depopulate(dev);
> + of_platform_depopulate(qcom->dev);
>
> for (i = qcom->num_clocks - 1; i >= 0; i--) {
> clk_disable_unprepare(qcom->clks[i]);
> @@ -807,12 +805,27 @@ static int dwc3_qcom_remove(struct
> platform_device *pdev)
> dwc3_qcom_interconnect_exit(qcom);
> reset_control_assert(qcom->resets);
>
> - pm_runtime_allow(dev);
> - pm_runtime_disable(dev);
> + pm_runtime_allow(qcom->dev);
> + pm_runtime_disable(qcom->dev);
> +}
> +
> +static int dwc3_qcom_remove(struct platform_device *pdev)
> +{
> + struct dwc3_qcom *qcom = platform_get_drvdata(pdev);
> +
> + __dwc3_qcom_teardown(qcom);
>
> return 0;
> }
>
> +static void dwc3_qcom_shutdown(struct platform_device *pdev)
> +{
> + struct dwc3_qcom *qcom = platform_get_drvdata(pdev);
> +
> + __dwc3_qcom_teardown(qcom);
> +
> +}
> +
> static int __maybe_unused dwc3_qcom_pm_suspend(struct device *dev)
> {
> struct dwc3_qcom *qcom = dev_get_drvdata(dev);
> @@ -887,6 +900,7 @@ MODULE_DEVICE_TABLE(acpi, dwc3_qcom_acpi_match);
> static struct platform_driver dwc3_qcom_driver = {
> .probe = dwc3_qcom_probe,
> .remove = dwc3_qcom_remove,
> + .shutdown = dwc3_qcom_shutdown,
> .driver = {
> .name = "dwc3-qcom",
> .pm = &dwc3_qcom_dev_pm_ops,
Hi Felipe,
Can you please review this patch.
Regards
Sandeep
next prev parent reply other threads:[~2021-01-13 5:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-12 6:30 [PATCH] usb: dwc3: qcom: Add shutdown callback for dwc3 Sandeep Maheswaram
2021-01-13 5:44 ` sanm [this message]
2021-01-13 8:40 ` Felipe Balbi
2021-01-18 6:32 ` sanm
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=d39144b6495db2d23466e76e509be0ed@codeaurora.org \
--to=sanm@codeaurora.org \
--cc=agross@kernel.org \
--cc=balbi@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=mark.rutland@arm.com \
--cc=mgautam@codeaurora.org \
--cc=mka@chromium.org \
--cc=robh+dt@kernel.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.