home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-i386 / ide.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.5 KB  |  79 lines

  1. /*
  2.  *  linux/include/asm-i386/ide.h
  3.  *
  4.  *  Copyright (C) 1994-1996  Linus Torvalds & authors
  5.  */
  6.  
  7. /*
  8.  *  This file contains the i386 architecture specific IDE code.
  9.  */
  10.  
  11. #ifndef __ASMi386_IDE_H
  12. #define __ASMi386_IDE_H
  13.  
  14. #ifdef __KERNEL__
  15.  
  16.  
  17. #ifndef MAX_HWIFS
  18. # ifdef CONFIG_BLK_DEV_IDEPCI
  19. #define MAX_HWIFS    10
  20. # else
  21. #define MAX_HWIFS    6
  22. # endif
  23. #endif
  24.  
  25. #define IDE_ARCH_OBSOLETE_DEFAULTS
  26.  
  27. static __inline__ int ide_default_irq(unsigned long base)
  28. {
  29.     switch (base) {
  30.         case 0x1f0: return 14;
  31.         case 0x170: return 15;
  32.         case 0x1e8: return 11;
  33.         case 0x168: return 10;
  34.         case 0x1e0: return 8;
  35.         case 0x160: return 12;
  36.         default:
  37.             return 0;
  38.     }
  39. }
  40.  
  41. static __inline__ unsigned long ide_default_io_base(int index)
  42. {
  43.     /*
  44.      *    If PCI is present then it is not safe to poke around
  45.      *    the other legacy IDE ports. Only 0x1f0 and 0x170 are
  46.      *    defined compatibility mode ports for PCI. A user can 
  47.      *    override this using ide= but we must default safe.
  48.      */
  49.     if (pci_find_device(PCI_ANY_ID, PCI_ANY_ID, NULL) == NULL) {
  50.         switch(index) {
  51.             case 2: return 0x1e8;
  52.             case 3: return 0x168;
  53.             case 4: return 0x1e0;
  54.             case 5: return 0x160;
  55.         }
  56.     }
  57.     switch (index) {
  58.         case 0:    return 0x1f0;
  59.         case 1:    return 0x170;
  60.         default:
  61.             return 0;
  62.     }
  63. }
  64.  
  65. #define IDE_ARCH_OBSOLETE_INIT
  66. #define ide_default_io_ctl(base)    ((base) + 0x206) /* obsolete */
  67.  
  68. #ifdef CONFIG_BLK_DEV_IDEPCI
  69. #define ide_init_default_irq(base)    (0)
  70. #else
  71. #define ide_init_default_irq(base)    ide_default_irq(base)
  72. #endif
  73.  
  74. #include <asm-generic/ide_iops.h>
  75.  
  76. #endif /* __KERNEL__ */
  77.  
  78. #endif /* __ASMi386_IDE_H */
  79.