diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-19 11:59:49 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-19 11:59:49 -0800 | 
| commit | 6656b3fc8aba2eb7ca00c06c7fe4917938b0b652 (patch) | |
| tree | 75516a951a337809f5548cc19204fd2d33cfffae | |
| parent | 33e0d57f5d2f079104611be9f3fccc27ef2c6b24 (diff) | |
| parent | b1353e4f40f6179ab26a3bb1b2e1fe29ffe534f5 (diff) | |
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  sata_via: apply magic FIFO fix to vt6420 too
| -rw-r--r-- | drivers/ata/sata_via.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c index c21589986c69..8b677bbf2d37 100644 --- a/drivers/ata/sata_via.c +++ b/drivers/ata/sata_via.c @@ -538,7 +538,7 @@ static int vt8251_prepare_host(struct pci_dev *pdev, struct ata_host **r_host)  	return 0;  } -static void svia_configure(struct pci_dev *pdev) +static void svia_configure(struct pci_dev *pdev, int board_id)  {  	u8 tmp8; @@ -577,7 +577,7 @@ static void svia_configure(struct pci_dev *pdev)  	}  	/* -	 * vt6421 has problems talking to some drives.  The following +	 * vt6420/1 has problems talking to some drives.  The following  	 * is the fix from Joseph Chan <JosephChan@via.com.tw>.  	 *  	 * When host issues HOLD, device may send up to 20DW of data @@ -596,8 +596,9 @@ static void svia_configure(struct pci_dev *pdev)  	 *  	 * https://bugzilla.kernel.org/show_bug.cgi?id=15173  	 * http://article.gmane.org/gmane.linux.ide/46352 +	 * http://thread.gmane.org/gmane.linux.kernel/1062139  	 */ -	if (pdev->device == 0x3249) { +	if (board_id == vt6420 || board_id == vt6421) {  		pci_read_config_byte(pdev, 0x52, &tmp8);  		tmp8 |= 1 << 2;  		pci_write_config_byte(pdev, 0x52, tmp8); @@ -652,7 +653,7 @@ static int svia_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	if (rc)  		return rc; -	svia_configure(pdev); +	svia_configure(pdev, board_id);  	pci_set_master(pdev);  	return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, | 
