diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2009-04-08 08:12:47 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-04-08 08:12:47 -0400 |
commit | aa07573b2bd0fee5a7537cb663fbb2de60278801 (patch) | |
tree | e4be40ae88fc7cccb28fca7b18d6cb4a8fc82678 /drivers/ide/ide-probe.c | |
parent | 577c9c456f0e1371cbade38eaf91ae8e8a308555 (diff) |
ide: Fix host drivers that need IRQF_SHARED
commit 255115fb35f80735c21a1cbe9809e9795a3af26e ("ide: allow host drivers to
specify IRQ flags") added irq_flags fields to struct ide_port_info and struct
ide_host. Drivers can now set ide_port_info.irq_flags = IRQF_SHARED, while
init_irq() passes ide_host.irq_flags to request_irq().
Unfortunately ide_host.irq_flags is never set, causing (on ARAnyM):
| Uniform Multi-Platform E-IDE driver
| ide: Falcon IDE controller
| Probing IDE interface ide0...
| hda: Sarge m68k, ATA DISK drive
| init_irq: sa = 0
| ide0: disabled, unable to get IRQ 15
| ide0: failed to initialize IDE interface
| ide0: disabling port
Solve this by copying ide_port_info.irq_flags to ide_host.irq_flags in
ide_host_alloc().
This bug probably affects the following IDE host drivers:
- buddha
- delkin_cb
- falconide
- gayle
- ide-cs
- macide
- q40ide
- scc_pata
- sgiioc4
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index d8c1c3e735bb..c1ef8c8c785e 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1314,6 +1314,7 @@ struct ide_host *ide_host_alloc(const struct ide_port_info *d, hw_regs_t **hws) | |||
1314 | host->get_lock = d->get_lock; | 1314 | host->get_lock = d->get_lock; |
1315 | host->release_lock = d->release_lock; | 1315 | host->release_lock = d->release_lock; |
1316 | host->host_flags = d->host_flags; | 1316 | host->host_flags = d->host_flags; |
1317 | host->irq_flags = d->irq_flags; | ||
1317 | } | 1318 | } |
1318 | 1319 | ||
1319 | return host; | 1320 | return host; |