diff options
| -rw-r--r-- | drivers/ata/sata_via.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c index 101d8c219caf..0ecd0f6aa2c0 100644 --- a/drivers/ata/sata_via.c +++ b/drivers/ata/sata_via.c | |||
| @@ -575,6 +575,19 @@ static void svia_configure(struct pci_dev *pdev) | |||
| 575 | tmp8 |= NATIVE_MODE_ALL; | 575 | tmp8 |= NATIVE_MODE_ALL; |
| 576 | pci_write_config_byte(pdev, SATA_NATIVE_MODE, tmp8); | 576 | pci_write_config_byte(pdev, SATA_NATIVE_MODE, tmp8); |
| 577 | } | 577 | } |
| 578 | |||
| 579 | /* | ||
| 580 | * vt6421 has problems talking to some drives. The following | ||
| 581 | * is the magic fix from Joseph Chan <JosephChan@via.com.tw>. | ||
| 582 | * Please add proper documentation if possible. | ||
| 583 | * | ||
| 584 | * https://bugzilla.kernel.org/show_bug.cgi?id=15173 | ||
| 585 | */ | ||
| 586 | if (pdev->device == 0x3249) { | ||
| 587 | pci_read_config_byte(pdev, 0x52, &tmp8); | ||
| 588 | tmp8 |= 1 << 2; | ||
| 589 | pci_write_config_byte(pdev, 0x52, tmp8); | ||
| 590 | } | ||
| 578 | } | 591 | } |
| 579 | 592 | ||
| 580 | static int svia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) | 593 | static int svia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) |
