Author: svens
Date: Mon Feb 28 19:09:58 2011
New Revision: 6412
URL: https://tracker.coreboot.org/trac/coreboot/changeset/6412

Log:
add functions to set Subsystem Vendor/Device to rl5c746

Signed-off-by: Sven Schnelle <[email protected]>
Acked-by: Peter Stuge <[email protected]>

Modified:
   trunk/src/southbridge/ricoh/rl5c476/rl5c476.c

Modified: trunk/src/southbridge/ricoh/rl5c476/rl5c476.c
==============================================================================
--- trunk/src/southbridge/ricoh/rl5c476/rl5c476.c       Mon Feb 28 04:59:34 
2011        (r6411)
+++ trunk/src/southbridge/ricoh/rl5c476/rl5c476.c       Mon Feb 28 19:09:58 
2011        (r6412)
@@ -198,12 +198,29 @@
 
 }
 
+static void rl5c476_set_subsystem(device_t dev, unsigned vendor, unsigned 
device)
+{
+       u16 miscreg = pci_read_config16(dev, 0x82);
+       /* Enable subsystem id register writes */
+       pci_write_config16(dev, 0x82, miscreg | 0x40);
+
+       pci_write_config16(dev, 0x40, vendor);
+       pci_write_config16(dev, 0x42, device);
+       /* restore original contents */
+       pci_write_config16(dev, 0x82, miscreg);
+}
+
+static struct pci_operations rl5c476_pci_ops = {
+       .set_subsystem    = rl5c476_set_subsystem,
+};
+
 static struct device_operations ricoh_rl5c476_ops = {
        .read_resources   = rl5c476_read_resources,
        .set_resources    = rl5c476_set_resources,
        .enable_resources = cardbus_enable_resources,
        .init             = rl5c476_init,
        .scan_bus         = pci_scan_bridge,
+       .ops_pci          = &rl5c476_pci_ops,
 };
 
 static const struct pci_driver ricoh_rl5c476_driver __pci_driver = {

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to