lkml.org 
[lkml]   [2019]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH] nvme: Add quirk for LiteON CL1 devices running FW 22301111
Date
> -----Original Message-----
> From: Keith Busch <kbusch@kernel.org>
> Sent: Wednesday, August 14, 2019 2:32 PM
> To: Limonciello, Mario
> Cc: Jens Axboe; Christoph Hellwig; Sagi Grimberg; linux-
> nvme@lists.infradead.org; LKML; Hong, Ryan; Wang, Crag; sjg@google.com;
> Hyde, Charles - Dell Team; Dominguez, Jared
> Subject: Re: [PATCH] nvme: Add quirk for LiteON CL1 devices running FW
> 22301111
>
>
> [EXTERNAL EMAIL]
>
> On Wed, Aug 14, 2019 at 09:05:49AM -0700, Mario Limonciello wrote:
> > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> > index 8f3fbe5..47c7754 100644
> > --- a/drivers/nvme/host/core.c
> > +++ b/drivers/nvme/host/core.c
> > @@ -2251,6 +2251,29 @@ static const struct nvme_core_quirk_entry
> core_quirks[] = {
> > .vid = 0x1179,
> > .mn = "THNSF5256GPUK TOSHIBA",
> > .quirks = NVME_QUIRK_NO_APST,
> > + },
> > + /*
> > + * This LiteON CL1 firmware version has a race condition associated with
> > + * actions related to suspend to idle. LiteON has resolved the problem
> > + * in future firmware.
> > + */
> > + {
> > + .vid = 0x14a4,
> > + .mn = "CL1-3D128-Q11 NVMe LITEON 128GB",
> > + .fr = "22301111",
> > + .quirks = NVME_QUIRK_SIMPLE_SUSPEND,
> > + },
> > + {
> > + .vid = 0x14a4,
> > + .mn = "CL1-3D256-Q11 NVMe LITEON 256GB",
> > + .fr = "22301111",
> > + .quirks = NVME_QUIRK_SIMPLE_SUSPEND,
> > + },
> > + {
> > + .vid = 0x14a4,
> > + .mn = "CL1-3D512-Q11 NVMe LITEON 512GB",
> > + .fr = "22301111",
> > + .quirks = NVME_QUIRK_SIMPLE_SUSPEND,
> > }
> > };
>
> Are there models from this vendor with this same 'fr' that don't need
> this quirk? If not, you can leave .mn blank and just use a single entry.

Yes, I confirmed this firmware version string is only used on the CL1 family
of devices.

I will send a v2 modifying this. I also noticed that the
(ndev->ctrl.quirks & NVME_QUIRK_SIMPLE_SUSPEND)

is unnecessary in nvme_resume because ndev->last_ps is set to U32_MAX
in nvme_suspend, so I will remove that second modification.

\
 
 \ /
  Last update: 2019-08-14 21:53    [W:0.049 / U:1.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site