aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/via82cxxx.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-09-11 16:28:37 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-09-11 16:28:37 -0400
commit58e47bb1767aa89bfa9cf7ecf4bc051886ae22b3 (patch)
tree63d0c3162e788e38370067f9ea9bc92f9b48e818 /drivers/ide/pci/via82cxxx.c
parent6c28c1f59dce3325d373f44766e23eb4237a74c8 (diff)
via82cxxx: add Arima W730-K8 and other rebadgings to short cables list
Port of Alan's patch for pata_via.c. Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Mikael Pettersson <mikpe@it.uu.se> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/via82cxxx.c')
-rw-r--r--drivers/ide/pci/via82cxxx.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c
index 8c539381d622..a7be7795e6af 100644
--- a/drivers/ide/pci/via82cxxx.c
+++ b/drivers/ide/pci/via82cxxx.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * 2 *
3 * Version 3.46 3 * Version 3.47
4 * 4 *
5 * VIA IDE driver for Linux. Supported southbridges: 5 * VIA IDE driver for Linux. Supported southbridges:
6 * 6 *
@@ -430,19 +430,26 @@ static struct dmi_system_id cable_dmi_table[] = {
430 { } 430 { }
431}; 431};
432 432
433static int via_cable_override(void) 433static int via_cable_override(struct pci_dev *pdev)
434{ 434{
435 /* Systems by DMI */ 435 /* Systems by DMI */
436 if (dmi_check_system(cable_dmi_table)) 436 if (dmi_check_system(cable_dmi_table))
437 return 1; 437 return 1;
438
439 /* Arima W730-K8/Targa Visionary 811/... */
440 if (pdev->subsystem_vendor == 0x161F &&
441 pdev->subsystem_device == 0x2032)
442 return 1;
443
438 return 0; 444 return 0;
439} 445}
440 446
441static u8 __devinit via82cxxx_cable_detect(ide_hwif_t *hwif) 447static u8 __devinit via82cxxx_cable_detect(ide_hwif_t *hwif)
442{ 448{
443 struct via82cxxx_dev *vdev = pci_get_drvdata(hwif->pci_dev); 449 struct pci_dev *pdev = hwif->pci_dev;
450 struct via82cxxx_dev *vdev = pci_get_drvdata(pdev);
444 451
445 if (via_cable_override()) 452 if (via_cable_override(pdev))
446 return ATA_CBL_PATA40_SHORT; 453 return ATA_CBL_PATA40_SHORT;
447 454
448 if ((vdev->via_80w >> hwif->channel) & 1) 455 if ((vdev->via_80w >> hwif->channel) & 1)