Re: [PATCH v6 2/4] usb: dwc3: qcom: Add interconnect support in dwc3 driver

From: Matthias Kaehlcke
Date: Tue Mar 31 2020 - 12:12:00 EST


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!