Commit 5317821c authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata

Pull libata fixes from Tejun Heo:
 "Nothing drastic but pushing out early due to build breakage in the new
  tegra platform.

  Additionally:

   - M550 tagged trim blacklist pattern is widened so that it matches
     the new 1TB model

   - three controller specific fixes"

* 'for-3.17-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
  libata: widen Crucial M550 blacklist matching
  pata_scc: propagate return value of scc_wait_after_reset
  ata: ahci_tegra: Change include to fix compilation
  pata_samsung_cf: change ret type to signed
  ahci_xgene: Removing NCQ support from the APM X-Gene SoC AHCI SATA Host Controller driver.
parents cee5aa1f 2a13772a
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/of_device.h> #include <linux/of_device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/tegra-powergate.h>
#include <linux/regulator/consumer.h> #include <linux/regulator/consumer.h>
#include <soc/tegra/pmc.h>
#include "ahci.h" #include "ahci.h"
#define SATA_CONFIGURATION_0 0x180 #define SATA_CONFIGURATION_0 0x180
......
...@@ -344,7 +344,7 @@ static struct ata_port_operations xgene_ahci_ops = { ...@@ -344,7 +344,7 @@ static struct ata_port_operations xgene_ahci_ops = {
}; };
static const struct ata_port_info xgene_ahci_port_info = { static const struct ata_port_info xgene_ahci_port_info = {
.flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ, .flags = AHCI_FLAG_COMMON,
.pio_mask = ATA_PIO4, .pio_mask = ATA_PIO4,
.udma_mask = ATA_UDMA6, .udma_mask = ATA_UDMA6,
.port_ops = &xgene_ahci_ops, .port_ops = &xgene_ahci_ops,
...@@ -480,7 +480,7 @@ static int xgene_ahci_probe(struct platform_device *pdev) ...@@ -480,7 +480,7 @@ static int xgene_ahci_probe(struct platform_device *pdev)
/* Configure the host controller */ /* Configure the host controller */
xgene_ahci_hw_init(hpriv); xgene_ahci_hw_init(hpriv);
hpriv->flags = AHCI_HFLAG_NO_PMP | AHCI_HFLAG_YES_NCQ; hpriv->flags = AHCI_HFLAG_NO_PMP | AHCI_HFLAG_NO_NCQ;
rc = ahci_platform_init_host(pdev, hpriv, &xgene_ahci_port_info); rc = ahci_platform_init_host(pdev, hpriv, &xgene_ahci_port_info);
if (rc) if (rc)
......
...@@ -4228,7 +4228,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { ...@@ -4228,7 +4228,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
{ "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, { "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
{ "Crucial_CT???M500SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, { "Crucial_CT???M500SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
{ "Micron_M550*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, { "Micron_M550*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
{ "Crucial_CT???M550SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, { "Crucial_CT*M550SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
/* /*
* Some WD SATA-I drives spin up and down erratically when the link * Some WD SATA-I drives spin up and down erratically when the link
......
...@@ -360,7 +360,7 @@ static int pata_s3c_wait_after_reset(struct ata_link *link, ...@@ -360,7 +360,7 @@ static int pata_s3c_wait_after_reset(struct ata_link *link,
/* /*
* pata_s3c_bus_softreset - PATA device software reset * pata_s3c_bus_softreset - PATA device software reset
*/ */
static unsigned int pata_s3c_bus_softreset(struct ata_port *ap, static int pata_s3c_bus_softreset(struct ata_port *ap,
unsigned long deadline) unsigned long deadline)
{ {
struct ata_ioports *ioaddr = &ap->ioaddr; struct ata_ioports *ioaddr = &ap->ioaddr;
......
...@@ -585,7 +585,7 @@ static int scc_wait_after_reset(struct ata_link *link, unsigned int devmask, ...@@ -585,7 +585,7 @@ static int scc_wait_after_reset(struct ata_link *link, unsigned int devmask,
* Note: Original code is ata_bus_softreset(). * Note: Original code is ata_bus_softreset().
*/ */
static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask, static int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
unsigned long deadline) unsigned long deadline)
{ {
struct ata_ioports *ioaddr = &ap->ioaddr; struct ata_ioports *ioaddr = &ap->ioaddr;
...@@ -599,9 +599,7 @@ static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask, ...@@ -599,9 +599,7 @@ static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
udelay(20); udelay(20);
out_be32(ioaddr->ctl_addr, ap->ctl); out_be32(ioaddr->ctl_addr, ap->ctl);
scc_wait_after_reset(&ap->link, devmask, deadline); return scc_wait_after_reset(&ap->link, devmask, deadline);
return 0;
} }
/** /**
...@@ -618,7 +616,8 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes, ...@@ -618,7 +616,8 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes,
{ {
struct ata_port *ap = link->ap; struct ata_port *ap = link->ap;
unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS; unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
unsigned int devmask = 0, err_mask; unsigned int devmask = 0;
int rc;
u8 err; u8 err;
DPRINTK("ENTER\n"); DPRINTK("ENTER\n");
...@@ -634,9 +633,9 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes, ...@@ -634,9 +633,9 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes,
/* issue bus reset */ /* issue bus reset */
DPRINTK("about to softreset, devmask=%x\n", devmask); DPRINTK("about to softreset, devmask=%x\n", devmask);
err_mask = scc_bus_softreset(ap, devmask, deadline); rc = scc_bus_softreset(ap, devmask, deadline);
if (err_mask) { if (rc) {
ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", err_mask); ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", rc);
return -EIO; return -EIO;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment