diff options
Diffstat (limited to 'drivers/nvme/host/core.c')
| -rw-r--r-- | drivers/nvme/host/core.c | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index c258a1ce4b28..d3d6b7bd6903 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2257,6 +2257,16 @@ static const struct nvme_core_quirk_entry core_quirks[] = {  		.vid = 0x1179,  		.mn = "THNSF5256GPUK TOSHIBA",  		.quirks = NVME_QUIRK_NO_APST, +	}, +	{ +		/* +		 * This LiteON CL1-3D*-Q11 firmware version has a race +		 * condition associated with actions related to suspend to idle +		 * LiteON has resolved the problem in future firmware +		 */ +		.vid = 0x14a4, +		.fr = "22301111", +		.quirks = NVME_QUIRK_SIMPLE_SUSPEND,  	}  }; @@ -2597,6 +2607,9 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)  			goto out_free;  	} +	if (!(ctrl->ops->flags & NVME_F_FABRICS)) +		ctrl->cntlid = le16_to_cpu(id->cntlid); +  	if (!ctrl->identified) {  		int i; @@ -2697,7 +2710,6 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)  			goto out_free;  		}  	} else { -		ctrl->cntlid = le16_to_cpu(id->cntlid);  		ctrl->hmpre = le32_to_cpu(id->hmpre);  		ctrl->hmmin = le32_to_cpu(id->hmmin);  		ctrl->hmminds = le32_to_cpu(id->hmminds);  | 
