RE: [EXT] Re: [PATCH v1] usb: dwc3: remove the call trace of USBx_GFLADJ
From: Yinbo Zhu
Date: Sun Aug 11 2019 - 23:10:11 EST
> -----Original Message-----
> From: Felipe Balbi [mailto:balbi@xxxxxxxxxx]
> Sent: 2019年8月8日 13:07
> To: Yinbo Zhu <yinbo.zhu@xxxxxxx>; Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx>; linux-usb@xxxxxxxxxxxxxxx; open list
> <linux-kernel@xxxxxxxxxxxxxxx>
> Cc: Yinbo Zhu <yinbo.zhu@xxxxxxx>; Xiaobo Xie <xiaobo.xie@xxxxxxx>; Jiafei
> Pan <jiafei.pan@xxxxxxx>; Ran Wang <ran.wang_1@xxxxxxx>
> Subject: [EXT] Re: [PATCH v1] usb: dwc3: remove the call trace of USBx_GFLADJ
>
> Caution: EXT Email
>
> Hi,
>
> Yinbo Zhu <yinbo.zhu@xxxxxxx> writes:
>
> > layerscape board sometimes reported some usb call trace, that is due
> > to kernel sent LPM tokerns automatically when it has no pending
> > transfers and think that the link is idle enough to enter L1, which
> > procedure will ask usb register has a recovery,then kernel will
> > compare USBx_GFLADJ and set GFLADJ_30MHZ, GFLADJ_30MHZ_REG until
> > GFLADJ_30MHZ is equal 0x20, if the conditions were met then issue
> > occur, but whatever the conditions whether were met that usb is all
> > need keep GFLADJ_30MHZ of value is 0x20 (xhci spec ask use
> > GFLADJ_30MHZ to adjust any offset from clock source that generates the
> > clock that drives the SOF counter, 0x20 is default value of it)That is normal logic,
> so need remove the call trace.
> >
> > Signed-off-by: Yinbo Zhu <yinbo.zhu@xxxxxxx>
> > ---
> > drivers/usb/dwc3/core.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index
> > 98bce85c29d0..a133d8490322 100644
> > --- a/drivers/usb/dwc3/core.c
> > +++ b/drivers/usb/dwc3/core.c
> > @@ -300,8 +300,7 @@ static void dwc3_frame_length_adjustment(struct
> > dwc3 *dwc)
> >
> > reg = dwc3_readl(dwc->regs, DWC3_GFLADJ);
> > dft = reg & DWC3_GFLADJ_30MHZ_MASK;
> > - if (!dev_WARN_ONCE(dwc->dev, dft == dwc->fladj,
> > - "request value same as default, ignoring\n")) {
> > + if (dft != dwc->fladj) {
>
> if the value isn't different, why do you want to change it?
>
> --
> Balbi
Hi Balbi,
I don't change any value. I was remove that call trace.
In addition that GFLADJ_30MHZ value intial value is 0, and it's value must be 0x20, if not, usb will not work.
Regards,
Yinbo