#include #include #include #include #include #include #include "chip.h" static void init(struct device *dev) { struct mainboard_config *mainboard = (struct mainboard_config*)dev->chip_info; device_t nic = NULL; unsigned bus = 0; unsigned devfn = PCI_DEVFN(0xd, 0); int nicirq = 1; if (mainboard->nicirq) nicirq = mainboard->nicirq; printk_debug("AMD RUMBA ENTER %s\n", __func__); if (nicirq) { printk_debug("%s (%x,%x)SET PCI interrupt line to %d\n", __func__, bus, devfn, nicirq); nic = dev_find_slot(bus, devfn); if (! nic){ printk_err("Could not find NIC\n"); } else { pci_write_config8(nic, PCI_INTERRUPT_LINE, nicirq); } } printk_debug("AMD RUMBA EXIT %s\n", __func__); } static void enable_dev(struct device *dev) { dev->ops->init = init; } struct chip_operations mainboard_ops = { CHIP_NAME("AMD Rumba Mainboard") .enable_dev = enable_dev, };