More meth updates.
[linux-2.6/linux-mips.git] / drivers / ide / pcihost.h
blobcd2101bcf2523946b501185e5572bb9344e48ae3
1 /**** vi:set ts=8 sts=8 sw=8:************************************************
3 * Copyright (C) 2002 Marcin Dalecki <martin@dalecki.de>
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
16 * Declarations needed for the handling of PCI (mostly) based host chip set
17 * interfaces.
20 #ifdef CONFIG_BLK_DEV_PIIX
21 extern int init_piix(void);
22 #endif
23 #ifdef CONFIG_BLK_DEV_VIA82CXXX
24 extern int init_via82cxxx(void);
25 #endif
26 #ifdef CONFIG_BLK_DEV_PDC202XX
27 extern int init_pdc202xx(void);
28 #endif
29 #ifdef CONFIG_BLK_DEV_RZ1000
30 extern int init_rz1000(void);
31 #endif
32 #ifdef CONFIG_BLK_DEV_SIS5513
33 extern int init_sis5513(void);
34 #endif
35 #ifdef CONFIG_BLK_DEV_CMD64X
36 extern int init_cmd64x(void);
37 #endif
38 #ifdef CONFIG_BLK_DEV_OPTI621
39 extern int init_opti621(void);
40 #endif
41 #ifdef CONFIG_BLK_DEV_TRM290
42 extern int init_trm290(void);
43 #endif
44 #ifdef CONFIG_BLK_DEV_NS87415
45 extern int init_ns87415(void);
46 #endif
47 #ifdef CONFIG_BLK_DEV_AEC62XX
48 extern int init_aec62xx(void);
49 #endif
50 #ifdef CONFIG_BLK_DEV_SL82C105
51 extern int init_sl82c105(void);
52 #endif
53 #ifdef CONFIG_BLK_DEV_HPT34X
54 extern int init_hpt34x(void);
55 #endif
56 #ifdef CONFIG_BLK_DEV_HPT366
57 extern int init_hpt366(void);
58 #endif
59 #ifdef CONFIG_BLK_DEV_ALI15X3
60 extern int init_ali15x3(void);
61 #endif
62 #ifdef CONFIG_BLK_DEV_CY82C693
63 extern int init_cy82c693(void);
64 #endif
65 #ifdef CONFIG_BLK_DEV_CS5530
66 extern int init_cs5530(void);
67 #endif
68 #ifdef CONFIG_BLK_DEV_AMD74XX
69 extern int init_amd74xx(void);
70 #endif
71 #ifdef CONFIG_BLK_DEV_SVWKS
72 extern int init_svwks(void);
73 #endif
74 #ifdef CONFIG_BLK_DEV_IT8172
75 extern int init_it8172(void);
76 #endif
77 extern int init_ata_pci_misc(void);
80 * Some combi chips, which can be used on the PCI bus or the VL bus can be in
81 * some systems acessed either through the PCI config space or through the
82 * hosts IO bus. If the corresponding initialization driver is using the host
83 * IO space to deal with them please define the following.
86 #define ATA_PCI_IGNORE ((void *)-1)
89 * Just to prevent us from having too many tinny headers we have consolidated
90 * all those declarations here.
93 #ifdef CONFIG_BLK_DEV_RZ1000
94 extern void ide_probe_for_rz100x(void);
95 #endif
97 typedef struct ide_pci_enablebit_s {
98 u8 reg; /* pci configuration register holding the enable-bit */
99 u8 mask; /* mask used to isolate the enable-bit */
100 u8 val; /* expected value of masked register when "enabled" */
101 } ide_pci_enablebit_t;
103 /* Flags used to untangle quirk handling.
105 #define ATA_F_DMA 0x001
106 #define ATA_F_NODMA 0x002 /* no DMA mode supported at all */
107 #define ATA_F_NOADMA 0x004 /* DMA has to be enabled explicitely */
108 #define ATA_F_FIXIRQ 0x008 /* fixed irq wiring */
109 #define ATA_F_SER 0x010 /* serialize on first and second channel interrupts */
110 #define ATA_F_IRQ 0x020 /* trust IRQ information from config */
111 #define ATA_F_PHACK 0x040 /* apply PROMISE hacks */
112 #define ATA_F_HPTHACK 0x080 /* apply HPT366 hacks */
113 #define ATA_F_SIMPLEX 0x100 /* force treatment as simple device */
116 struct ata_pci_device {
117 unsigned short vendor;
118 unsigned short device;
119 unsigned int (*init_chipset)(struct pci_dev *);
120 void (*init_channel)(struct ata_channel *);
121 void (*init_dma)(struct ata_channel *, unsigned long);
122 ide_pci_enablebit_t enablebits[2];
123 unsigned int bootable;
124 unsigned int extra;
125 unsigned int flags;
126 struct ata_pci_device *next; /* beware we link the netries in pleace */
129 extern void ata_register_chipset(struct ata_pci_device *d);