ide-generic: manage I/O resources in driver
* Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
d083c03f25
commit
1664949843
1 changed files with 19 additions and 2 deletions
|
@ -94,7 +94,24 @@ static int __init ide_generic_init(void)
|
||||||
unsigned long io_addr = ide_default_io_base(i);
|
unsigned long io_addr = ide_default_io_base(i);
|
||||||
hw_regs_t hw;
|
hw_regs_t hw;
|
||||||
|
|
||||||
|
idx[i] = 0xff;
|
||||||
|
|
||||||
if (io_addr) {
|
if (io_addr) {
|
||||||
|
if (!request_region(io_addr, 8, DRV_NAME)) {
|
||||||
|
printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX "
|
||||||
|
"not free.\n",
|
||||||
|
DRV_NAME, io_addr, io_addr + 7);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!request_region(io_addr + 0x206, 1, DRV_NAME)) {
|
||||||
|
printk(KERN_ERR "%s: I/O resource 0x%lX "
|
||||||
|
"not free.\n",
|
||||||
|
DRV_NAME, io_addr + 0x206);
|
||||||
|
release_region(io_addr, 8);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Skip probing if the corresponding
|
* Skip probing if the corresponding
|
||||||
* slot is already occupied.
|
* slot is already occupied.
|
||||||
|
@ -109,10 +126,10 @@ static int __init ide_generic_init(void)
|
||||||
ide_std_init_ports(&hw, io_addr, io_addr + 0x206);
|
ide_std_init_ports(&hw, io_addr, io_addr + 0x206);
|
||||||
hw.irq = ide_default_irq(io_addr);
|
hw.irq = ide_default_irq(io_addr);
|
||||||
ide_init_port_hw(hwif, &hw);
|
ide_init_port_hw(hwif, &hw);
|
||||||
|
hwif->mmio = 1;
|
||||||
|
|
||||||
idx[i] = i;
|
idx[i] = i;
|
||||||
} else
|
}
|
||||||
idx[i] = 0xff;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ide_device_add_all(idx, NULL);
|
ide_device_add_all(idx, NULL);
|
||||||
|
|
Loading…
Add table
Reference in a new issue