4 #include <linux/config.h>
8 #define PIIX_DEBUG_DRIVE_INFO 0
10 #define DISPLAY_PIIX_TIMINGS
12 #if defined(DISPLAY_PIIX_TIMINGS) && defined(CONFIG_PROC_FS)
13 #include <linux/stat.h>
14 #include <linux/proc_fs.h>
18 static int piix_get_info(char *, char **, off_t, int);
20 static ide_pci_host_proc_t piix_procs[] __devinitdata = {
24 .get_info = piix_get_info,
28 #endif /* defined(DISPLAY_PIIX_TIMINGS) && defined(CONFIG_PROC_FS) */
30 static void init_setup_piix(struct pci_dev *, ide_pci_device_t *);
31 static unsigned int __devinit init_chipset_piix(struct pci_dev *, const char *);
32 static void init_hwif_piix(ide_hwif_t *);
33 static void init_dma_piix(ide_hwif_t *, unsigned long);
37 * Table of the various PIIX capability blocks
41 static ide_pci_device_t piix_pci_info[] __devinitdata = {
43 .vendor = PCI_VENDOR_ID_INTEL,
44 .device = PCI_DEVICE_ID_INTEL_82371FB_0,
46 .init_setup = init_setup_piix,
47 .init_chipset = init_chipset_piix,
49 .init_hwif = init_hwif_piix,
50 .init_dma = init_dma_piix,
53 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
57 .vendor = PCI_VENDOR_ID_INTEL,
58 .device = PCI_DEVICE_ID_INTEL_82371FB_1,
60 .init_setup = init_setup_piix,
61 .init_chipset = init_chipset_piix,
63 .init_hwif = init_hwif_piix,
64 .init_dma = init_dma_piix,
67 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
71 .vendor = PCI_VENDOR_ID_INTEL,
72 .device = PCI_DEVICE_ID_INTEL_82371MX,
74 .init_setup = init_setup_piix,
77 .init_hwif = init_hwif_piix,
81 .enablebits = {{0x6D,0x80,0x80}, {0x6F,0x80,0x80}},
85 .vendor = PCI_VENDOR_ID_INTEL,
86 .device = PCI_DEVICE_ID_INTEL_82371SB_1,
88 .init_setup = init_setup_piix,
89 .init_chipset = init_chipset_piix,
91 .init_hwif = init_hwif_piix,
92 .init_dma = init_dma_piix,
95 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
99 .vendor = PCI_VENDOR_ID_INTEL,
100 .device = PCI_DEVICE_ID_INTEL_82371AB,
102 .init_setup = init_setup_piix,
103 .init_chipset = init_chipset_piix,
105 .init_hwif = init_hwif_piix,
106 .init_dma = init_dma_piix,
109 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
110 .bootable = ON_BOARD,
113 .vendor = PCI_VENDOR_ID_INTEL,
114 .device = PCI_DEVICE_ID_INTEL_82801AB_1,
116 .init_setup = init_setup_piix,
117 .init_chipset = init_chipset_piix,
119 .init_hwif = init_hwif_piix,
120 .init_dma = init_dma_piix,
123 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
124 .bootable = ON_BOARD,
127 .vendor = PCI_VENDOR_ID_INTEL,
128 .device = PCI_DEVICE_ID_INTEL_82443MX_1,
130 .init_setup = init_setup_piix,
131 .init_chipset = init_chipset_piix,
133 .init_hwif = init_hwif_piix,
134 .init_dma = init_dma_piix,
137 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
138 .bootable = ON_BOARD,
141 .vendor = PCI_VENDOR_ID_INTEL,
142 .device = PCI_DEVICE_ID_INTEL_82801AA_1,
144 .init_setup = init_setup_piix,
145 .init_chipset = init_chipset_piix,
147 .init_hwif = init_hwif_piix,
148 .init_dma = init_dma_piix,
151 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
152 .bootable = ON_BOARD,
155 .vendor = PCI_VENDOR_ID_INTEL,
156 .device = PCI_DEVICE_ID_INTEL_82372FB_1,
158 .init_setup = init_setup_piix,
159 .init_chipset = init_chipset_piix,
161 .init_hwif = init_hwif_piix,
162 .init_dma = init_dma_piix,
165 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
166 .bootable = ON_BOARD,
169 .vendor = PCI_VENDOR_ID_INTEL,
170 .device = PCI_DEVICE_ID_INTEL_82451NX,
172 .init_setup = init_setup_piix,
173 .init_chipset = init_chipset_piix,
175 .init_hwif = init_hwif_piix,
176 .init_dma = init_dma_piix,
178 .autodma = NOAUTODMA,
179 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
180 .bootable = ON_BOARD,
183 .vendor = PCI_VENDOR_ID_INTEL,
184 .device = PCI_DEVICE_ID_INTEL_82801BA_9,
186 .init_setup = init_setup_piix,
187 .init_chipset = init_chipset_piix,
189 .init_hwif = init_hwif_piix,
190 .init_dma = init_dma_piix,
193 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
194 .bootable = ON_BOARD,
197 .vendor = PCI_VENDOR_ID_INTEL,
198 .device = PCI_DEVICE_ID_INTEL_82801BA_8,
200 .init_setup = init_setup_piix,
201 .init_chipset = init_chipset_piix,
203 .init_hwif = init_hwif_piix,
204 .init_dma = init_dma_piix,
207 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
208 .bootable = ON_BOARD,
211 .vendor = PCI_VENDOR_ID_INTEL,
212 .device = PCI_DEVICE_ID_INTEL_82801CA_10,
214 .init_setup = init_setup_piix,
215 .init_chipset = init_chipset_piix,
217 .init_hwif = init_hwif_piix,
218 .init_dma = init_dma_piix,
221 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
222 .bootable = ON_BOARD,
225 .vendor = PCI_VENDOR_ID_INTEL,
226 .device = PCI_DEVICE_ID_INTEL_82801CA_11,
228 .init_setup = init_setup_piix,
229 .init_chipset = init_chipset_piix,
231 .init_hwif = init_hwif_piix,
232 .init_dma = init_dma_piix,
235 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
236 .bootable = ON_BOARD,
239 .vendor = PCI_VENDOR_ID_INTEL,
240 .device = PCI_DEVICE_ID_INTEL_82801DB_11,
242 .init_setup = init_setup_piix,
243 .init_chipset = init_chipset_piix,
245 .init_hwif = init_hwif_piix,
246 .init_dma = init_dma_piix,
249 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
250 .bootable = ON_BOARD,
253 .vendor = PCI_VENDOR_ID_INTEL,
254 .device = PCI_DEVICE_ID_INTEL_82801EB_11,
256 .init_setup = init_setup_piix,
257 .init_chipset = init_chipset_piix,
259 .init_hwif = init_hwif_piix,
260 .init_dma = init_dma_piix,
263 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
264 .bootable = ON_BOARD,
267 .vendor = PCI_VENDOR_ID_INTEL,
268 .device = PCI_DEVICE_ID_INTEL_82801E_11,
270 .init_setup = init_setup_piix,
271 .init_chipset = init_chipset_piix,
273 .init_hwif = init_hwif_piix,
274 .init_dma = init_dma_piix,
277 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
278 .bootable = ON_BOARD,
281 .vendor = PCI_VENDOR_ID_INTEL,
282 .device = PCI_DEVICE_ID_INTEL_82801DB_10,
284 .init_setup = init_setup_piix,
285 .init_chipset = init_chipset_piix,
287 .init_hwif = init_hwif_piix,
288 .init_dma = init_dma_piix,
291 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
292 .bootable = ON_BOARD,
295 .vendor = PCI_VENDOR_ID_INTEL,
296 .device = PCI_DEVICE_ID_INTEL_82801EB_1,
298 .init_setup = init_setup_piix,
299 .init_chipset = init_chipset_piix,
301 .init_hwif = init_hwif_piix,
302 .init_dma = init_dma_piix,
305 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
306 .bootable = ON_BOARD,
309 .vendor = PCI_VENDOR_ID_INTEL,
310 .device = PCI_DEVICE_ID_INTEL_ESB_2,
312 .init_setup = init_setup_piix,
313 .init_chipset = init_chipset_piix,
315 .init_hwif = init_hwif_piix,
316 .init_dma = init_dma_piix,
319 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
320 .bootable = ON_BOARD,
323 .vendor = PCI_VENDOR_ID_INTEL,
324 .device = PCI_DEVICE_ID_INTEL_ICH6_2,
326 .init_setup = init_setup_piix,
327 .init_chipset = init_chipset_piix,
329 .init_hwif = init_hwif_piix,
330 .init_dma = init_dma_piix,
333 .enablebits = {{0x41,0x80,0x80}, {0x43,0x80,0x80}},
334 .bootable = ON_BOARD,