Skip to contentSkip to conversation

NVMe: Recognize the MacBook9,1 NVMe controller

PATCH Superseded Carina Willbold 3 participants 3 messages May 16, 2016 – May 23, 2016 NVMe

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 NVMe: Recognize the MacBook9,1 NVMe controller

With this patch, the flash drive of the April 2016 MacBook9,1 12" (A1534) is properly recognized and works just fine.

Signed-off-by Carina Willbold <nvme at elfenteich.de>
---
 drivers/nvme/host/pci.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/nvme/host/pci.c +3 -0
index 4fd733f..207c697 100644
@@ -1732,6 +1732,8 @@ static int nvme_pci_enable(struct nvme_dev *dev)
 	/*
 	 * Temporary fix for the Apple controller found in the MacBook8,1 and
 	 * some MacBook7,1 to avoid controller resets and data loss.
+	 * For the controller found in the MacBook9,1 (device ID 0x2003), it
+	 * seems that this workaround is not necessary.
 	 */
 	if (pdev->vendor == PCI_VENDOR_ID_APPLE && pdev->device == 0x2001) {
 		dev->q_depth = 2;
@@ -2181,6 +2183,7 @@ static const struct pci_device_id nvme_id_table[] = {
 		.driver_data = NVME_QUIRK_IDENTIFY_CNS, },
 	{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },  /* for the MacBook 9,1 */
 	{ 0, }
 };
 MODULE_DEVICE_TABLE(pci, nvme_id_table);
Signature · 1 line
2.8.2
#1 lore raw

PATCH 1/1 NVMe: Recognize the MacBook9,1 NVMe controller

Quoted 4 lines · Carina Willbold

With this patch, the flash drive of the April 2016 MacBook9,1 12" (A1534) is properly recognized and works just fine.

Signed-off-by Carina Willbold <nvme at elfenteich.de>
Reviewed-by Johannes Thumshirn <jthumshirn at suse.de>
Signature · 6 lines
Johannes Thumshirn                                          Storage
jthumshirn at suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg
GF: Felix Imend?rffer, Jane Smithard, Graham Norton
HRB 21284 (AG N?rnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
#2 lore raw

PATCH 1/1 NVMe: Recognize the MacBook9,1 NVMe controller

In reply to Carina Willbold

drivers/nvme/host/pci.c static int nvme_pci_enable(struct nvme_dev *dev) · line 1736

Quoted 3 lines
drivers/nvme/host/pci.c +2 -0
 	 * some MacBook7,1 to avoid controller resets and data loss.
+	 * For the controller found in the MacBook9,1 (device ID 0x2003), it
+	 * seems that this workaround is not necessary.

No need for this comment.

drivers/nvme/host/pci.c static const struct pci_device_id nvme_id_table[] = { · line 2186

Quoted 7 lines
drivers/nvme/host/pci.c +1 -0
 	if (pdev->vendor == PCI_VENDOR_ID_APPLE && pdev->device == 0x2001) {
 		dev->q_depth = 2;
@@ -2181,6 +2183,7 @@ static const struct pci_device_id nvme_id_table[] = {
 		.driver_data = NVME_QUIRK_IDENTIFY_CNS, },
 	{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },  /* for the MacBook 9,1 */

But it might be worth to have a comment above these two entries like

	/*
	 * Controller that don't use the NVMe class code:
         */

and skip the comment after your newly added entry.

Otherwise this looks fine:

Reviewed-by Christoph Hellwig <hch at lst.de>