static void __init malta_fixup(void) { #ifdef CONFIG_MIPS_MALTA struct pci_dev *pdev; unsigned char reg_val; pci_for_each_dev(pdev) { if ((pdev->vendor == PCI_VENDOR_ID_INTEL) && (pdev->device == PCI_DEVICE_ID_INTEL_82371AB) && (PCI_SLOT(pdev->devfn) == 0x0a)) { /* * IDE Decode enable. */ pci_read_config_byte(pdev, 0x41, ®_val); pci_write_config_byte(pdev, 0x41, reg_val | 0x80); pci_read_config_byte(pdev, 0x43, ®_val); pci_write_config_byte(pdev, 0x43, reg_val | 0x80); } if ((pdev->vendor == PCI_VENDOR_ID_INTEL) && (pdev->device == PCI_DEVICE_ID_INTEL_82371AB_0) && (PCI_SLOT(pdev->devfn) == 0x0a)) { /* * Set top of main memory accessible by ISA or DMA * devices to 16 Mb. */ pci_read_config_byte(pdev, 0x69, ®_val); pci_write_config_byte(pdev, 0x69, reg_val | 0xf0); } } /* * Activate Floppy Controller in the SMSC FDC37M817 Super I/O * Controller. * This should be done in the bios/bootprom and will be fixed in * a later revision of YAMON (the MIPS boards boot prom). */ /* Entering config state. */ SMSC_WRITE(SMSC_CONFIG_ENTER, SMSC_CONFIG_REG); /* Activate floppy controller. */ SMSC_WRITE(SMSC_CONFIG_DEVNUM, SMSC_CONFIG_REG); SMSC_WRITE(SMSC_CONFIG_DEVNUM_FLOPPY, SMSC_DATA_REG); SMSC_WRITE(SMSC_CONFIG_ACTIVATE, SMSC_CONFIG_REG); SMSC_WRITE(SMSC_CONFIG_ACTIVATE_ENABLE, SMSC_DATA_REG); /* Exit config state. */ SMSC_WRITE(SMSC_CONFIG_EXIT, SMSC_CONFIG_REG); #endif }
static void __init fd_activate(void) { /* * Activate Floppy Controller in the SMSC FDC37M817 Super I/O * Controller. * Done by YAMON 2.00 onwards */ /* Entering config state. */ SMSC_WRITE(SMSC_CONFIG_ENTER, SMSC_CONFIG_REG); /* Activate floppy controller. */ SMSC_WRITE(SMSC_CONFIG_DEVNUM, SMSC_CONFIG_REG); SMSC_WRITE(SMSC_CONFIG_DEVNUM_FLOPPY, SMSC_DATA_REG); SMSC_WRITE(SMSC_CONFIG_ACTIVATE, SMSC_CONFIG_REG); SMSC_WRITE(SMSC_CONFIG_ACTIVATE_ENABLE, SMSC_DATA_REG); /* Exit config state. */ SMSC_WRITE(SMSC_CONFIG_EXIT, SMSC_CONFIG_REG); }