int __init SMC93x_Init(void) { unsigned long SMCUltraBase; unsigned long flags; __save_and_cli(flags); if ((SMCUltraBase = SMCDetectUltraIO()) != 0UL) { #if SMC_DEBUG SMCReportDeviceStatus(SMCUltraBase); #endif SMCEnableDevice(SMCUltraBase, SER1, COM1_BASE, COM1_INTERRUPT); DBG_DEVS(("SMC FDC37C93X: SER1 done\n")); SMCEnableDevice(SMCUltraBase, SER2, COM2_BASE, COM2_INTERRUPT); DBG_DEVS(("SMC FDC37C93X: SER2 done\n")); SMCEnableDevice(SMCUltraBase, PARP, PARP_BASE, PARP_INTERRUPT); DBG_DEVS(("SMC FDC37C93X: PARP done\n")); /* On PC164, IDE on the SMC is not enabled; CMD646 (PCI) on MB */ SMCEnableKYBD(SMCUltraBase); DBG_DEVS(("SMC FDC37C93X: KYB done\n")); SMCEnableFDC(SMCUltraBase); DBG_DEVS(("SMC FDC37C93X: FDC done\n")); #if SMC_DEBUG SMCReportDeviceStatus(SMCUltraBase); #endif SMCRunState(SMCUltraBase); __restore_flags(flags); printk("SMC FDC37C93X Ultra I/O Controller found @ 0x%lx\n", SMCUltraBase); return 1; } else { __restore_flags(flags); DBG_DEVS(("No SMC FDC37C93X Ultra I/O Controller found\n")); return 0; } }
int __init SMC93x_Init(void) { unsigned long SMCUltraBase; unsigned long flags; local_irq_save(flags); if ((SMCUltraBase = SMCDetectUltraIO()) != 0UL) { #if SMC_DEBUG SMCReportDeviceStatus(SMCUltraBase); #endif SMCEnableDevice(SMCUltraBase, SER1, COM1_BASE, COM1_INTERRUPT); DBG_DEVS(("SMC FDC37C93X: SER1 done\n")); SMCEnableDevice(SMCUltraBase, SER2, COM2_BASE, COM2_INTERRUPT); DBG_DEVS(("SMC FDC37C93X: SER2 done\n")); SMCEnableDevice(SMCUltraBase, PARP, PARP_BASE, PARP_INTERRUPT); DBG_DEVS(("SMC FDC37C93X: PARP done\n")); /* */ SMCEnableKYBD(SMCUltraBase); DBG_DEVS(("SMC FDC37C93X: KYB done\n")); SMCEnableFDC(SMCUltraBase); DBG_DEVS(("SMC FDC37C93X: FDC done\n")); #if SMC_DEBUG SMCReportDeviceStatus(SMCUltraBase); #endif SMCRunState(SMCUltraBase); local_irq_restore(flags); printk("SMC FDC37C93X Ultra I/O Controller found @ 0x%lx\n", SMCUltraBase); return 1; } else { local_irq_restore(flags); DBG_DEVS(("No SMC FDC37C93X Ultra I/O Controller found\n")); return 0; } }