ide: factor out code initializing devices from ide_init_port()
* Factor out code initializing devices from ide_init_port() to ide_port_init_devices(). * Call the new function from ide_device_add_all(). There should be no functionality changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
909f4369bc
commit
7704ca2a3e
@ -1289,6 +1289,22 @@ static void hwif_register_devices(ide_hwif_t *hwif)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ide_port_init_devices(ide_hwif_t *hwif)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < MAX_DRIVES; i++) {
|
||||||
|
ide_drive_t *drive = &hwif->drives[i];
|
||||||
|
|
||||||
|
if (hwif->host_flags & IDE_HFLAG_IO_32BIT)
|
||||||
|
drive->io_32bit = 1;
|
||||||
|
if (hwif->host_flags & IDE_HFLAG_UNMASK_IRQS)
|
||||||
|
drive->unmask = 1;
|
||||||
|
if ((hwif->host_flags & IDE_HFLAG_NO_AUTOTUNE) == 0)
|
||||||
|
drive->autotune = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
|
static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
|
||||||
const struct ide_port_info *d)
|
const struct ide_port_info *d)
|
||||||
{
|
{
|
||||||
@ -1314,16 +1330,6 @@ static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
|
|||||||
if ((d->host_flags & IDE_HFLAG_SERIALIZE) && hwif->mate)
|
if ((d->host_flags & IDE_HFLAG_SERIALIZE) && hwif->mate)
|
||||||
hwif->mate->serialized = hwif->serialized = 1;
|
hwif->mate->serialized = hwif->serialized = 1;
|
||||||
|
|
||||||
if (d->host_flags & IDE_HFLAG_IO_32BIT) {
|
|
||||||
hwif->drives[0].io_32bit = 1;
|
|
||||||
hwif->drives[1].io_32bit = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d->host_flags & IDE_HFLAG_UNMASK_IRQS) {
|
|
||||||
hwif->drives[0].unmask = 1;
|
|
||||||
hwif->drives[1].unmask = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
hwif->swdma_mask = d->swdma_mask;
|
hwif->swdma_mask = d->swdma_mask;
|
||||||
hwif->mwdma_mask = d->mwdma_mask;
|
hwif->mwdma_mask = d->mwdma_mask;
|
||||||
hwif->ultra_mask = d->udma_mask;
|
hwif->ultra_mask = d->udma_mask;
|
||||||
@ -1332,11 +1338,6 @@ static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
|
|||||||
if ((d->host_flags && IDE_HFLAG_NO_DMA) == 0 && hwif->dma_base == 0)
|
if ((d->host_flags && IDE_HFLAG_NO_DMA) == 0 && hwif->dma_base == 0)
|
||||||
hwif->swdma_mask = hwif->mwdma_mask = hwif->ultra_mask = 0;
|
hwif->swdma_mask = hwif->mwdma_mask = hwif->ultra_mask = 0;
|
||||||
|
|
||||||
if ((d->host_flags & IDE_HFLAG_NO_AUTOTUNE) == 0) {
|
|
||||||
hwif->drives[0].autotune = 1;
|
|
||||||
hwif->drives[1].autotune = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d->host_flags & IDE_HFLAG_RQSIZE_256)
|
if (d->host_flags & IDE_HFLAG_RQSIZE_256)
|
||||||
hwif->rqsize = 256;
|
hwif->rqsize = 256;
|
||||||
|
|
||||||
@ -1371,6 +1372,7 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d)
|
|||||||
mate = (i & 1) ? NULL : hwif;
|
mate = (i & 1) ? NULL : hwif;
|
||||||
|
|
||||||
ide_init_port(hwif, i & 1, d);
|
ide_init_port(hwif, i & 1, d);
|
||||||
|
ide_port_init_devices(hwif);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MAX_HWIFS; i++) {
|
for (i = 0; i < MAX_HWIFS; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user