linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Enable trust tx length quirk for Fresco FL11 USB controller
@ 2021-10-03  0:14 Nikolay Martynov
  2021-10-04  8:38 ` Mathias Nyman
  2021-12-14 14:16 ` Mathias Nyman
  0 siblings, 2 replies; 4+ messages in thread
From: Nikolay Martynov @ 2021-10-03  0:14 UTC (permalink / raw)
  To: mathias.nyman, linux-usb; +Cc: Nikolay Martynov

Tested on SD5200T TB3 dock which has Fresco Logic FL1100 USB 3.0 Host
Controller.
Before this patch streaming video from USB cam made mouse and keyboard
connected to the same USB bus unusable. Also video was jerky.
With this patch streaming video doesn't have any effect on other
periferals and video is smooth.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
---
 drivers/usb/host/xhci-pci.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 2c9f25ca8edd..2175fac2f259 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -30,6 +30,7 @@
 #define PCI_VENDOR_ID_FRESCO_LOGIC	0x1b73
 #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK	0x1000
 #define PCI_DEVICE_ID_FRESCO_LOGIC_FL1009	0x1009
+#define PCI_DEVICE_ID_FRESCO_LOGIC_FL1100	0x1100
 #define PCI_DEVICE_ID_FRESCO_LOGIC_FL1400	0x1400
 
 #define PCI_VENDOR_ID_ETRON		0x1b6f
@@ -113,6 +114,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 	/* Look for vendor-specific quirks */
 	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
 			(pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK ||
+			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1100 ||
 			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1400)) {
 		if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
 				pdev->revision == 0x0) {
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] Enable trust tx length quirk for Fresco FL11 USB controller
  2021-10-03  0:14 [PATCH] Enable trust tx length quirk for Fresco FL11 USB controller Nikolay Martynov
@ 2021-10-04  8:38 ` Mathias Nyman
  2021-12-14 14:16 ` Mathias Nyman
  1 sibling, 0 replies; 4+ messages in thread
From: Mathias Nyman @ 2021-10-04  8:38 UTC (permalink / raw)
  To: Nikolay Martynov, mathias.nyman, linux-usb

On 3.10.2021 3.14, Nikolay Martynov wrote:
> Tested on SD5200T TB3 dock which has Fresco Logic FL1100 USB 3.0 Host
> Controller.
> Before this patch streaming video from USB cam made mouse and keyboard
> connected to the same USB bus unusable. Also video was jerky.
> With this patch streaming video doesn't have any effect on other
> periferals and video is smooth.
> 
> Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
> ---
>  drivers/usb/host/xhci-pci.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index 2c9f25ca8edd..2175fac2f259 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
> @@ -30,6 +30,7 @@
>  #define PCI_VENDOR_ID_FRESCO_LOGIC	0x1b73
>  #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK	0x1000
>  #define PCI_DEVICE_ID_FRESCO_LOGIC_FL1009	0x1009
> +#define PCI_DEVICE_ID_FRESCO_LOGIC_FL1100	0x1100
>  #define PCI_DEVICE_ID_FRESCO_LOGIC_FL1400	0x1400
>  
>  #define PCI_VENDOR_ID_ETRON		0x1b6f
> @@ -113,6 +114,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
>  	/* Look for vendor-specific quirks */
>  	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
>  			(pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK ||
> +			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1100 ||
>  			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1400)) {
>  		if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
>  				pdev->revision == 0x0) {
> 

Thanks, adding to queue, and and adding "xhci:" to changelog header

-Mathias

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] Enable trust tx length quirk for Fresco FL11 USB controller
  2021-10-03  0:14 [PATCH] Enable trust tx length quirk for Fresco FL11 USB controller Nikolay Martynov
  2021-10-04  8:38 ` Mathias Nyman
@ 2021-12-14 14:16 ` Mathias Nyman
  2021-12-14 14:26   ` [RFT PATCH] xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set Mathias Nyman
  1 sibling, 1 reply; 4+ messages in thread
From: Mathias Nyman @ 2021-12-14 14:16 UTC (permalink / raw)
  To: Nikolay Martynov, mathias.nyman, linux-usb

On 3.10.2021 3.14, Nikolay Martynov wrote:
> Tested on SD5200T TB3 dock which has Fresco Logic FL1100 USB 3.0 Host
> Controller.
> Before this patch streaming video from USB cam made mouse and keyboard
> connected to the same USB bus unusable. Also video was jerky.
> With this patch streaming video doesn't have any effect on other
> periferals and video is smooth.
> 
> Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
> ---
>  drivers/usb/host/xhci-pci.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
> index 2c9f25ca8edd..2175fac2f259 100644
> --- a/drivers/usb/host/xhci-pci.c
> +++ b/drivers/usb/host/xhci-pci.c
> @@ -30,6 +30,7 @@
>  #define PCI_VENDOR_ID_FRESCO_LOGIC	0x1b73
>  #define PCI_DEVICE_ID_FRESCO_LOGIC_PDK	0x1000
>  #define PCI_DEVICE_ID_FRESCO_LOGIC_FL1009	0x1009
> +#define PCI_DEVICE_ID_FRESCO_LOGIC_FL1100	0x1100
>  #define PCI_DEVICE_ID_FRESCO_LOGIC_FL1400	0x1400
>  
>  #define PCI_VENDOR_ID_ETRON		0x1b6f
> @@ -113,6 +114,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
>  	/* Look for vendor-specific quirks */
>  	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
>  			(pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK ||
> +			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1100 ||
>  			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1400)) {
>  		if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
>  				pdev->revision == 0x0)


I'm getting reports that this patch causes issues detecting usb drives connected to a dock
with this Fresco FL1100 xHC.

This patch adds both XHCI_TRUST_TX_LENGTH and XHCI_BROKEN_MSI quirks, which was probably
not intended. Removing the BROKEN_MSI quirk solved the issue.

Does you setup work normally with just TRUST_TX_LENGTH quirk?  

-Mathias

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [RFT PATCH] xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set.
  2021-12-14 14:16 ` Mathias Nyman
@ 2021-12-14 14:26   ` Mathias Nyman
  0 siblings, 0 replies; 4+ messages in thread
From: Mathias Nyman @ 2021-12-14 14:26 UTC (permalink / raw)
  To: mar.kolya; +Cc: linux-usb, Mathias Nyman

The Fresco Logic FL1100 controller needs the TRUST_TX_LENGTH quirk like
other Fresco controllers, but should not have the BROKEN_MSI quirks set.

BROKEN_MSI caused issues detecting usb drives connected to docks
with this FL1100 controller.

Fixes: ea0f69d82119 ("xhci: Enable trust tx length quirk for Fresco FL11 USB controller")
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
---
 drivers/usb/host/xhci-pci.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 92adf6107864..f2d4497fe8a6 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -121,7 +121,6 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 	/* Look for vendor-specific quirks */
 	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
 			(pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK ||
-			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1100 ||
 			 pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1400)) {
 		if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK &&
 				pdev->revision == 0x0) {
@@ -156,6 +155,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
 			pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1009)
 		xhci->quirks |= XHCI_BROKEN_STREAMS;
 
+	if (pdev->vendor == PCI_VENDOR_ID_FRESCO_LOGIC &&
+			pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_FL1100)
+		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
+
 	if (pdev->vendor == PCI_VENDOR_ID_NEC)
 		xhci->quirks |= XHCI_NEC_HOST;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-12-14 14:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-03  0:14 [PATCH] Enable trust tx length quirk for Fresco FL11 USB controller Nikolay Martynov
2021-10-04  8:38 ` Mathias Nyman
2021-12-14 14:16 ` Mathias Nyman
2021-12-14 14:26   ` [RFT PATCH] xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set Mathias Nyman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).