[SRU Y/Z] [PATCH 1/1] nvme: Quirk APST on Intel 600P/P3100 devices

Kai-Heng Feng kai.heng.feng at canonical.com
Fri Jun 2 08:26:06 UTC 2017


On Fri, Jun 2, 2017 at 4:06 PM, Colin Ian King <colin.king at canonical.com> wrote:
> On 02/06/17 05:55, Kai-Heng Feng wrote:
>> From: Andy Lutomirski <luto at kernel.org>
>>
>> BugLink: https://bugs.launchpad.net/bugs/1686592
>>
>> They have known firmware bugs.  A fix is apparently in the works --
>> once fixed firmware is available, someone from Intel (Hi, Keith!)
>> can adjust the quirk accordingly.
>>
>> Cc: stable at vger.kernel.org # v4.11
>> Cc: Kai-Heng Feng <kai.heng.feng at canonical.com>
>> Cc: Mario Limonciello <mario_limonciello at dell.com>
>> Signed-off-by: Andy Lutomirski <luto at kernel.org>
>> Signed-off-by: Christoph Hellwig <hch at lst.de>
>> (backported from commit 50af47d04ca530544b27affffb0722f158e2bb9c)
>> Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
>> ---
>>  drivers/nvme/host/pci.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
>> index 394038608734..2e61d3047435 100644
>> --- a/drivers/nvme/host/pci.c
>> +++ b/drivers/nvme/host/pci.c
>> @@ -2288,6 +2288,8 @@ static const struct pci_device_id nvme_id_table[] = {
>>       { PCI_VDEVICE(INTEL, 0x0a54),
>>               .driver_data = NVME_QUIRK_STRIPE_SIZE |
>>                               NVME_QUIRK_DISCARD_ZEROES, },
>> +     { PCI_VDEVICE(INTEL, 0xf1a5),   /* Intel 600P/P3100 */
>> +             .driver_data = NVME_QUIRK_NO_DEEPEST_PS },
>>       { PCI_VDEVICE(INTEL, 0x5845),   /* Qemu emulated controller */
>>               .driver_data = NVME_QUIRK_IDENTIFY_CNS, },
>>       { PCI_DEVICE(0x1c58, 0x0003),   /* HGST adapter */
>>
>
> I guess having it work and not quite as power efficient is preferable to
> it be power efficient and not working correctly :-)
>
> Just wondering how we deal with the case with users who have the updated
> firmware since this quirk will leave them with a less power efficient
> config.

We can use table core_quirks[] in drivers/nvme/core.c to match firmware version.
The current version is to blacklist bad devices, it won't be too hard
too add another whitelist quirk table, if new firmware indeed fixes
the issue.

>
> Are there plans for this to be backported to previous releases?

I'll backport APST (including quirks) to Xenial after things settle down.

>




More information about the kernel-team mailing list