Commit 9c599f2b authored by Tejun Heo's avatar Tejun Heo Committed by Jiri Slaby

ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks

commit 66a7cbc3 upstream.

Samsung pci-e SSDs on macbooks failed miserably on NCQ commands, so
67809f85 ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks")
disabled NCQ on them.  It turns out that NCQ is fine as long as MSI is
not used, so let's turn off MSI and leave NCQ on.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=60731
Tested-by: <dorin@i51.org>
Tested-by: default avatarImre Kaloz <kaloz@openwrt.org>
Fixes: 67809f85 ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks")
Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
parent 8a489593
...@@ -61,6 +61,7 @@ enum board_ids { ...@@ -61,6 +61,7 @@ enum board_ids {
/* board IDs by feature in alphabetical order */ /* board IDs by feature in alphabetical order */
board_ahci, board_ahci,
board_ahci_ign_iferr, board_ahci_ign_iferr,
board_ahci_nomsi,
board_ahci_noncq, board_ahci_noncq,
board_ahci_nosntf, board_ahci_nosntf,
board_ahci_yes_fbs, board_ahci_yes_fbs,
...@@ -120,6 +121,13 @@ static const struct ata_port_info ahci_port_info[] = { ...@@ -120,6 +121,13 @@ static const struct ata_port_info ahci_port_info[] = {
.udma_mask = ATA_UDMA6, .udma_mask = ATA_UDMA6,
.port_ops = &ahci_ops, .port_ops = &ahci_ops,
}, },
[board_ahci_nomsi] = {
AHCI_HFLAGS (AHCI_HFLAG_NO_MSI),
.flags = AHCI_FLAG_COMMON,
.pio_mask = ATA_PIO4,
.udma_mask = ATA_UDMA6,
.port_ops = &ahci_ops,
},
[board_ahci_noncq] = { [board_ahci_noncq] = {
AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ), AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ),
.flags = AHCI_FLAG_COMMON, .flags = AHCI_FLAG_COMMON,
...@@ -479,10 +487,10 @@ static const struct pci_device_id ahci_pci_tbl[] = { ...@@ -479,10 +487,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1062 */ { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1062 */
/* /*
* Samsung SSDs found on some macbooks. NCQ times out. * Samsung SSDs found on some macbooks. NCQ times out if MSI is
* https://bugzilla.kernel.org/show_bug.cgi?id=60731 * enabled. https://bugzilla.kernel.org/show_bug.cgi?id=60731
*/ */
{ PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_noncq }, { PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_nomsi },
/* Enmotus */ /* Enmotus */
{ PCI_DEVICE(0x1c44, 0x8000), board_ahci }, { PCI_DEVICE(0x1c44, 0x8000), board_ahci },
......
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