patch "usb:xhci:Fix regression when ATI chipsets detected" added to usb-testing
Subsystems (3)
This is a note to let you know that I've just added the patch titled
usb:xhci:Fix regression when ATI chipsets detected
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-testing branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will be merged to the usb-next branch sometime soon, after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
Quoted 1 line
From
e6b422b88b46353cf596e0db6dc0e39d50d90d6eMon Sep 17 00:00:00 2001
From: Sandeep Singh <[email protected]>
Date: Thu, 24 Aug 2017 09:57:15 +0530
Subject: usb:xhci:Fix regression when ATI chipsets detected
The following commit cause a regression on ATI chipsets. 'commit e788787ef4f9 ("usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume")'
This causes pinfo->smbus_dev to be wrongly set to NULL on systems with the ATI chipset that this function checks for first.
Added conditional check for AMD chipsets to avoid the overwriting pinfo->smbus_dev.
failing HP keyboard on reset after resume")
--- drivers/usb/host/pci-quirks.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-)
drivers/usb/host/pci-quirks.c +18 -17
@@ -142,29 +142,30 @@ static int amd_chipset_sb_type_init(struct amd_chipset_info *pinfo) pinfo->sb_type.gen =AMD_CHIPSET_SB700 ; else if (rev >= 0x40 && rev <= 0x4f) pinfo->sb_type.gen =AMD_CHIPSET_SB800 ; - } - pinfo->smbus_dev =pci_get_device (PCI_VENDOR_ID_AMD , -0x145c ,NULL ); -if (pinfo->smbus_dev) { - pinfo->sb_type.gen =AMD_CHIPSET_TAISHAN ; }else { pinfo->smbus_dev =pci_get_device (PCI_VENDOR_ID_AMD ,PCI_DEVICE_ID_AMD_HUDSON2_SMBUS ,NULL ); -if (!pinfo->smbus_dev) { - pinfo->sb_type.gen =NOT_AMD_CHIPSET ; -return 0 ; +if (pinfo->smbus_dev) { + rev = pinfo->smbus_dev->revision; +if (rev >=0x11 && rev <=0x14 ) + pinfo->sb_type.gen =AMD_CHIPSET_HUDSON2 ; +else if (rev >=0x15 && rev <=0x18 ) + pinfo->sb_type.gen =AMD_CHIPSET_BOLTON ; +else if (rev >=0x39 && rev <=0x3a ) + pinfo->sb_type.gen =AMD_CHIPSET_YANGTZE ; + }else { + pinfo->smbus_dev =pci_get_device (PCI_VENDOR_ID_AMD , +0x145c ,NULL ); +if (pinfo->smbus_dev) { + rev = pinfo->smbus_dev->revision; + pinfo->sb_type.gen =AMD_CHIPSET_TAISHAN ; + }else { + pinfo->sb_type.gen =NOT_AMD_CHIPSET ; +return 0 ; + } } - - rev = pinfo->smbus_dev->revision; -if (rev >=0x11 && rev <=0x14 ) - pinfo->sb_type.gen =AMD_CHIPSET_HUDSON2 ; -else if (rev >=0x15 && rev <=0x18 ) - pinfo->sb_type.gen =AMD_CHIPSET_BOLTON ; -else if (rev >=0x39 && rev <=0x3a ) - pinfo->sb_type.gen =AMD_CHIPSET_YANGTZE ; } - pinfo->sb_type.rev = rev;return 1 ; }
Signature · 1 line
2.14.1