While poking around trying to get VGA working, I did a grep for '3123', and I found this. Notice how the variable 'north' is assigned to the result of the 'pci_locate_device' call, then immediately re-assigned to zero ... and then used. Is this correct?
static void ddr_ram_setup(const struct mem_controller *ctrl) { device_t north = (device_t) 0; uint8_t b, c, bank; uint16_t i,j; unsigned long bank_address;
print_debug("vt8623 init starting\r\n"); north = pci_locate_device(PCI_ID(0x1106, 0x3123), 0); north = 0;
pci_write_config8(north,0x75,0x08);
...
}