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 svens@stackframe.org Acked-by: Peter Stuge peter@stuge.se
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 = {