El mar, 17-09-2024 a las 22:45 +0200, Greg KH escribió: > On Tue, Sep 17, 2024 at 08:47:43PM +0200, Jose Alberto Reguero wrote: > > I have a ASUS PN51 S mini pc that has two xhci devices. One from > > AMD, > > and other from ASMEDIA. The one from ASMEDIA have problems when > > resume > > from suspend, and keep broken until unplug the power cord. I use > > this > > kernel parameter: xhci-hcd.quirks=128 and then it works ok. I make > > a > > path to reset only the ASMEDIA xhci. > > > > > > Signed-off-by: Jose Alberto Reguero > > <jose.alberto.reguero@xxxxxxxxx> > > > > diff -ur linux-6.10.8/drivers/usb/host/xhci-pci.c > > linux-6.10.8.new/drivers/usb/host/xhci-pci.c > > --- linux-6.10.8/drivers/usb/host/xhci-pci.c 2024-09-04 > > 13:30:16.000000000 +0200 > > +++ linux-6.10.8.new/drivers/usb/host/xhci-pci.c 2024-09-12 > > 19:37:14.378870385 +0200 > > @@ -76,6 +76,7 @@ > > #define PCI_DEVICE_ID_ASMEDIA_1042A_XHCI 0x1142 > > #define PCI_DEVICE_ID_ASMEDIA_1142_XHCI 0x1242 > > #define PCI_DEVICE_ID_ASMEDIA_2142_XHCI 0x2142 > > +#define PCI_DEVICE_ID_ASMEDIA_3042_XHCI 0x3042 > > #define PCI_DEVICE_ID_ASMEDIA_3242_XHCI 0x3242 > > > > static const char hcd_name[] = "xhci_hcd"; > > @@ -447,6 +448,10 @@ > > pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) > > xhci->quirks |= XHCI_ASMEDIA_MODIFY_FLOWCONTROL; > > > > + if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && > > + pdev->device == PCI_DEVICE_ID_ASMEDIA_3042_XHCI) > > + xhci->quirks |= XHCI_RESET_ON_RESUME; > > Something went wrong with the whitespace here, can you try sending it > again? You can't use cut/paste from a web client for patches, the > email > documentation should explain how to do this properly from gmail if > you > have problems. > > thanks, > > greg k-h Sorry, submit it again. Hope this time is alright. Jose Alberto Reguero diff -ur linux-6.10.8/drivers/usb/host/xhci-pci.c linux- 6.10.8.new/drivers/usb/host/xhci-pci.c --- linux-6.10.8/drivers/usb/host/xhci-pci.c 2024-09-04 13:30:16.000000000 +0200 +++ linux-6.10.8.new/drivers/usb/host/xhci-pci.c 2024-09-12 19:37:14.378870385 +0200 @@ -76,6 +76,7 @@ #define PCI_DEVICE_ID_ASMEDIA_1042A_XHCI 0x1142 #define PCI_DEVICE_ID_ASMEDIA_1142_XHCI 0x1242 #define PCI_DEVICE_ID_ASMEDIA_2142_XHCI 0x2142 +#define PCI_DEVICE_ID_ASMEDIA_3042_XHCI 0x3042 #define PCI_DEVICE_ID_ASMEDIA_3242_XHCI 0x3242 static const char hcd_name[] = "xhci_hcd"; @@ -447,6 +448,10 @@ pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) xhci->quirks |= XHCI_ASMEDIA_MODIFY_FLOWCONTROL; + if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && + pdev->device == PCI_DEVICE_ID_ASMEDIA_3042_XHCI) + xhci->quirks |= XHCI_RESET_ON_RESUME; + if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241) xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7;