diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-02 19:56:40 +0100 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-02-02 19:56:40 +0100 |
commit | 807b90d0be23b8d088d4369b02539dada70f03f4 (patch) | |
tree | 422895c1232715ba04957fd993579c0d768fd6fd /drivers/ide | |
parent | 7704ca2a3ee4b3690c5dcc99ea4f8dcf10d7bbdb (diff) | |
download | blackbird-op-linux-807b90d0be23b8d088d4369b02539dada70f03f4.tar.gz blackbird-op-linux-807b90d0be23b8d088d4369b02539dada70f03f4.zip |
ide: add IDE_HFLAG_NO_{IO32_BIT,UNMASK_IRQS} host flags
* Use the same bit for IDE_HFLAG_CS5520 and IDE_HFLAG_VDMA host flags
(both are used only by cs5520 host driver currently).
* Add IDE_HFLAG_NO_IO32_BIT host flag and use it instead of ->no_io_32bit
ide_hwif_t field.
* Add IDE_HFLAG_NO_UNMASK_IRQS host flag, then convert dtc2278 and rz1000
host drivers to use it.
There should be no functionality changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/ide-probe.c | 4 | ||||
-rw-r--r-- | drivers/ide/legacy/dtc2278.c | 10 | ||||
-rw-r--r-- | drivers/ide/mips/au1xxx-ide.c | 3 | ||||
-rw-r--r-- | drivers/ide/pci/rz1000.c | 3 |
4 files changed, 8 insertions, 12 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 802a04ad6024..fee898c4a773 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c @@ -822,7 +822,7 @@ static void ide_port_tune_devices(ide_hwif_t *hwif) for (unit = 0; unit < MAX_DRIVES; ++unit) { ide_drive_t *drive = &hwif->drives[unit]; - if (hwif->no_io_32bit) + if (hwif->host_flags & IDE_HFLAG_NO_IO_32BIT) drive->no_io_32bit = 1; else drive->no_io_32bit = drive->id->dword_io ? 1 : 0; @@ -1300,6 +1300,8 @@ static void ide_port_init_devices(ide_hwif_t *hwif) drive->io_32bit = 1; if (hwif->host_flags & IDE_HFLAG_UNMASK_IRQS) drive->unmask = 1; + if (hwif->host_flags & IDE_HFLAG_NO_UNMASK_IRQS) + drive->no_unmask = 1; if ((hwif->host_flags & IDE_HFLAG_NO_AUTOTUNE) == 0) drive->autotune = 1; } diff --git a/drivers/ide/legacy/dtc2278.c b/drivers/ide/legacy/dtc2278.c index 7cbf2f1f35f9..73396f70f2b7 100644 --- a/drivers/ide/legacy/dtc2278.c +++ b/drivers/ide/legacy/dtc2278.c @@ -89,7 +89,10 @@ static void dtc2278_set_pio_mode(ide_drive_t *drive, const u8 pio) static const struct ide_port_info dtc2278_port_info __initdata = { .chipset = ide_dtc2278, .host_flags = IDE_HFLAG_SERIALIZE | + IDE_HFLAG_NO_UNMASK_IRQS | IDE_HFLAG_IO_32BIT | + /* disallow ->io_32bit changes */ + IDE_HFLAG_NO_IO_32BIT | IDE_HFLAG_NO_DMA | IDE_HFLAG_NO_AUTOTUNE, .pio_mask = ATA_PIO4, @@ -125,14 +128,7 @@ static int __init dtc2278_probe(void) #endif local_irq_restore(flags); - hwif->no_io_32bit = 1; /* disallow ->io_32bit changes */ hwif->set_pio_mode = &dtc2278_set_pio_mode; - hwif->drives[0].no_unmask = 1; - hwif->drives[1].no_unmask = 1; - - mate->no_io_32bit = 1; - mate->drives[0].no_unmask = 1; - mate->drives[1].no_unmask = 1; ide_device_add(idx, &dtc2278_port_info); diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c index 484a9287bf84..0f4bf5d72835 100644 --- a/drivers/ide/mips/au1xxx-ide.c +++ b/drivers/ide/mips/au1xxx-ide.c @@ -551,6 +551,7 @@ static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif) static const struct ide_port_info au1xxx_port_info = { .host_flags = IDE_HFLAG_POST_SET_MODE | IDE_HFLAG_NO_DMA | /* no SFF-style DMA */ + IDE_HFLAG_NO_IO_32BIT | IDE_HFLAG_UNMASK_IRQS, .pio_mask = ATA_PIO4, #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA @@ -649,8 +650,6 @@ static int au_ide_probe(struct device *dev) hwif->select_data = 0; /* no chipset-specific code */ hwif->config_data = 0; /* no chipset-specific code */ - hwif->no_io_32bit = 1; - auide_hwif.hwif = hwif; hwif->hwif_data = &auide_hwif; diff --git a/drivers/ide/pci/rz1000.c b/drivers/ide/pci/rz1000.c index dd0d18ba0022..51676612f78f 100644 --- a/drivers/ide/pci/rz1000.c +++ b/drivers/ide/pci/rz1000.c @@ -33,8 +33,7 @@ static void __devinit init_hwif_rz1000 (ide_hwif_t *hwif) } else { if (hwif->mate) hwif->mate->serialized = hwif->serialized = 1; - hwif->drives[0].no_unmask = 1; - hwif->drives[1].no_unmask = 1; + hwif->host_flags |= IDE_HFLAG_NO_UNMASK_IRQS; printk(KERN_INFO "%s: serialized, disabled unmasking " "(buggy RZ1000/RZ1001)\n", hwif->name); } |