usb:xhci:Fix regression when ATI chipsets detected
commit e6b422b88b46353cf596e0db6dc0e39d50d90d6e upstream. 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. Reported-by: Ben Hutchings <ben@decadent.org.uk> Fixes: e788787ef4f9 ("usb:xhci:Add quirk for Certain failing HP keyboard on reset after resume") cc: Nehal Shah <Nehal-bakulchandra.Shah@amd.com> Signed-off-by: Sandeep Singh <Sandeep.Singh@amd.com> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b3e92cd7a8
commit
9f1d78c62a
1 changed files with 18 additions and 17 deletions
|
@ -133,29 +133,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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue