Hi, Matthias Kaehlcke writes: >> 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 >> Signed-off-by: Chandana Kishori Chiluveru >> Reviewed-by: Matthias Kaehlcke >> --- >> 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? Let's go for a v6, which commits should I drop? I can't find anything related to $subject in my queue: $ git --no-pager log --oneline HEAD ^linus/master -- drivers/usb/dwc3/dwc3-qcom.c 201c26c08db4 usb: dwc3: qcom: Replace by -- balbi