Re: [PATCH v6 2/4] usb: dwc3: qcom: Add interconnect support in dwc3 driver
From: Matthias Kaehlcke <mka@chromium.org>
Date: 2020-03-29 17:18:03
Also in:
linux-arm-msm, linux-usb, lkml
Hi, On Fri, Mar 27, 2020 at 03:13:21PM +0530, Sandeep Maheswaram wrote:
quoted hunk ↗ jump to hunk
Add interconnect support in dwc3-qcom driver to vote for bus bandwidth. This requires for two different paths - from USB master to DDR slave. The other is from APPS master to USB slave. Signed-off-by: Sandeep Maheswaram <redacted> Signed-off-by: Chandana Kishori Chiluveru <redacted> Reviewed-by: Matthias Kaehlcke <mka@chromium.org> --- drivers/usb/dwc3/dwc3-qcom.c | 128 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 126 insertions(+), 2 deletions(-)diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c index 1dfd024..7e85fe6 100644 --- a/drivers/usb/dwc3/dwc3-qcom.c +++ b/drivers/usb/dwc3/dwc3-qcom.c... +/* To disable an interconnect, we just set its bandwidth to 0 */ +static int dwc3_qcom_interconnect_disable(struct dwc3_qcom *qcom) +{ + int ret; + + ret = icc_set_bw(qcom->usb_ddr_icc_path, 0, 0); + if (ret) + return ret; + + ret = icc_set_bw(qcom->apps_usb_icc_path, 0, 0); + if (ret) + goto err_reenable_memory_path; + + return 0; + + /* Re-enable things in the event of an error */ +err_reenable_memory_path: + ret = dwc3_qcom_interconnect_enable(qcom);
This overwrites the error that led to the execution of this code path. The function should return original error, not the result of the _interconnect_enable() call. I saw Felipe queued the patch for v5.8. I think the main options to fix this are: - a v6 of this patch to replace v5 in Felipe's tree (which IIUC will be rebased anyway once there is a v5.7-rc) - send the fix as a separate patch - Felipe amends the patch in his tree Felipe, what would work best for you? Thanks Matthias