diff options
| author | Linus Torvalds <[email protected]> | 2014-09-07 20:06:44 -0700 | 
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2014-09-07 20:06:44 -0700 | 
| commit | cfa7c641ded6e67a8d8fc54bd24f53a60465e68f (patch) | |
| tree | a6e0e8ca2a804db26d8ca40c125bdf61f7e6ee6a /drivers/ata/ahci.c | |
| parent | b531f5dd9cb84c5ee40156a230f8e28f69083821 (diff) | |
| parent | 0babe614b6b4c7d1d8e12d7a6dbdac6e2f0df8e2 (diff) | |
Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata fixes from Tejun Heo:
 "Two patches are to add PCI IDs for ICH9 and all others are device
  specific fixes.  Nothing too interesting"
* 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
  ahci_xgene: Fix the link down in first attempt for the APM X-Gene SoC AHCI SATA host controller driver.
  ahci_xgene: Skip the PHY and clock initialization if already configured by the firmware.
  ahci: add pcid for Marvel 0x9182 controller
  ata: Disabling the async PM for JMicron chip 363/361
  ata_piix: Add Device IDs for Intel 9 Series PCH
  ahci: Add Device IDs for Intel 9 Series PCH
  ata: ahci_tegra: Read calibration fuse
Diffstat (limited to 'drivers/ata/ahci.c')
| -rw-r--r-- | drivers/ata/ahci.c | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index a29f8012fb08..a0cc0edafc78 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -305,6 +305,14 @@ static const struct pci_device_id ahci_pci_tbl[] = {  	{ PCI_VDEVICE(INTEL, 0x9c85), board_ahci }, /* Wildcat Point-LP RAID */  	{ PCI_VDEVICE(INTEL, 0x9c87), board_ahci }, /* Wildcat Point-LP RAID */  	{ PCI_VDEVICE(INTEL, 0x9c8f), board_ahci }, /* Wildcat Point-LP RAID */ +	{ PCI_VDEVICE(INTEL, 0x8c82), board_ahci }, /* 9 Series AHCI */ +	{ PCI_VDEVICE(INTEL, 0x8c83), board_ahci }, /* 9 Series AHCI */ +	{ PCI_VDEVICE(INTEL, 0x8c84), board_ahci }, /* 9 Series RAID */ +	{ PCI_VDEVICE(INTEL, 0x8c85), board_ahci }, /* 9 Series RAID */ +	{ PCI_VDEVICE(INTEL, 0x8c86), board_ahci }, /* 9 Series RAID */ +	{ PCI_VDEVICE(INTEL, 0x8c87), board_ahci }, /* 9 Series RAID */ +	{ PCI_VDEVICE(INTEL, 0x8c8e), board_ahci }, /* 9 Series RAID */ +	{ PCI_VDEVICE(INTEL, 0x8c8f), board_ahci }, /* 9 Series RAID */  	/* JMicron 360/1/3/5/6, match class to avoid IDE function */  	{ PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, @@ -442,6 +450,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {  	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x917a),  	  .driver_data = board_ahci_yes_fbs },			/* 88se9172 */  	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9172), +	  .driver_data = board_ahci_yes_fbs },			/* 88se9182 */ +	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9182),  	  .driver_data = board_ahci_yes_fbs },			/* 88se9172 */  	{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9192),  	  .driver_data = board_ahci_yes_fbs },			/* 88se9172 on some Gigabyte */ @@ -1329,6 +1339,18 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	else if (pdev->vendor == 0x1c44 && pdev->device == 0x8000)  		ahci_pci_bar = AHCI_PCI_BAR_ENMOTUS; +	/* +	 * The JMicron chip 361/363 contains one SATA controller and one +	 * PATA controller,for powering on these both controllers, we must +	 * follow the sequence one by one, otherwise one of them can not be +	 * powered on successfully, so here we disable the async suspend +	 * method for these chips. +	 */ +	if (pdev->vendor == PCI_VENDOR_ID_JMICRON && +		(pdev->device == PCI_DEVICE_ID_JMICRON_JMB363 || +		pdev->device == PCI_DEVICE_ID_JMICRON_JMB361)) +		device_disable_async_suspend(&pdev->dev); +  	/* acquire resources */  	rc = pcim_enable_device(pdev);  	if (rc) |