summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGabe Black <gabeblack@chromium.org>2012-01-26 16:01:13 -0800
committerGerrit <chrome-bot@google.com>2012-01-26 17:29:52 -0800
commit65df619cdea0e1b589254072d562b3d0fdeaf3b5 (patch)
treeb6f4f91e2b7082d8501743700a4bfa98d4e36345 /drivers
parent9fe6216a8376c7b242856d3576024452032c4b27 (diff)
AHCI: Make sending the SETFEATURES_XFER command optional
This command doesn't really do anything when talking to a SATA device, and sending it confuses some of them. This change makes sending the command optional, and defaults to not. The situations where it should be sent are not the common case. With the standard SSD in the machine, here are some times with the option turned off: 1. 8277 2. 8273 3. 8050 And turned on: 1. 8303 2. 8155 3. 8276 Sending that command seems to have no meaningful effect on performance. BUG=chrome-os-partner:7714 TEST=Booted off an SSD that hadn't worked with U-Boot previously. This SSD was lent to us by Grant, and has chips labelled as Toshiba NV6424, Taiwan 11159AE P, and TC58NVG5D2FTA10. Change-Id: I750a6c7931a95a1529e0b99ee98528a549824ee4 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://gerrit.chromium.org/gerrit/14916 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/ahci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
index 4afdc76e88..1dce6dc493 100644
--- a/drivers/block/ahci.c
+++ b/drivers/block/ahci.c
@@ -365,6 +365,7 @@ static void ahci_fill_cmd_slot(struct ahci_ioports *pp, u32 opts)
}
+#ifdef CONFIG_AHCI_SETFEATURES_XFER
static void ahci_set_feature(u8 port)
{
struct ahci_ioports *pp = &(probe_ent->port[port]);
@@ -389,6 +390,7 @@ static void ahci_set_feature(u8 port)
printf("set feature error on port %d!\n", port);
}
}
+#endif
static int ahci_port_start(u8 port)
@@ -738,7 +740,9 @@ void scsi_low_level_init(int busdevfunc)
printf("Can not start port %d\n", i);
continue;
}
+#ifdef CONFIG_AHCI_SETFEATURES_XFER
ahci_set_feature((u8) i);
+#endif
}
}
}