diff options
Diffstat (limited to 'drivers/nvme/host/pci.c')
| -rw-r--r-- | drivers/nvme/host/pci.c | 24 | 
1 files changed, 18 insertions, 6 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 5b95c94ee40f..492f319ebdf3 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -5,7 +5,6 @@   */  #include <linux/acpi.h> -#include <linux/aer.h>  #include <linux/async.h>  #include <linux/blkdev.h>  #include <linux/blk-mq.h> @@ -2535,7 +2534,6 @@ static int nvme_pci_enable(struct nvme_dev *dev)  	nvme_map_cmb(dev); -	pci_enable_pcie_error_reporting(pdev);  	pci_save_state(pdev);  	result = nvme_pci_configure_admin_queue(dev); @@ -2600,10 +2598,8 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown)  	nvme_suspend_io_queues(dev);  	nvme_suspend_queue(dev, 0);  	pci_free_irq_vectors(pdev); -	if (pci_is_enabled(pdev)) { -		pci_disable_pcie_error_reporting(pdev); +	if (pci_is_enabled(pdev))  		pci_disable_device(pdev); -	}  	nvme_reap_pending_cqes(dev);  	nvme_cancel_tagset(&dev->ctrl); @@ -2960,7 +2956,7 @@ static struct nvme_dev *nvme_pci_alloc_dev(struct pci_dev *pdev,  	 * over a single page.  	 */  	dev->ctrl.max_hw_sectors = min_t(u32, -		NVME_MAX_KB_SZ << 1, dma_max_mapping_size(&pdev->dev) >> 9); +		NVME_MAX_KB_SZ << 1, dma_opt_mapping_size(&pdev->dev) >> 9);  	dev->ctrl.max_segments = NVME_MAX_SEGS;  	/* @@ -3073,6 +3069,7 @@ out_dev_unmap:  	nvme_dev_unmap(dev);  out_uninit_ctrl:  	nvme_uninit_ctrl(&dev->ctrl); +	nvme_put_ctrl(&dev->ctrl);  	return result;  } @@ -3405,6 +3402,8 @@ static const struct pci_device_id nvme_id_table[] = {  		.driver_data = NVME_QUIRK_NO_DEEPEST_PS, },  	{ PCI_DEVICE(0x2646, 0x2263),   /* KINGSTON A2000 NVMe SSD  */  		.driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, +	{ PCI_DEVICE(0x2646, 0x5013),   /* Kingston KC3000, Kingston FURY Renegade */ +		.driver_data = NVME_QUIRK_NO_SECONDARY_TEMP_THRESH, },  	{ PCI_DEVICE(0x2646, 0x5018),   /* KINGSTON OM8SFP4xxxxP OS21012 NVMe SSD */  		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },  	{ PCI_DEVICE(0x2646, 0x5016),   /* KINGSTON OM3PGP4xxxxP OS21011 NVMe SSD */ @@ -3415,6 +3414,8 @@ static const struct pci_device_id nvme_id_table[] = {  		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, },  	{ PCI_DEVICE(0x2646, 0x501E),   /* KINGSTON OM3PGP4xxxxQ OS21011 NVMe SSD */  		.driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, +	{ PCI_DEVICE(0x1f40, 0x1202),   /* Netac Technologies Co. NV3000 NVMe SSD */ +		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1f40, 0x5236),   /* Netac Technologies Co. NV7000 NVMe SSD */  		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1e4B, 0x1001),   /* MAXIO MAP1001 */ @@ -3423,6 +3424,8 @@ static const struct pci_device_id nvme_id_table[] = {  		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1e4B, 0x1202),   /* MAXIO MAP1202 */  		.driver_data = NVME_QUIRK_BOGUS_NID, }, +	{ PCI_DEVICE(0x1e4B, 0x1602),   /* MAXIO MAP1602 */ +		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1cc1, 0x5350),   /* ADATA XPG GAMMIX S50 */  		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1dbe, 0x5236),   /* ADATA XPG GAMMIX S70 */ @@ -3435,7 +3438,16 @@ static const struct pci_device_id nvme_id_table[] = {  		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1d97, 0x2263), /* Lexar NM610 */  		.driver_data = NVME_QUIRK_BOGUS_NID, }, +	{ PCI_DEVICE(0x1d97, 0x1d97), /* Lexar NM620 */ +		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(0x1d97, 0x2269), /* Lexar NM760 */ +		.driver_data = NVME_QUIRK_BOGUS_NID | +				NVME_QUIRK_IGNORE_DEV_SUBNQN, }, +	{ PCI_DEVICE(0x10ec, 0x5763), /* TEAMGROUP T-FORCE CARDEA ZERO Z330 SSD */ +		.driver_data = NVME_QUIRK_BOGUS_NID, }, +	{ PCI_DEVICE(0x1e4b, 0x1602), /* HS-SSD-FUTURE 2048G  */ +		.driver_data = NVME_QUIRK_BOGUS_NID, }, +	{ PCI_DEVICE(0x10ec, 0x5765), /* TEAMGROUP MP33 2TB SSD */  		.driver_data = NVME_QUIRK_BOGUS_NID, },  	{ PCI_DEVICE(PCI_VENDOR_ID_AMAZON, 0x0061),  		.driver_data = NVME_QUIRK_DMA_ADDRESS_BITS_48, },  |