5 #include <linux/config.h>
9 #undef SVWKS_DEBUG_DRIVE_INFO
11 #define SVWKS_CSB5_REVISION_NEW 0x92 /* min PCI_REVISION_ID for UDMA5 (A2.0) */
12 #define SVWKS_CSB6_REVISION 0xa0 /* min PCI_REVISION_ID for UDMA4 (A1.0) */
14 /* Seagate Barracuda ATA IV Family drives in UDMA mode 5
15 * can overrun their FIFOs when used with the CSB5 */
16 const char *svwks_bad_ata100[] = {
24 #define DISPLAY_SVWKS_TIMINGS 1
26 #if defined(DISPLAY_SVWKS_TIMINGS) && defined(CONFIG_PROC_FS)
27 #include <linux/stat.h>
28 #include <linux/proc_fs.h>
32 static int svwks_get_info(char *, char **, off_t, int);
34 static ide_pci_host_proc_t svwks_procs[] = {
38 .get_info = svwks_get_info,
42 #endif /* defined(DISPLAY_SVWKS_TIMINGS) && defined(CONFIG_PROC_FS) */
44 static void init_setup_svwks(struct pci_dev *, ide_pci_device_t *);
45 static void init_setup_csb6(struct pci_dev *, ide_pci_device_t *);
46 static unsigned int init_chipset_svwks(struct pci_dev *, const char *);
47 static void init_hwif_svwks(ide_hwif_t *);
48 static void init_dma_svwks(ide_hwif_t *, unsigned long);
50 static ide_pci_device_t serverworks_chipsets[] __devinitdata = {
52 .vendor = PCI_VENDOR_ID_SERVERWORKS,
53 .device = PCI_DEVICE_ID_SERVERWORKS_OSB4IDE,
54 .name = "SvrWks OSB4",
55 .init_setup = init_setup_svwks,
56 .init_chipset = init_chipset_svwks,
58 .init_hwif = init_hwif_svwks,
62 .enablebits = {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
66 .vendor = PCI_VENDOR_ID_SERVERWORKS,
67 .device = PCI_DEVICE_ID_SERVERWORKS_CSB5IDE,
68 .name = "SvrWks CSB5",
69 .init_setup = init_setup_svwks,
70 .init_chipset = init_chipset_svwks,
72 .init_hwif = init_hwif_svwks,
73 .init_dma = init_dma_svwks,
76 .enablebits = {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
80 .vendor = PCI_VENDOR_ID_SERVERWORKS,
81 .device = PCI_DEVICE_ID_SERVERWORKS_CSB6IDE,
82 .name = "SvrWks CSB6",
83 .init_setup = init_setup_csb6,
84 .init_chipset = init_chipset_svwks,
86 .init_hwif = init_hwif_svwks,
87 .init_dma = init_dma_svwks,
90 .enablebits = {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
94 .vendor = PCI_VENDOR_ID_SERVERWORKS,
95 .device = PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2,
96 .name = "SvrWks CSB6",
97 .init_setup = init_setup_csb6,
98 .init_chipset = init_chipset_svwks,
100 .init_hwif = init_hwif_svwks,
101 .init_dma = init_dma_svwks,
102 .channels = 1, /* 2 */
104 .enablebits = {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
105 .bootable = ON_BOARD,
115 #endif /* SERVERWORKS_H */