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.
This commit is contained in:
Коммит
5317821c08
|
@ -24,8 +24,8 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/tegra-powergate.h>
|
||||
#include <linux/regulator/consumer.h>
|
||||
#include <soc/tegra/pmc.h>
|
||||
#include "ahci.h"
|
||||
|
||||
#define SATA_CONFIGURATION_0 0x180
|
||||
|
|
|
@ -344,7 +344,7 @@ static struct ata_port_operations xgene_ahci_ops = {
|
|||
};
|
||||
|
||||
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,
|
||||
.udma_mask = ATA_UDMA6,
|
||||
.port_ops = &xgene_ahci_ops,
|
||||
|
@ -480,7 +480,7 @@ static int xgene_ahci_probe(struct platform_device *pdev)
|
|||
/* Configure the host controller */
|
||||
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);
|
||||
if (rc)
|
||||
|
|
|
@ -4228,7 +4228,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|||
{ "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
|
||||
{ "Crucial_CT???M500SSD*", 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
|
||||
|
|
|
@ -360,7 +360,7 @@ static int pata_s3c_wait_after_reset(struct ata_link *link,
|
|||
/*
|
||||
* 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)
|
||||
{
|
||||
struct ata_ioports *ioaddr = &ap->ioaddr;
|
||||
|
|
|
@ -585,7 +585,7 @@ static int scc_wait_after_reset(struct ata_link *link, unsigned int devmask,
|
|||
* 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)
|
||||
{
|
||||
struct ata_ioports *ioaddr = &ap->ioaddr;
|
||||
|
@ -599,9 +599,7 @@ static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
|
|||
udelay(20);
|
||||
out_be32(ioaddr->ctl_addr, ap->ctl);
|
||||
|
||||
scc_wait_after_reset(&ap->link, devmask, deadline);
|
||||
|
||||
return 0;
|
||||
return scc_wait_after_reset(&ap->link, devmask, deadline);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -618,7 +616,8 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes,
|
|||
{
|
||||
struct ata_port *ap = link->ap;
|
||||
unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
|
||||
unsigned int devmask = 0, err_mask;
|
||||
unsigned int devmask = 0;
|
||||
int rc;
|
||||
u8 err;
|
||||
|
||||
DPRINTK("ENTER\n");
|
||||
|
@ -634,9 +633,9 @@ static int scc_softreset(struct ata_link *link, unsigned int *classes,
|
|||
|
||||
/* issue bus reset */
|
||||
DPRINTK("about to softreset, devmask=%x\n", devmask);
|
||||
err_mask = scc_bus_softreset(ap, devmask, deadline);
|
||||
if (err_mask) {
|
||||
ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", err_mask);
|
||||
rc = scc_bus_softreset(ap, devmask, deadline);
|
||||
if (rc) {
|
||||
ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", rc);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче