|
@@ -4403,7 +4403,7 @@ advansys_detect(struct scsi_host_template *tpnt)
|
|
ASC_DBG1(1,
|
|
ASC_DBG1(1,
|
|
"advansys_detect: probing I/O port 0x%x...\n",
|
|
"advansys_detect: probing I/O port 0x%x...\n",
|
|
iop);
|
|
iop);
|
|
- if (check_region(iop, ASC_IOADR_GAP) != 0) {
|
|
|
|
|
|
+ if (!request_region(iop, ASC_IOADR_GAP, "advansys")){
|
|
printk(
|
|
printk(
|
|
"AdvanSys SCSI: specified I/O Port 0x%X is busy\n", iop);
|
|
"AdvanSys SCSI: specified I/O Port 0x%X is busy\n", iop);
|
|
/* Don't try this I/O port twice. */
|
|
/* Don't try this I/O port twice. */
|
|
@@ -4413,6 +4413,7 @@ advansys_detect(struct scsi_host_template *tpnt)
|
|
printk(
|
|
printk(
|
|
"AdvanSys SCSI: specified I/O Port 0x%X has no adapter\n", iop);
|
|
"AdvanSys SCSI: specified I/O Port 0x%X has no adapter\n", iop);
|
|
/* Don't try this I/O port twice. */
|
|
/* Don't try this I/O port twice. */
|
|
|
|
+ release_region(iop, ASC_IOADR_GAP);
|
|
asc_ioport[ioport] = 0;
|
|
asc_ioport[ioport] = 0;
|
|
goto ioport_try_again;
|
|
goto ioport_try_again;
|
|
} else {
|
|
} else {
|
|
@@ -4431,6 +4432,7 @@ advansys_detect(struct scsi_host_template *tpnt)
|
|
* 'ioport' past this board.
|
|
* 'ioport' past this board.
|
|
*/
|
|
*/
|
|
ioport++;
|
|
ioport++;
|
|
|
|
+ release_region(iop, ASC_IOADR_GAP);
|
|
goto ioport_try_again;
|
|
goto ioport_try_again;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -9740,13 +9742,14 @@ AscSearchIOPortAddr11(
|
|
}
|
|
}
|
|
for (; i < ASC_IOADR_TABLE_MAX_IX; i++) {
|
|
for (; i < ASC_IOADR_TABLE_MAX_IX; i++) {
|
|
iop_base = _asc_def_iop_base[i];
|
|
iop_base = _asc_def_iop_base[i];
|
|
- if (check_region(iop_base, ASC_IOADR_GAP) != 0) {
|
|
|
|
|
|
+ if (!request_region(iop_base, ASC_IOADR_GAP, "advansys")){
|
|
ASC_DBG1(1,
|
|
ASC_DBG1(1,
|
|
"AscSearchIOPortAddr11: check_region() failed I/O port 0x%x\n",
|
|
"AscSearchIOPortAddr11: check_region() failed I/O port 0x%x\n",
|
|
iop_base);
|
|
iop_base);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
ASC_DBG1(1, "AscSearchIOPortAddr11: probing I/O port 0x%x\n", iop_base);
|
|
ASC_DBG1(1, "AscSearchIOPortAddr11: probing I/O port 0x%x\n", iop_base);
|
|
|
|
+ release_region(iop_base, ASC_IOADR_GAP);
|
|
if (AscFindSignature(iop_base)) {
|
|
if (AscFindSignature(iop_base)) {
|
|
return (iop_base);
|
|
return (iop_base);
|
|
}
|
|
}
|