I add some lines in amd8111, if USB2 is disabled, it will don't touch 0x48, only touch 0x47.
if ((dev->vendor == PCI_VENDOR_ID_AMD) && (dev->device == PCI_DEVICE_ID_AMD_8111_USB2)) { if(!dev->enabled) { byte = pci_read_config8(lpc_dev, 0x47); byte |= (1<<7); pci_write_config8(lpc_dev, 0x47, byte); return; }
}
reg = reg_old = pci_read_config16(lpc_dev, 0x48); reg &= ~(1 << index); if (dev->enabled) { reg |= (1 << index); } if (reg != reg_old) { pci_write_config16(lpc_dev, 0x48, reg); }
-----邮件原件----- 发件人: Li-Ta Lo [mailto:ollie@lanl.gov] 发送时间: 2004年5月5日 10:28 收件人: YhLu 抄送: ron minnich; Stefan Reinauer; LinuxBIOS 主题: Re: 答复: 答复: 答复: Disable USB2 in AMD8111 and remove ide hardcode io addr
On Wed, 2004-05-05 at 10:51, YhLu wrote:
If I changed config.lb PCI 1:0.2 on --> PCI 1:0.2 off The PCI 1:0.0 and PCI 1:0.1 will be disabled together.
According to AMD 8111 data sheet, LPC 0x48, only can be disabled the
device
in second bus by device num, and the three USB share one device number.
So I guess the code about 0x47 must be there.
Ron and I just dicurssed about the enable/disable mechanism for amd8111. We are going to implement a slightly better one soon.
Actually, the enable/disable for devices in amd8111 is multiplexed in amd8111_enable and the device_operation::enable() is directed to amd8111_enable. We are going to demultiplex this and each devices has its own "real" enable method.
Ollie