| From e4844092581ceec22489b66c42edc88bc6079783 Mon Sep 17 00:00:00 2001 |
| From: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Date: Tue, 21 Dec 2021 13:28:25 +0200 |
| Subject: xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set. |
| |
| From: Mathias Nyman <mathias.nyman@linux.intel.com> |
| |
| commit e4844092581ceec22489b66c42edc88bc6079783 upstream. |
| |
| 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 quirk causes issues in detecting usb drives connected to docks |
| with this FL1100 controller. |
| The BROKEN_MSI flag was apparently accidentally set together with the |
| TRUST_TX_LENGTH quirk |
| |
| Original patch went to stable so this should go there as well. |
| |
| Fixes: ea0f69d82119 ("xhci: Enable trust tx length quirk for Fresco FL11 USB controller") |
| Cc: stable@vger.kernel.org |
| cc: Nikolay Martynov <mar.kolya@gmail.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Link: https://lore.kernel.org/r/20211221112825.54690-2-mathias.nyman@linux.intel.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/host/xhci-pci.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/host/xhci-pci.c |
| +++ b/drivers/usb/host/xhci-pci.c |
| @@ -90,7 +90,6 @@ static void xhci_pci_quirks(struct devic |
| /* 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) { |
| @@ -125,6 +124,10 @@ static void xhci_pci_quirks(struct devic |
| 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; |
| |