ide: add __ide_default_irq() inline helper
PATCH 1/1 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 <[email protected]>
---
for 2.6.26
drivers/ide/ide-probe.c | 8 ++------ drivers/ide/pci/ns87415.c | 6 +----- include/linux/ide.h | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 11 deletions(-)
drivers/ide/ide-probe.c +2 -6
@@ -1280,16 +1280,12 @@ static void drive_release_dev (struct decomplete (&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 ;
@@ -1319,7 +1315,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);
drivers/ide/pci/ns87415.c +1 -5
@@ -220,10 +220,6 @@ static int ns87415_dma_setup(ide_drive_treturn 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);
@@ -283,7 +279,7 @@ static void __devinit init_hwif_ns87415 }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 */
include/linux/ide.h +15 -0
@@ -196,6 +196,21 @@ static inline void ide_std_init_ports(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 )