diff options
author | Tejun Heo <htejun@gmail.com> | 2008-02-06 20:18:53 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-02-11 14:29:42 -0500 |
commit | 7585eb1b7cf4bbace37ce18500809140c8eeccc3 (patch) | |
tree | 81d3e2e1e7a8db7ccf47494cb0426214d8fbd32d /drivers/ata | |
parent | 19af35546de68c872dcb687613e0902a602cb20e (diff) |
pata_via: fix SATA cable detection on cx700
The first port of cx700 is SATA. Fix cable detection.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/pata_via.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c index 39627ab684bf..d119a68c388f 100644 --- a/drivers/ata/pata_via.c +++ b/drivers/ata/pata_via.c | |||
@@ -84,6 +84,7 @@ enum { | |||
84 | VIA_BAD_ID = 0x100, /* Has wrong vendor ID (0x1107) */ | 84 | VIA_BAD_ID = 0x100, /* Has wrong vendor ID (0x1107) */ |
85 | VIA_BAD_AST = 0x200, /* Don't touch Address Setup Timing */ | 85 | VIA_BAD_AST = 0x200, /* Don't touch Address Setup Timing */ |
86 | VIA_NO_ENABLES = 0x400, /* Has no enablebits */ | 86 | VIA_NO_ENABLES = 0x400, /* Has no enablebits */ |
87 | VIA_SATA_PATA = 0x800, /* SATA/PATA combined configuration */ | ||
87 | }; | 88 | }; |
88 | 89 | ||
89 | /* | 90 | /* |
@@ -100,7 +101,7 @@ static const struct via_isa_bridge { | |||
100 | { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 101 | { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
101 | { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 102 | { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
102 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 103 | { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
103 | { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 104 | { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA }, |
104 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES}, | 105 | { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES}, |
105 | { "vt8237a", PCI_DEVICE_ID_VIA_8237A, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 106 | { "vt8237a", PCI_DEVICE_ID_VIA_8237A, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
106 | { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, | 107 | { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, |
@@ -172,6 +173,9 @@ static int via_cable_detect(struct ata_port *ap) { | |||
172 | if (via_cable_override(pdev)) | 173 | if (via_cable_override(pdev)) |
173 | return ATA_CBL_PATA40_SHORT; | 174 | return ATA_CBL_PATA40_SHORT; |
174 | 175 | ||
176 | if ((config->flags & VIA_SATA_PATA) && ap->port_no == 0) | ||
177 | return ATA_CBL_SATA; | ||
178 | |||
175 | /* Early chips are 40 wire */ | 179 | /* Early chips are 40 wire */ |
176 | if ((config->flags & VIA_UDMA) < VIA_UDMA_66) | 180 | if ((config->flags & VIA_UDMA) < VIA_UDMA_66) |
177 | return ATA_CBL_PATA40; | 181 | return ATA_CBL_PATA40; |