--- drivers/block/ide-pc9800.c.orig Thu Nov 2 16:04:34 2000 +++ drivers/block/ide-pc9800.c Thu Nov 2 16:31:45 2000 @@ -138,16 +138,18 @@ */ __initfunc(void ide_probe_for_pc9800 (void)) { - if (!PC9800_9821_P () || !PC9821_IDEIF_DOUBLE_P ()){ - printk("ide-pc9800: not found\n"); + if(check_region(IDE_PC9800_IO_BANKSELECT, 1) < 0) { + printk("I/O 0x%x has already been used!\n",IDE_PC9800_IO_BANKSELECT); return; } + request_region(IDE_PC9800_IO_BANKSELECT, 1, "ide-pc9800 bank select"); - if(check_region(IDE_PC9800_IO_BANKSELECT, -3) < 0) { - printk("I/O 0x%x has already been used!\n",IDE_PC9800_IO_BANKSELECT); + ide_pc9800_change_bank(1); + if (ide_pc9800_get_bank() != 1) + return; + ide_pc9800_change_bank(0); + if (ide_pc9800_get_bank() != 0) return; - } - request_region(IDE_PC9800_IO_BANKSELECT, -3, "ide-pc9800 bank select"); /* * Initialize data for primary port