public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: Stanley Chang <stanley_chang@realtek.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Felipe Balbi <balbi@kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 1/2] usb: dwc3: core: add support for disabling High-speed park mode
Date: Wed, 19 Apr 2023 00:33:28 +0000	[thread overview]
Message-ID: <20230419003317.rmowuprficuhwclx@synopsys.com> (raw)
In-Reply-To: <20230419002017.rnrduds7ci4bdftu@synopsys.com>

On Wed, Apr 19, 2023, Thinh Nguyen wrote:
> On Thu, Apr 13, 2023, Stanley Chang wrote:
> > Setting the PARKMODE_DISABLE_HS bit in the DWC3_USB3_GUCTL1.
> > When this bit is set to '1' all HS bus instances in park mode are disabled
> > 
> > For some USB wifi devices, if enable this feature it will reduce the
> > performance. Therefore, add an option for disabling HS park mode by
> > device-tree.
> > 
> > In Synopsys's dwc3 data book:
> > In a few high speed devices when an IN request is sent within 900ns of the
> > ACK of the previous packet, these devices send a NAK. When connected to
> > these devices, if required, the software can disable the park mode if you
> > see performance drop in your system. When park mode is disabled,
> > pipelining of multiple packet is disabled and instead one packet at a time
> > is requested by the scheduler. This allows up to 12 NAKs in a micro-frame
> > and improves performance of these slow devices.
> > 
> > Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
> > ---
> > v2 to v3 change:
> > 1. Add the comment message.
> > 2. cc the right maintainers.
> > ---
> >  drivers/usb/dwc3/core.c | 5 +++++
> >  drivers/usb/dwc3/core.h | 4 ++++
> >  2 files changed, 9 insertions(+)
> > 
> > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> > index 476b63618511..8fbc92a5f2cb 100644
> > --- a/drivers/usb/dwc3/core.c
> > +++ b/drivers/usb/dwc3/core.c
> > @@ -1233,6 +1233,9 @@ static int dwc3_core_init(struct dwc3 *dwc)
> >  		if (dwc->parkmode_disable_ss_quirk)
> >  			reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
> >  
> > +		if (dwc->parkmode_disable_hs_quirk)
> > +			reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS;
> > +
> >  		if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) &&
> >  		    (dwc->maximum_speed == USB_SPEED_HIGH ||
> >  		     dwc->maximum_speed == USB_SPEED_FULL))
> > @@ -1555,6 +1558,8 @@ static void dwc3_get_properties(struct dwc3 *dwc)
> >  				"snps,resume-hs-terminations");
> >  	dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
> >  				"snps,parkmode-disable-ss-quirk");
> > +	dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev,
> > +				"snps,parkmode-disable-hs-quirk");
> >  	dwc->gfladj_refclk_lpm_sel = device_property_read_bool(dev,
> >  				"snps,gfladj-refclk-lpm-sel-quirk");
> >  
> > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> > index 4743e918dcaf..30907ffcb3ec 100644
> > --- a/drivers/usb/dwc3/core.h
> > +++ b/drivers/usb/dwc3/core.h
> > @@ -263,6 +263,7 @@
> >  #define DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK	BIT(26)
> >  #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW		BIT(24)
> >  #define DWC3_GUCTL1_PARKMODE_DISABLE_SS		BIT(17)
> > +#define DWC3_GUCTL1_PARKMODE_DISABLE_HS		BIT(16)
> >  #define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST	BIT(10)
> >  
> >  /* Global Status Register */
> > @@ -1102,6 +1103,8 @@ struct dwc3_scratchpad_array {
> >   *			generation after resume from suspend.
> >   * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
> >   *			instances in park mode.
> > + * @parkmode_disable_hs_quirk: set if we need to disable all HishSpeed
> > + *			instances in park mode.
> >   * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
> >   * @tx_de_emphasis: Tx de-emphasis value
> >   *	0	- -6dB de-emphasis
> > @@ -1318,6 +1321,7 @@ struct dwc3 {
> >  	unsigned		dis_tx_ipgap_linecheck_quirk:1;
> >  	unsigned		resume_hs_terminations:1;
> >  	unsigned		parkmode_disable_ss_quirk:1;
> > +	unsigned		parkmode_disable_hs_quirk:1;
> >  	unsigned		gfladj_refclk_lpm_sel:1;
> >  
> >  	unsigned		tx_de_emphasis_quirk:1;
> > -- 
> > 2.34.1
> > 
> 
> Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
> 

I forgot that you may need to resend v4 as per Greg's comment related to
threaded mails. If nothing else is changed, you can add my Ack on v4.

Thanks,
Thinh

  reply	other threads:[~2023-04-19  0:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-13 10:09 [PATCH v3 1/2] usb: dwc3: core: add support for disabling High-speed park mode Stanley Chang
2023-04-13 10:09 ` [PATCH v3 2/2] dt-bindings: usb: snps,dwc3: Add 'snps,parkmode-disable-hs-quirk' quirk Stanley Chang
2023-04-18 20:52   ` Rob Herring
2023-04-19  0:20 ` [PATCH v3 1/2] usb: dwc3: core: add support for disabling High-speed park mode Thinh Nguyen
2023-04-19  0:33   ` Thinh Nguyen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-04-13  8:53 Stanley Chang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230419003317.rmowuprficuhwclx@synopsys.com \
    --to=thinh.nguyen@synopsys.com \
    --cc=balbi@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=stanley_chang@realtek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox