ide: add __ide_default_irq() inline helper
Add __ide_default_irq() inline helper and use it instead of ide_default_irq() in ide-probe.c and ns87415.c (all host drivers except IDE PCI ones always setup hwif->irq so it is enough to check only for I/O bases 0x1f0 and 0x170). This fixes post-2.6.25 regression since ide_default_irq() define could shadow ide_default_irq() inline. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
Родитель
86df864249
Коммит
a861beb140
|
@ -1218,16 +1218,12 @@ static void drive_release_dev (struct device *dev)
|
|||
complete(&drive->gendev_rel_comp);
|
||||
}
|
||||
|
||||
#ifndef ide_default_irq
|
||||
#define ide_default_irq(irq) 0
|
||||
#endif
|
||||
|
||||
static int hwif_init(ide_hwif_t *hwif)
|
||||
{
|
||||
int old_irq;
|
||||
|
||||
if (!hwif->irq) {
|
||||
hwif->irq = ide_default_irq(hwif->io_ports.data_addr);
|
||||
hwif->irq = __ide_default_irq(hwif->io_ports.data_addr);
|
||||
if (!hwif->irq) {
|
||||
printk("%s: DISABLED, NO IRQ\n", hwif->name);
|
||||
return 0;
|
||||
|
@ -1257,7 +1253,7 @@ static int hwif_init(ide_hwif_t *hwif)
|
|||
* It failed to initialise. Find the default IRQ for
|
||||
* this port and try that.
|
||||
*/
|
||||
hwif->irq = ide_default_irq(hwif->io_ports.data_addr);
|
||||
hwif->irq = __ide_default_irq(hwif->io_ports.data_addr);
|
||||
if (!hwif->irq) {
|
||||
printk("%s: Disabled unable to get IRQ %d.\n",
|
||||
hwif->name, old_irq);
|
||||
|
|
|
@ -225,10 +225,6 @@ static int ns87415_dma_setup(ide_drive_t *drive)
|
|||
return 1;
|
||||
}
|
||||
|
||||
#ifndef ide_default_irq
|
||||
#define ide_default_irq(irq) 0
|
||||
#endif
|
||||
|
||||
static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif)
|
||||
{
|
||||
struct pci_dev *dev = to_pci_dev(hwif->dev);
|
||||
|
@ -288,7 +284,7 @@ static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif)
|
|||
}
|
||||
|
||||
if (!using_inta)
|
||||
hwif->irq = ide_default_irq(hwif->io_ports.data_addr);
|
||||
hwif->irq = __ide_default_irq(hwif->io_ports.data_addr);
|
||||
else if (!hwif->irq && hwif->mate && hwif->mate->irq)
|
||||
hwif->irq = hwif->mate->irq; /* share IRQ with mate */
|
||||
|
||||
|
|
|
@ -189,6 +189,21 @@ static inline void ide_std_init_ports(hw_regs_t *hw,
|
|||
hw->io_ports.ctl_addr = ctl_addr;
|
||||
}
|
||||
|
||||
/* for IDE PCI controllers in legacy mode, temporary */
|
||||
static inline int __ide_default_irq(unsigned long base)
|
||||
{
|
||||
switch (base) {
|
||||
#ifdef CONFIG_IA64
|
||||
case 0x1f0: return isa_irq_to_vector(14);
|
||||
case 0x170: return isa_irq_to_vector(15);
|
||||
#else
|
||||
case 0x1f0: return 14;
|
||||
case 0x170: return 15;
|
||||
#endif
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include <asm/ide.h>
|
||||
|
||||
#if !defined(MAX_HWIFS) || defined(CONFIG_EMBEDDED)
|
||||
|
|
Загрузка…
Ссылка в новой задаче