patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / ide / pci / serverworks.h
1
2 #ifndef SERVERWORKS_H
3 #define SERVERWORKS_H
4
5 #include <linux/config.h>
6 #include <linux/pci.h>
7 #include <linux/ide.h>
8
9 #undef SVWKS_DEBUG_DRIVE_INFO
10
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) */
13
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[] = {
17         "ST320011A",
18         "ST340016A",
19         "ST360021A",
20         "ST380021A",
21         NULL
22 };
23
24 #define DISPLAY_SVWKS_TIMINGS   1
25
26 static void init_setup_svwks(struct pci_dev *, ide_pci_device_t *);
27 static void init_setup_csb6(struct pci_dev *, ide_pci_device_t *);
28 static unsigned int init_chipset_svwks(struct pci_dev *, const char *);
29 static void init_hwif_svwks(ide_hwif_t *);
30 static void init_dma_svwks(ide_hwif_t *, unsigned long);
31
32 static ide_pci_device_t serverworks_chipsets[] __devinitdata = {
33         {       /* 0 */
34                 .name           = "SvrWks OSB4",
35                 .init_setup     = init_setup_svwks,
36                 .init_chipset   = init_chipset_svwks,
37                 .init_hwif      = init_hwif_svwks,
38                 .channels       = 2,
39                 .autodma        = AUTODMA,
40                 .bootable       = ON_BOARD,
41         },{     /* 1 */
42                 .name           = "SvrWks CSB5",
43                 .init_setup     = init_setup_svwks,
44                 .init_chipset   = init_chipset_svwks,
45                 .init_hwif      = init_hwif_svwks,
46                 .init_dma       = init_dma_svwks,
47                 .channels       = 2,
48                 .autodma        = AUTODMA,
49                 .bootable       = ON_BOARD,
50         },{     /* 2 */
51                 .name           = "SvrWks CSB6",
52                 .init_setup     = init_setup_csb6,
53                 .init_chipset   = init_chipset_svwks,
54                 .init_hwif      = init_hwif_svwks,
55                 .init_dma       = init_dma_svwks,
56                 .channels       = 2,
57                 .autodma        = AUTODMA,
58                 .bootable       = ON_BOARD,
59         },{     /* 3 */
60                 .name           = "SvrWks CSB6",
61                 .init_setup     = init_setup_csb6,
62                 .init_chipset   = init_chipset_svwks,
63                 .init_hwif      = init_hwif_svwks,
64                 .init_dma       = init_dma_svwks,
65                 .channels       = 1,    /* 2 */
66                 .autodma        = AUTODMA,
67                 .bootable       = ON_BOARD,
68         }
69 };
70
71 #endif /* SERVERWORKS_H */