aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/ide.c11
-rw-r--r--include/linux/ide.h32
2 files changed, 9 insertions, 34 deletions
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index a60b956db519..9e4d503bc716 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -197,13 +197,20 @@ static void __init init_ide_data (void)
/* Initialise all interface structures */
for (index = 0; index < MAX_HWIFS; ++index) {
ide_hwif_t *hwif = &ide_hwifs[index];
+ unsigned long io_addr = ide_default_io_base(index);
+ unsigned long ctl_addr = ide_default_io_ctl(io_addr);
ide_init_port_data(hwif, index);
+#ifdef CONFIG_IDE_ARCH_OBSOLETE_INIT
memset(&hw, 0, sizeof(hw));
- ide_init_hwif_ports(&hw, ide_default_io_base(index), 0,
- &hwif->irq);
+ ide_std_init_ports(&hw, io_addr, ctl_addr);
+# ifdef CONFIG_PPC32
+ if (ppc_ide_md.ide_init_hwif)
+ ppc_ide_md.ide_init_hwif(&hw, io_addr, 0, &hwif->irq);
+# endif
memcpy(hwif->io_ports, hw.io_ports, sizeof(hw.io_ports));
+#endif
hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET];
#if !defined(CONFIG_PPC32) || !defined(CONFIG_PCI)
hwif->irq =
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 7744ac9d1ff9..f4c7db572a16 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -215,38 +215,6 @@ static inline void ide_std_init_ports(hw_regs_t *hw,
# define ide_init_default_irq(base) (0)
#endif
-#ifdef CONFIG_IDE_ARCH_OBSOLETE_INIT
-static inline void ide_init_hwif_ports(hw_regs_t *hw,
- unsigned long io_addr,
- unsigned long ctl_addr,
- int *irq)
-{
- if (!ctl_addr)
- ide_std_init_ports(hw, io_addr, ide_default_io_ctl(io_addr));
- else
- ide_std_init_ports(hw, io_addr, ctl_addr);
-
- if (irq)
- *irq = 0;
-
- hw->io_ports[IDE_IRQ_OFFSET] = 0;
-
-#ifdef CONFIG_PPC32
- if (ppc_ide_md.ide_init_hwif)
- ppc_ide_md.ide_init_hwif(hw, io_addr, ctl_addr, irq);
-#endif
-}
-#else
-static inline void ide_init_hwif_ports(hw_regs_t *hw,
- unsigned long io_addr,
- unsigned long ctl_addr,
- int *irq)
-{
- if (io_addr || ctl_addr)
- printk(KERN_WARNING "%s: must not be called\n", __FUNCTION__);
-}
-#endif /* CONFIG_IDE_ARCH_OBSOLETE_INIT */
-
/* Currently only m68k, apus and m8xx need it */
#ifndef IDE_ARCH_ACK_INTR
# define ide_ack_intr(hwif) (1)