diff options
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/pci/via82cxxx.c | 15 |
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 | ||
433 | static int via_cable_override(void) | 433 | static 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 | ||
441 | static u8 __devinit via82cxxx_cable_detect(ide_hwif_t *hwif) | 447 | static 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) |