*** ./ide-cs.c Sun Sep 9 17:35:01 2001 --- /usr/src/linux/drivers/ide/ide-cs.c Sun Sep 16 08:15:36 2001 *************** int idecs_register (int arg1, int arg2, *** 233,238 **** --- 233,245 ---- return ide_register_hw(&hw, NULL); } + + extern int ide_disable_irq_on_probe; + void ide_config(dev_link_t *link) { client_handle_t handle = link->handle; *************** void ide_config(dev_link_t *link) *** 334,339 **** --- 341,351 ---- if (link->io.NumPorts2) release_region(link->io.BasePort2, link->io.NumPorts2); + ide_disable_irq_on_probe = 1; + outb(0x02, ctl_base); // Set nIEN = disable device interrupts /* retry registration in case device is still spinning up */ *************** void ide_config(dev_link_t *link) *** 352,357 **** --- 364,375 ---- schedule_timeout(HZ/10); } + ide_disable_irq_on_probe = 0; + if (hd < 0) { printk(KERN_NOTICE "ide_cs: ide_register() at 0x%03x & 0x%03x" ", irq %u failed\n", io_base, ctl_base,