On 14.02.2008 23:32, ron minnich wrote:
On Thu, Feb 14, 2008 at 2:32 PM, Carl-Daniel Hailfinger
Indeed. That would solve the problem very nicely without putting hacks into the dts.
OK, so we put nodes under the 5536, and specify 'disabled', and the 5536 code knows to actually call VSA when it sees that they are disabled. This is nice. It would use the device tree in a sensible way.
Factor out Geode LX VPCI device disabling into a separate function which consumes one device at a time. This helps avoid array handling in the dts and allows us to use generic disabling infrastructure.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: LinuxBIOSv3-unwantedvpci/southbridge/amd/cs5536/cs5536.c =================================================================== --- LinuxBIOSv3-unwantedvpci/southbridge/amd/cs5536/cs5536.c (Revision 599) +++ LinuxBIOSv3-unwantedvpci/southbridge/amd/cs5536/cs5536.c (Arbeitskopie) @@ -570,6 +570,14 @@ }
+static void disable_vpci(u32 vpci) +{ + /* Disable unwanted virtual PCI device. */ + printk(BIOS_DEBUG, "Disabling VPCI device: 0x%08X\n", vpci); + outl(vpci + 0x7C, 0xCF8); + outl(0xDEADBEEF, 0xCFC); +} + /** * TODO. * @@ -608,16 +616,6 @@ if (sb->enable_ide) ide_init(dev);
-#warning Add back in unwanted VPCI support -#if 0 - /* Disable unwanted virtual PCI devices. */ - for (i = 0; (i < MAX_UNWANTED_VPCI) && (0 != sb->unwanted_vpci[i]); i++) { - printk(BIOS_DEBUG, "Disabling VPCI device: 0x%08X\n", - sb->unwanted_vpci[i]); - outl(sb->unwanted_vpci[i] + 0x7C, 0xCF8); - outl(0xDEADBEEF, 0xCFC); - } -#endif printk(BIOS_SPEW, "cs5536: %s() Exit\n", __FUNCTION__); }