aboutsummaryrefslogtreecommitdiff
path: root/src/southbridge
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge')
-rw-r--r--src/southbridge/amd/agesa/hudson/hudson.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/southbridge/amd/agesa/hudson/hudson.c b/src/southbridge/amd/agesa/hudson/hudson.c
index cafd6c6c18..2bc3bc9aaf 100644
--- a/src/southbridge/amd/agesa/hudson/hudson.c
+++ b/src/southbridge/amd/agesa/hudson/hudson.c
@@ -85,6 +85,21 @@ void hudson_enable(device_t dev)
{
printk(BIOS_DEBUG, "hudson_enable()\n");
switch (dev->path.pci.devfn) {
+ case PCI_DEVFN(0x14, 5):
+ if (dev->enabled == 0) {
+ // read the VENDEV ID
+ device_t usb_dev = dev_find_slot( 0, PCI_DEVFN( 0x14, 5));
+ u32 usb_device_id = pci_read_config32(usb_dev, 0) >> 16;
+ u8 reg8;
+ if (usb_device_id == PCI_DEVICE_ID_ATI_SB900_USB_20_5) {
+ /* turn off and remove device 0:14.5 from PCI space */
+ reg8 = pm_read8(0xef);
+ reg8 &= ~(1 << 6);
+ pm_write8(0xef, reg8);
+ }
+ }
+ break;
+
case PCI_DEVFN(0x14, 7):
if (dev->enabled == 0) {
// read the VENDEV ID