Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at b1404069f64457c94de241738fdca142c2e5698f 139 lines 3.4 kB view raw
1/* 2 * linux/include/asm-m68k/ide.h 3 * 4 * Copyright (C) 1994-1996 Linus Torvalds & authors 5 */ 6 7/* Copyright(c) 1996 Kars de Jong */ 8/* Based on the ide driver from 1.2.13pl8 */ 9 10/* 11 * Credits (alphabetical): 12 * 13 * - Bjoern Brauel 14 * - Kars de Jong 15 * - Torsten Ebeling 16 * - Dwight Engen 17 * - Thorsten Floeck 18 * - Roman Hodek 19 * - Guenther Kelleter 20 * - Chris Lawrence 21 * - Michael Rausch 22 * - Christian Sauer 23 * - Michael Schmitz 24 * - Jes Soerensen 25 * - Michael Thurm 26 * - Geert Uytterhoeven 27 */ 28 29#ifndef _M68K_IDE_H 30#define _M68K_IDE_H 31 32#ifdef __KERNEL__ 33 34 35#include <asm/setup.h> 36#include <asm/io.h> 37#include <asm/irq.h> 38 39#ifdef CONFIG_ATARI 40#include <linux/interrupt.h> 41#include <asm/atari_stdma.h> 42#endif 43 44#ifdef CONFIG_MAC 45#include <asm/macints.h> 46#endif 47 48/* 49 * Get rid of defs from io.h - ide has its private and conflicting versions 50 * Since so far no single m68k platform uses ISA/PCI I/O space for IDE, we 51 * always use the `raw' MMIO versions 52 */ 53#undef inb 54#undef inw 55#undef insw 56#undef inl 57#undef insl 58#undef outb 59#undef outw 60#undef outsw 61#undef outl 62#undef outsl 63#undef readb 64#undef readw 65#undef readl 66#undef writeb 67#undef writew 68#undef writel 69 70#define inb in_8 71#define inw in_be16 72#define insw(port, addr, n) raw_insw((u16 *)port, addr, n) 73#define inl in_be32 74#define insl(port, addr, n) raw_insl((u32 *)port, addr, n) 75#define outb(val, port) out_8(port, val) 76#define outw(val, port) out_be16(port, val) 77#define outsw(port, addr, n) raw_outsw((u16 *)port, addr, n) 78#define outl(val, port) out_be32(port, val) 79#define outsl(port, addr, n) raw_outsl((u32 *)port, addr, n) 80#define readb in_8 81#define readw in_be16 82#define __ide_mm_insw(port, addr, n) raw_insw((u16 *)port, addr, n) 83#define readl in_be32 84#define __ide_mm_insl(port, addr, n) raw_insl((u32 *)port, addr, n) 85#define writeb(val, port) out_8(port, val) 86#define writew(val, port) out_be16(port, val) 87#define __ide_mm_outsw(port, addr, n) raw_outsw((u16 *)port, addr, n) 88#define writel(val, port) out_be32(port, val) 89#define __ide_mm_outsl(port, addr, n) raw_outsl((u32 *)port, addr, n) 90#if defined(CONFIG_ATARI) || defined(CONFIG_Q40) 91#define insw_swapw(port, addr, n) raw_insw_swapw((u16 *)port, addr, n) 92#define outsw_swapw(port, addr, n) raw_outsw_swapw((u16 *)port, addr, n) 93#endif 94 95 96/* Q40 and Atari have byteswapped IDE busses and since many interesting 97 * values in the identification string are text, chars and words they 98 * happened to be almost correct without swapping.. However *_capacity 99 * is needed for drives over 8 GB. RZ */ 100#if defined(CONFIG_Q40) || defined(CONFIG_ATARI) 101#define M68K_IDE_SWAPW (MACH_IS_Q40 || MACH_IS_ATARI) 102#endif 103 104#ifdef CONFIG_BLK_DEV_FALCON_IDE 105#define IDE_ARCH_LOCK 106 107extern int falconide_intr_lock; 108 109static __inline__ void ide_release_lock (void) 110{ 111 if (MACH_IS_ATARI) { 112 if (falconide_intr_lock == 0) { 113 printk("ide_release_lock: bug\n"); 114 return; 115 } 116 falconide_intr_lock = 0; 117 stdma_release(); 118 } 119} 120 121static __inline__ void 122ide_get_lock(irq_handler_t handler, void *data) 123{ 124 if (MACH_IS_ATARI) { 125 if (falconide_intr_lock == 0) { 126 if (in_interrupt() > 0) 127 panic( "Falcon IDE hasn't ST-DMA lock in interrupt" ); 128 stdma_lock(handler, data); 129 falconide_intr_lock = 1; 130 } 131 } 132} 133#endif /* CONFIG_BLK_DEV_FALCON_IDE */ 134 135#define IDE_ARCH_ACK_INTR 136#define ide_ack_intr(hwif) ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1) 137 138#endif /* __KERNEL__ */ 139#endif /* _M68K_IDE_H */