4 #include <linux/config.h>
8 const static char *pdc_quirk_drives[] = {
9 "QUANTUM FIREBALLlct08 08",
10 "QUANTUM FIREBALLP KA6.4",
11 "QUANTUM FIREBALLP KA9.1",
12 "QUANTUM FIREBALLP LM20.4",
13 "QUANTUM FIREBALLP KX13.6",
14 "QUANTUM FIREBALLP KX20.5",
15 "QUANTUM FIREBALLP KX27.3",
16 "QUANTUM FIREBALLP LM20.5",
20 #define set_2regs(a, b) \
22 hwif->OUTB((a + adj), indexreg); \
23 hwif->OUTB(b, datareg); \
26 #define set_ultra(a, b, c) \
28 set_2regs(0x10,(a)); \
29 set_2regs(0x11,(b)); \
30 set_2regs(0x12,(c)); \
33 #define set_ata2(a, b) \
35 set_2regs(0x0e,(a)); \
36 set_2regs(0x0f,(b)); \
39 #define set_pio(a, b, c) \
41 set_2regs(0x0c,(a)); \
42 set_2regs(0x0d,(b)); \
43 set_2regs(0x13,(c)); \
46 #define DISPLAY_PDC202XX_TIMINGS
48 static void init_setup_pdcnew(struct pci_dev *, ide_pci_device_t *);
49 static void init_setup_pdc20270(struct pci_dev *, ide_pci_device_t *);
50 static void init_setup_pdc20276(struct pci_dev *dev, ide_pci_device_t *d);
51 static unsigned int init_chipset_pdcnew(struct pci_dev *, const char *);
52 static void init_hwif_pdc202new(ide_hwif_t *);
54 static ide_pci_device_t pdcnew_chipsets[] __devinitdata = {
56 .vendor = PCI_VENDOR_ID_PROMISE,
57 .device = PCI_DEVICE_ID_PROMISE_20268,
59 .init_setup = init_setup_pdcnew,
60 .init_chipset = init_chipset_pdcnew,
61 .init_hwif = init_hwif_pdc202new,
64 .bootable = OFF_BOARD,
66 .vendor = PCI_VENDOR_ID_PROMISE,
67 .device = PCI_DEVICE_ID_PROMISE_20269,
69 .init_setup = init_setup_pdcnew,
70 .init_chipset = init_chipset_pdcnew,
71 .init_hwif = init_hwif_pdc202new,
74 .bootable = OFF_BOARD,
76 .vendor = PCI_VENDOR_ID_PROMISE,
77 .device = PCI_DEVICE_ID_PROMISE_20270,
79 .init_setup = init_setup_pdc20270,
80 .init_chipset = init_chipset_pdcnew,
81 .init_hwif = init_hwif_pdc202new,
84 #ifndef CONFIG_PDC202XX_FORCE
85 .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}},
87 .bootable = OFF_BOARD,
89 .vendor = PCI_VENDOR_ID_PROMISE,
90 .device = PCI_DEVICE_ID_PROMISE_20271,
92 .init_setup = init_setup_pdcnew,
93 .init_chipset = init_chipset_pdcnew,
94 .init_hwif = init_hwif_pdc202new,
97 .bootable = OFF_BOARD,
99 .vendor = PCI_VENDOR_ID_PROMISE,
100 .device = PCI_DEVICE_ID_PROMISE_20275,
102 .init_setup = init_setup_pdcnew,
103 .init_chipset = init_chipset_pdcnew,
104 .init_hwif = init_hwif_pdc202new,
107 .bootable = OFF_BOARD,
109 .vendor = PCI_VENDOR_ID_PROMISE,
110 .device = PCI_DEVICE_ID_PROMISE_20276,
112 .init_setup = init_setup_pdc20276,
113 .init_chipset = init_chipset_pdcnew,
114 .init_hwif = init_hwif_pdc202new,
117 #ifndef CONFIG_PDC202XX_FORCE
118 .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}},
120 .bootable = OFF_BOARD,
122 .vendor = PCI_VENDOR_ID_PROMISE,
123 .device = PCI_DEVICE_ID_PROMISE_20277,
125 .init_setup = init_setup_pdcnew,
126 .init_chipset = init_chipset_pdcnew,
127 .init_hwif = init_hwif_pdc202new,
130 .bootable = OFF_BOARD,
134 #endif /* PDC202XX_H */