summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <b.zolnierkiewicz@elka.pw.edu.pl>2004-04-19 02:31:45 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-04-19 02:31:45 -0700
commit38fc4e8bc0fc6328e79c81fcc397b491fdb163eb (patch)
tree6bfd00570574544202c02cda962a37ea4a99b1d6 /include/linux
parentc407acc1b35868f8d6b74d08fa0db7c3b6d74a79 (diff)
[PATCH] generic ide_init_hwif_ports()
Add generic ide_init_hwif_ports() to <linux/ide.h> and remove arch specific versions except arm26, arm, h8300, i386-pc9800, m68k and m68knommu ones.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ide.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 5da715ef383b..abfe784b24cc 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -293,8 +293,49 @@ void ide_setup_ports( hw_regs_t *hw,
#endif
int irq);
+static inline void ide_std_init_ports(hw_regs_t *hw,
+ unsigned long io_addr,
+ unsigned long ctl_addr)
+{
+ unsigned int i;
+
+ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++)
+ hw->io_ports[i] = io_addr++;
+
+ hw->io_ports[IDE_CONTROL_OFFSET] = ctl_addr;
+}
+
#include <asm/ide.h>
+/*
+ * ide_init_hwif_ports() is OBSOLETE and will be removed in 2.7 series.
+ *
+ * arm26, arm, h8300, m68k, m68knommu (broken) and i386-pc9800 (broken)
+ * still have their own versions.
+ */
+#if !defined(CONFIG_ARM) && !defined(CONFIG_H8300) && !defined(CONFIG_M68K)
+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, io_addr + 0x206);
+ 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
+}
+#endif /* !ARM && !H8300 && !M68K */
+
/* Currently only m68k, apus and m8xx need it */
#ifndef IDE_ARCH_ACK_INTR
# define ide_ack_intr(hwif) (1)