Re: [PATCH v1] drivers: pci: quirks: Add suspend fixup for SSD on sc7280

From: Bjorn Helgaas
Date: Thu May 25 2023 - 18:10:41 EST


On Thu, May 25, 2023 at 04:35:12PM +0800, Owen Yang wrote:
> Implement this workaround until Qualcomm fixed the
> correct NVMe suspend process.

Thanks for the patch. Before I can do anything, this needs:

- Subject line in style of the file (use "git log --oneline
drivers/pci/quirks.c").

- Format commit log correctly (fill 75 columns, no leading spaces).

- Description of incorrect behavior. What does the user see? If
there's a bug report, include a link to it.

- Multi-line code comments in style of the file (look at existing
comments in the file).

- Details of "the correct ASPM state". ASPM may be enabled or
disabled by the user, so you can't assume any particular ASPM
configuration.

- Details on the Qualcomm sc7280 connection. This quirk would
affect Phison SSDs on *all* platforms, not just sc7280. I don't
want to slow down suspend on all platforms just for a sc7280
issue.

- Drop the "until Qualcomm fixes NVMe suspend" text. Even if
Qualcomm fixes something, we can't just drop this quirk because
there will be platforms in the field that don't have the Qualcomm
fix.

Bjorn

> Signed-off-by: Owen Yang <ecs.taipeikernel@xxxxxxxxx>
> ---
>
> drivers/pci/quirks.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index f4e2a88729fd..b57876dc2624 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -5945,6 +5945,16 @@ static void nvidia_ion_ahci_fixup(struct pci_dev *pdev)
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, 0x0ab8, nvidia_ion_ahci_fixup);
>
> +/* In Qualcomm 7c gen 3 sc7280 platform. Some of the SSD won't enter
> + * the correct ASPM state properly. Therefore. Implement this workaround
> + * until Qualcomm fixed the correct NVMe suspend process*/
> +static void phison_suspend_fixup(struct pci_dev *pdev)
> +{
> + msleep(30);
> +}
> +DECLARE_PCI_FIXUP_SUSPEND(0x1987, 0x5013, phison_suspend_fixup);
> +DECLARE_PCI_FIXUP_SUSPEND(0x1987, 0x5015, phison_suspend_fixup);
> +
> static void rom_bar_overlap_defect(struct pci_dev *dev)
> {
> pci_info(dev, "working around ROM BAR overlap defect\n");
> --
> 2.17.1
>