pata_via: fix SATA cable detection on cx700
PATCH 1/1 pata_via: fix SATA cable detection on cx700
The first port of cx700 is SATA. Fix cable detection.
Signed-off-by Tejun Heo <[email protected]>
--- drivers/ata/pata_via.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
drivers/ata/pata_via.c +5 -1
@@ -84,6 +84,7 @@ enum {VIA_BAD_ID =0x100 ,/* Has wrong vendor ID (0x1107) */ VIA_BAD_AST =0x200 ,/* Don't touch Address Setup Timing */ VIA_NO_ENABLES =0x400 ,/* Has no enablebits */ + VIA_SATA_PATA = 0x800, /* SATA/PATA combined configuration */ };/*
@@ -100,7 +101,7 @@ static const struct via_isa_bridge { { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, - { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, + { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA }, { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES}, { "vt8237a", PCI_DEVICE_ID_VIA_8237A, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, { "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) {if (via_cable_override (pdev))return ATA_CBL_PATA40_SHORT ; +if ((config->flags &VIA_SATA_PATA ) && ap->port_no ==0 ) +return ATA_CBL_SATA ; +/* Early chips are 40 wire */ if ((config->flags &VIA_UDMA ) <VIA_UDMA_66 )return ATA_CBL_PATA40 ;
Quoted 1 line · On Thu, 07 Feb 2008 10:18:53 +0900 Tejun Heo <[email protected]> wrote:
The first port of cx700 is SATA. Fix cable detection.
That should be set anyway by the drive detect but it does no harm and fixes stuff if there is no drive.
Acked-by Alan Cox <[email protected]>
Jeff Garzik
AppliedQuoted 6 lines · Tejun Heo
The first port of cx700 is SATA. Fix cable detection.
Signed-off-by Tejun Heo <[email protected]>--- drivers/ata/pata_via.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
applied