Linux-USB Archive on lore.kernel.org
 help / color / Atom feed
From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Cc: Felipe Balbi <balbi@kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	John Youn <John.Youn@synopsys.com>
Subject: Re: [PATCH 6/6] usb: dwc3: host: Set quirks base on version
Date: Fri, 9 Apr 2021 08:01:15 +0000
Message-ID: <fbc6c921-114b-ed0b-ed68-b425e09e3e9b@synopsys.com> (raw)
In-Reply-To: <YG/50kPULbzZRlFj@kroah.com>

Greg Kroah-Hartman wrote:
> On Thu, Apr 08, 2021 at 06:42:32PM -0700, Thinh Nguyen wrote:
>> We can check for host quirks at runtime base on the controller IP and
>> version check. Set the following quirks for the DWC_usb31 IP host mode
>> before creating a platform device for the xHCI driver:
>>
>>  * XHCI_ISOC_BLOCKED_DISCONNECT
>>  * XHCI_LIMIT_FS_BI_INTR_EP
>>  * XHCI_LOST_DISCONNECT_QUIRK
>>
>> Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
>> ---
>>  drivers/usb/dwc3/host.c | 21 +++++++++++++++++++++
>>  1 file changed, 21 insertions(+)
>>
>> diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c
>> index f29a264635aa..a486d7fbb163 100644
>> --- a/drivers/usb/dwc3/host.c
>> +++ b/drivers/usb/dwc3/host.c
>> @@ -9,6 +9,7 @@
>>  
>>  #include <linux/acpi.h>
>>  #include <linux/platform_device.h>
>> +#include <linux/usb/xhci-quirks.h>
>>  
>>  #include "core.h"
>>  
>> @@ -42,6 +43,17 @@ static int dwc3_host_get_irq(struct dwc3 *dwc)
>>  	return irq;
>>  }
>>  
>> +static void dwc3_host_init_quirks(struct dwc3 *dwc, struct xhci_plat_priv *priv)
>> +{
>> +	memset(priv, 0, sizeof(*priv));
>> +
>> +	if (DWC3_VER_IS_WITHIN(DWC31, ANY, 190A)) {
>> +		priv->quirks |= XHCI_ISOC_BLOCKED_DISCONNECT;
>> +		priv->quirks |= XHCI_LIMIT_FS_BI_INTR_EP;
>> +		priv->quirks |= XHCI_LOST_DISCONNECT_QUIRK;
>> +	}
>> +}
>> +
>>  int dwc3_host_init(struct dwc3 *dwc)
>>  {
>>  	struct property_entry	props[4];
>> @@ -49,6 +61,7 @@ int dwc3_host_init(struct dwc3 *dwc)
>>  	int			ret, irq;
>>  	struct resource		*res;
>>  	struct platform_device	*dwc3_pdev = to_platform_device(dwc->dev);
>> +	struct xhci_plat_priv	dwc3_priv;
> 
> Tying the dwc3 code to the xhci code like this feels really wrong to me,
> are you sure this is the correct resolution?
> 
> greg k-h
> 

Can you clarify what feels wrong? The way it's originally implemented
already tied them in that way. What we're doing here simply takes
advantage of what xhci-plat glue layer can use to set the xhci quirks.
With this, we don't have to create new and duplicate DT properties for
dwc3 and xhci to set some quirks. With the expanding list of dwc3 DT, I
see this as a plus.

Thanks,
Thinh

  reply index

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-09  1:41 [PATCH 0/6] usb: Set quirks for xhci/dwc3 host mode Thinh Nguyen
2021-04-09  1:41 ` [PATCH 1/6] usb: xhci: Move quirks definitions to common usb header Thinh Nguyen
2021-04-09  6:50   ` Greg Kroah-Hartman
2021-04-09  8:01     ` Thinh Nguyen
2021-04-09 16:26   ` kernel test robot
2021-04-09 19:54   ` kernel test robot
2021-04-09  1:42 ` [PATCH 2/6] usb: xhci: Check for blocked disconnection Thinh Nguyen
2021-04-09  1:42 ` [PATCH 3/6] usb: xhci: Workaround undercalculated BW for fullspeed BI Thinh Nguyen
2021-04-09  1:42 ` [PATCH 4/6] usb: xhci: Rename Compliance mode timer quirk Thinh Nguyen
2021-04-09  1:42 ` [PATCH 5/6] usb: xhci: Workaround lost disconnect port status Thinh Nguyen
2021-04-09  1:42 ` [PATCH 6/6] usb: dwc3: host: Set quirks base on version Thinh Nguyen
2021-04-09  6:53   ` Greg Kroah-Hartman
2021-04-09  8:01     ` Thinh Nguyen [this message]
2021-04-09 13:22       ` Greg Kroah-Hartman
2021-04-10  0:44         ` Thinh Nguyen
2021-04-10  0:46 ` [PATCH v2 0/7] usb: Set quirks for xhci/dwc3 host mode Thinh Nguyen
2021-04-10  0:46   ` [PATCH v2 1/7] usb: xhci: Move quirks definitions to common usb header Thinh Nguyen
2021-04-10  0:46   ` [PATCH v2 2/7] usb: xhci: Move xhci-plat header " Thinh Nguyen
2021-04-10  0:47   ` [PATCH v2 3/7] usb: xhci: Check for blocked disconnection Thinh Nguyen
2021-04-27 13:08     ` Mathias Nyman
2021-04-27 22:30       ` Thinh Nguyen
2021-04-28 13:32         ` Mathias Nyman
2021-04-29  0:54           ` Thinh Nguyen
2021-04-10  0:47   ` [PATCH v2 4/7] usb: xhci: Workaround undercalculated BW for fullspeed BI Thinh Nguyen
2021-04-28 11:57     ` Mathias Nyman
2021-04-10  0:47   ` [PATCH v2 5/7] usb: xhci: Rename Compliance mode timer quirk Thinh Nguyen
2021-04-10  0:47   ` [PATCH v2 6/7] usb: xhci: Workaround lost disconnect port status Thinh Nguyen
2021-04-28 13:48     ` Mathias Nyman
2021-04-29  1:00       ` Thinh Nguyen
2021-04-10  0:47   ` [PATCH v2 7/7] usb: dwc3: host: Set quirks base on version Thinh Nguyen
2021-04-19 21:07   ` [PATCH v2 0/7] usb: Set quirks for xhci/dwc3 host mode Thinh Nguyen

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=fbc6c921-114b-ed0b-ed68-b425e09e3e9b@synopsys.com \
    --to=thinh.nguyen@synopsys.com \
    --cc=John.Youn@synopsys.com \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    /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

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org
	public-inbox-index linux-usb

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git