Hi, > -----Original Message----- > From: Felipe Balbi <bal...@gmail.com> On Behalf Of Felipe Balbi > Sent: 2020年5月16日 15:13 > To: Thinh Nguyen <thinh.ngu...@synopsys.com>; Jun Li <jun...@nxp.com>; Jun Li > <lijun.ker...@gmail.com> > Cc: John Stultz <john.stu...@linaro.org>; lkml > <linux-kernel@vger.kernel.org>; Yu > Chen <cheny...@huawei.com>; Greg Kroah-Hartman <gre...@linuxfoundation.org>; > Rob > Herring <robh...@kernel.org>; Mark Rutland <mark.rutl...@arm.com>; ShuFan Lee > <shufan_...@richtek.com>; Heikki Krogerus <heikki.kroge...@linux.intel.com>; > Suzuki K Poulose <suzuki.poul...@arm.com>; Chunfeng Yun > <chunfeng....@mediatek.com>; Hans de Goede <hdego...@redhat.com>; Andy > Shevchenko > <andy.shevche...@gmail.com>; Valentin Schneider <valentin.schnei...@arm.com>; > Jack Pham <ja...@codeaurora.org>; Linux USB List <linux-...@vger.kernel.org>; > open > list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS > <devicet...@vger.kernel.org>; > Peter Chen <peter.c...@nxp.com>; Thinh Nguyen <thinh.ngu...@synopsys.com> > Subject: Re: [PATCH v4 3/9] usb: dwc3: Increase timeout for CmdAct cleared by > device > controller > > > Hi, > > Thinh Nguyen <thinh.ngu...@synopsys.com> writes: > > Jun Li wrote: > >>> -----Original Message----- > >>> From: Felipe Balbi <bal...@gmail.com> On Behalf Of Felipe Balbi > >>> Sent: 2020年5月15日 17:31 > >>> To: Jun Li <lijun.ker...@gmail.com> > >>> Cc: John Stultz <john.stu...@linaro.org>; lkml > >>> <linux-kernel@vger.kernel.org>; Yu Chen <cheny...@huawei.com>; Greg > >>> Kroah-Hartman <gre...@linuxfoundation.org>; Rob Herring > >>> <robh...@kernel.org>; Mark Rutland <mark.rutl...@arm.com>; ShuFan > >>> Lee <shufan_...@richtek.com>; Heikki Krogerus > >>> <heikki.kroge...@linux.intel.com>; > >>> Suzuki K Poulose <suzuki.poul...@arm.com>; Chunfeng Yun > >>> <chunfeng....@mediatek.com>; Hans de Goede <hdego...@redhat.com>; > >>> Andy Shevchenko <andy.shevche...@gmail.com>; Valentin Schneider > >>> <valentin.schnei...@arm.com>; Jack Pham <ja...@codeaurora.org>; > >>> Linux USB List <linux-...@vger.kernel.org>; open list:OPEN FIRMWARE > >>> AND FLATTENED DEVICE TREE BINDINGS <devicet...@vger.kernel.org>; > >>> Peter Chen <peter.c...@nxp.com>; Jun Li <jun...@nxp.com>; Thinh > >>> Nguyen <thinh.ngu...@synopsys.com> > >>> Subject: Re: [PATCH v4 3/9] usb: dwc3: Increase timeout for CmdAct > >>> cleared by device controller > >>> > >>> > >>> Hi, > >>> > >>> Jun Li <lijun.ker...@gmail.com> writes: > >>>>> @@ -397,12 +407,18 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep > >>>>> *dep, unsigned > >>> cmd, > >>>>> dwc3_gadget_ep_get_transfer_index(dep); > >>>>> } > >>>>> > >>>>> - if (saved_config) { > >>>>> + if (saved_hs_config) { > >>>>> reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); > >>>>> - reg |= saved_config; > >>>>> + reg |= saved_hs_config; > >>>>> dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); > >>>>> } > >>>>> > >>>>> + if (saved_ss_config) { > >>>>> + reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); > >>>>> + reg |= saved_ss_config; > >>>>> + dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); > >>>>> + } > >>>>> + > >>>>> return ret; > >>>>> } > >>>> Unfortunately this way can't work, once the SS PHY enters P3, > >>>> disable suspend_en can't force SS PHY exit P3, unless do this at > >>>> the very beginning to prevent SS PHY entering P3(e.g. add > >>>> "snps,dis_u3_susphy_quirk" for > >>> test). > >>> > >>> It sounds like you have a quirky PHY. > >> From what I got from the IC design, the behavior of > >> DWC3_GUSB3PIPECTL_SUSPHY bit should be as what I said, not a quirky. > >> > >> Hi Thinh, could you comment this? > > > > You only need to wake up the usb2 phy when issuing the command while > > running in highspeed or below. If you're running in SS or higher, > > internally the controller does it for you for usb3 phy. In Jun's case, > > it seems like it takes longer for his phy to wake up. > > > > IMO, in this case, I think it's fine to increase the command timeout. > > Is there an upper limit to this? Is 32k clock the slowest that can be fed to > the > PHY as a suspend clock?
Yes, 32K clock is the slowest, Per DWC3 document on Power Down Scale (bits 31:19 of GCTL): "Power Down Scale (PwrDnScale) The USB3 suspend_clk input replaces pipe3_rx_pclk as a clock source to a small part of the USB3 controller that operates when the SS PHY is in its lowest power (P3) state, and therefore does not provide a clock. The Power Down Scale field specifies how many suspend_clk periods fit into a 16 kHz clock period. When performing the division, round up the remainder. For example, when using an 8-bit/16-bit/32-bit PHY and 25-MHz Suspend clock, Power Down Scale = 25000 kHz/16 kHz = 13'd1563 (rounder up) Note: - Minimum Suspend clock frequency is 32 kHz - Maximum Suspend clock frequency is 125 MHz" Li Jun > > -- > balbi