On Tue, Mar 31, 2020 at 10:45:19AM +0530, Sandeep Maheswaram (Temp) wrote: > Hi, > > On 3/31/2020 3:05 AM, Felipe Balbi wrote: > > Hi, > > > > Matthias Kaehlcke <mka@xxxxxxxxxxxx> writes: > > > > Matthias Kaehlcke <mka@xxxxxxxxxxxx> 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 <sanm@xxxxxxxxxxxxxx> > > > > > > Signed-off-by: Chandana Kishori Chiluveru <cchiluve@xxxxxxxxxxxxxx> > > > > > > Reviewed-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > > > > > > --- > > > > > > 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 <linux/clk-provider.h> by <linux/of_clk.h> > > > I thought I saw a "queued for v5.8" message from you, but can't find that back. > > > I guess I saw the "queued" message for the "Add USB DWC3 support for SC7180" > > > series and thought it was for this one. Sorry for the confusion. > > no worries :-) > > > Should I remove the ret from below line and send a new version? > + ret = dwc3_qcom_interconnect_enable(qcom); Yes, please!