aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/ahci.c2
-rw-r--r--drivers/ata/ahci_imx.c3
-rw-r--r--drivers/ata/ahci_platform.c1
-rw-r--r--drivers/ata/libata-core.c6
-rw-r--r--drivers/ata/libata-zpodd.c4
-rw-r--r--drivers/ata/pata_arasan_cf.c1
6 files changed, 11 insertions, 6 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index c55e00562527..ef8642e12a76 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -437,6 +437,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
437 .driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */ 437 .driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */
438 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3), 438 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
439 .driver_data = board_ahci_yes_fbs }, 439 .driver_data = board_ahci_yes_fbs },
440 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
441 .driver_data = board_ahci_yes_fbs },
440 442
441 /* Promise */ 443 /* Promise */
442 { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ 444 { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */
diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c
index ae2d73fe321e..3e23e9941dad 100644
--- a/drivers/ata/ahci_imx.c
+++ b/drivers/ata/ahci_imx.c
@@ -113,7 +113,7 @@ static int imx6q_sata_init(struct device *dev, void __iomem *mmio)
113 /* 113 /*
114 * set PHY Paremeters, two steps to configure the GPR13, 114 * set PHY Paremeters, two steps to configure the GPR13,
115 * one write for rest of parameters, mask of first write 115 * one write for rest of parameters, mask of first write
116 * is 0x07fffffd, and the other one write for setting 116 * is 0x07ffffff, and the other one write for setting
117 * the mpll_clk_en. 117 * the mpll_clk_en.
118 */ 118 */
119 regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK 119 regmap_update_bits(imxpriv->gpr, 0x34, IMX6Q_GPR13_SATA_RX_EQ_VAL_MASK
@@ -124,6 +124,7 @@ static int imx6q_sata_init(struct device *dev, void __iomem *mmio)
124 | IMX6Q_GPR13_SATA_TX_ATTEN_MASK 124 | IMX6Q_GPR13_SATA_TX_ATTEN_MASK
125 | IMX6Q_GPR13_SATA_TX_BOOST_MASK 125 | IMX6Q_GPR13_SATA_TX_BOOST_MASK
126 | IMX6Q_GPR13_SATA_TX_LVL_MASK 126 | IMX6Q_GPR13_SATA_TX_LVL_MASK
127 | IMX6Q_GPR13_SATA_MPLL_CLK_EN
127 | IMX6Q_GPR13_SATA_TX_EDGE_RATE 128 | IMX6Q_GPR13_SATA_TX_EDGE_RATE
128 , IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB 129 , IMX6Q_GPR13_SATA_RX_EQ_VAL_3_0_DB
129 | IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M 130 | IMX6Q_GPR13_SATA_RX_LOS_LVL_SATA2M
diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
index f9554318504f..4b231baceb09 100644
--- a/drivers/ata/ahci_platform.c
+++ b/drivers/ata/ahci_platform.c
@@ -329,6 +329,7 @@ static SIMPLE_DEV_PM_OPS(ahci_pm_ops, ahci_suspend, ahci_resume);
329static const struct of_device_id ahci_of_match[] = { 329static const struct of_device_id ahci_of_match[] = {
330 { .compatible = "snps,spear-ahci", }, 330 { .compatible = "snps,spear-ahci", },
331 { .compatible = "snps,exynos5440-ahci", }, 331 { .compatible = "snps,exynos5440-ahci", },
332 { .compatible = "ibm,476gtr-ahci", },
332 {}, 333 {},
333}; 334};
334MODULE_DEVICE_TABLE(of, ahci_of_match); 335MODULE_DEVICE_TABLE(of, ahci_of_match);
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 81a94a3919db..dae73efe5dbf 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4156,6 +4156,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
4156 { "ST3320[68]13AS", "SD1[5-9]", ATA_HORKAGE_NONCQ | 4156 { "ST3320[68]13AS", "SD1[5-9]", ATA_HORKAGE_NONCQ |
4157 ATA_HORKAGE_FIRMWARE_WARN }, 4157 ATA_HORKAGE_FIRMWARE_WARN },
4158 4158
4159 /* Seagate Momentus SpinPoint M8 seem to have FPMDA_AA issues */
4160 { "ST1000LM024 HN-M101MBB", "2AR10001", ATA_HORKAGE_BROKEN_FPDMA_AA },
4161
4159 /* Blacklist entries taken from Silicon Image 3124/3132 4162 /* Blacklist entries taken from Silicon Image 3124/3132
4160 Windows driver .inf file - also several Linux problem reports */ 4163 Windows driver .inf file - also several Linux problem reports */
4161 { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, }, 4164 { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, },
@@ -6304,10 +6307,9 @@ static void ata_port_detach(struct ata_port *ap)
6304 for (i = 0; i < SATA_PMP_MAX_PORTS; i++) 6307 for (i = 0; i < SATA_PMP_MAX_PORTS; i++)
6305 ata_tlink_delete(&ap->pmp_link[i]); 6308 ata_tlink_delete(&ap->pmp_link[i]);
6306 } 6309 }
6307 ata_tport_delete(ap);
6308
6309 /* remove the associated SCSI host */ 6310 /* remove the associated SCSI host */
6310 scsi_remove_host(ap->scsi_host); 6311 scsi_remove_host(ap->scsi_host);
6312 ata_tport_delete(ap);
6311} 6313}
6312 6314
6313/** 6315/**
diff --git a/drivers/ata/libata-zpodd.c b/drivers/ata/libata-zpodd.c
index 68f9e3293e9c..88949c6d55dd 100644
--- a/drivers/ata/libata-zpodd.c
+++ b/drivers/ata/libata-zpodd.c
@@ -88,15 +88,13 @@ static enum odd_mech_type zpodd_get_mech_type(struct ata_device *dev)
88static bool odd_can_poweroff(struct ata_device *ata_dev) 88static bool odd_can_poweroff(struct ata_device *ata_dev)
89{ 89{
90 acpi_handle handle; 90 acpi_handle handle;
91 acpi_status status;
92 struct acpi_device *acpi_dev; 91 struct acpi_device *acpi_dev;
93 92
94 handle = ata_dev_acpi_handle(ata_dev); 93 handle = ata_dev_acpi_handle(ata_dev);
95 if (!handle) 94 if (!handle)
96 return false; 95 return false;
97 96
98 status = acpi_bus_get_device(handle, &acpi_dev); 97 if (acpi_bus_get_device(handle, &acpi_dev))
99 if (ACPI_FAILURE(status))
100 return false; 98 return false;
101 99
102 return acpi_device_can_poweroff(acpi_dev); 100 return acpi_device_can_poweroff(acpi_dev);
diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
index e88690ebfd82..73492dd4a4bc 100644
--- a/drivers/ata/pata_arasan_cf.c
+++ b/drivers/ata/pata_arasan_cf.c
@@ -319,6 +319,7 @@ static int cf_init(struct arasan_cf_dev *acdev)
319 ret = clk_set_rate(acdev->clk, 166000000); 319 ret = clk_set_rate(acdev->clk, 166000000);
320 if (ret) { 320 if (ret) {
321 dev_warn(acdev->host->dev, "clock set rate failed"); 321 dev_warn(acdev->host->dev, "clock set rate failed");
322 clk_disable_unprepare(acdev->clk);
322 return ret; 323 return ret;
323 } 324 }
324 325