URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-m68k/] [ide.h] - Rev 1765
Compare with Previous | Blame | View Log
/* * linux/include/asm-m68k/ide.h * * Copyright (C) 1994-1996 Linus Torvalds & authors */ /* Copyright(c) 1996 Kars de Jong */ /* Based on the ide driver from 1.2.13pl8 */ /* * Credits (alphabetical): * * - Bjoern Brauel * - Kars de Jong * - Torsten Ebeling * - Dwight Engen * - Thorsten Floeck * - Roman Hodek * - Guenther Kelleter * - Chris Lawrence * - Michael Rausch * - Christian Sauer * - Michael Schmitz * - Jes Soerensen * - Michael Thurm * - Geert Uytterhoeven */ #ifndef _M68K_IDE_H #define _M68K_IDE_H #ifdef __KERNEL__ #include <linux/config.h> #include <asm/setup.h> #include <asm/io.h> #include <asm/irq.h> #ifdef CONFIG_ATARI #include <linux/interrupt.h> #include <asm/atari_stdma.h> #endif #ifdef CONFIG_MAC #include <asm/macints.h> #endif #ifndef MAX_HWIFS #define MAX_HWIFS 4 /* same as the other archs */ #endif static __inline__ int ide_default_irq(ide_ioreg_t base) { return 0; } static __inline__ ide_ioreg_t ide_default_io_base(int index) { return 0; } /* * Set up a hw structure for a specified data port, control port and IRQ. * This should follow whatever the default interface uses. */ static __inline__ void ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port, ide_ioreg_t ctrl_port, int *irq) { if (data_port || ctrl_port) printk("ide_init_hwif_ports: must not be called\n"); } /* * This registers the standard ports for this architecture with the IDE * driver. */ static __inline__ void ide_init_default_hwifs(void) { } /* * Get rid of defs from io.h - ide has its private and conflicting versions * Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we * always use the `raw' MMIO versions */ #undef inb #undef inw #undef insw #undef inl #undef insl #undef outb #undef outw #undef outsw #undef outl #undef outsl #undef readb #undef readw #undef readl #undef writeb #undef writew #undef writel #define inb in_8 #define inw in_be16 #define insw(port, addr, n) raw_insw((u16 *)port, addr, n) #define inl in_be32 #define insl(port, addr, n) raw_insl((u32 *)port, addr, n) #define outb(val, port) out_8(port, val) #define outw(val, port) out_be16(port, val) #define outsw(port, addr, n) raw_outsw((u16 *)port, addr, n) #define outl(val, port) out_be32(port, val) #define outsl(port, addr, n) raw_outsl((u32 *)port, addr, n) #define readb in_8 #define readw in_be16 #define __ide_mm_insw(port, addr, n) raw_insw((u16 *)port, addr, n) #define readl in_be32 #define __ide_mm_insl(port, addr, n) raw_insl((u32 *)port, addr, n) #define writeb(val, port) out_8(port, val) #define writew(val, port) out_be16(port, val) #define __ide_mm_outsw(port, addr, n) raw_outsw((u16 *)port, addr, n) #define writel(val, port) out_be32(port, val) #define __ide_mm_outsl(port, addr, n) raw_outsl((u32 *)port, addr, n) #if defined(CONFIG_ATARI) || defined(CONFIG_Q40) #define insw_swapw(port, addr, n) raw_insw_swapw((u16 *)port, addr, n) #define outsw_swapw(port, addr, n) raw_outsw_swapw((u16 *)port, addr, n) #endif /* Q40 and Atari have byteswapped IDE busses and since many interesting * values in the identification string are text, chars and words they * happened to be almost correct without swapping.. However *_capacity * is needed for drives over 8 GB. RZ */ #if defined(CONFIG_Q40) || defined(CONFIG_ATARI) #define M68K_IDE_SWAPW (MACH_IS_Q40 || MACH_IS_ATARI) #endif #ifdef CONFIG_BLK_DEV_FALCON_IDE #define IDE_ARCH_LOCK extern int falconide_intr_lock; static __inline__ void ide_release_lock(void) { if (MACH_IS_ATARI) { if (falconide_intr_lock == 0) { printk("ide_release_lock: bug\n"); return; } falconide_intr_lock = 0; stdma_release(); } } static __inline__ void ide_get_lock(void (*handler)(int, void *, struct pt_regs *), void *data) { if (MACH_IS_ATARI) { if (falconide_intr_lock == 0) { if (in_interrupt() > 0) panic( "Falcon IDE hasn't ST-DMA lock in interrupt" ); stdma_lock(handler, data); falconide_intr_lock = 1; } } } #endif /* CONFIG_BLK_DEV_FALCON_IDE */ #define IDE_ARCH_ACK_INTR #define ide_ack_intr(hwif) ((hwif)->hw.ack_intr ? (hwif)->hw.ack_intr(hwif) : 1) #endif /* __KERNEL__ */ #endif /* _M68K_IDE_H */