home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-m68k / ide.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  3.0 KB  |  131 lines

  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. #ifdef CONFIG_BLK_DEV_FALCON_IDE
  96. #define IDE_ARCH_LOCK
  97.  
  98. extern int falconide_intr_lock;
  99.  
  100. static __inline__ void ide_release_lock (void)
  101. {
  102.     if (MACH_IS_ATARI) {
  103.         if (falconide_intr_lock == 0) {
  104.             printk("ide_release_lock: bug\n");
  105.             return;
  106.         }
  107.         falconide_intr_lock = 0;
  108.         stdma_release();
  109.     }
  110. }
  111.  
  112. static __inline__ void
  113. ide_get_lock(irq_handler_t handler, void *data)
  114. {
  115.     if (MACH_IS_ATARI) {
  116.         if (falconide_intr_lock == 0) {
  117.             if (in_interrupt() > 0)
  118.                 panic( "Falcon IDE hasn't ST-DMA lock in interrupt" );
  119.             stdma_lock(handler, data);
  120.             falconide_intr_lock = 1;
  121.         }
  122.     }
  123. }
  124. #endif /* CONFIG_BLK_DEV_FALCON_IDE */
  125.  
  126. #define IDE_ARCH_ACK_INTR
  127. #define ide_ack_intr(hwif)    ((hwif)->ack_intr ? (hwif)->ack_intr(hwif) : 1)
  128.  
  129. #endif /* __KERNEL__ */
  130. #endif /* _M68K_IDE_H */
  131.