Re: [PATCH v2 1/2] PCI: Add HXT vendor ID and ACS quirk

From: Bjorn Helgaas
Date: Fri Feb 01 2019 - 18:19:52 EST


On Wed, Nov 07, 2018 at 03:24:12PM +0800, Shunyong Yang wrote:
> Add the HXT vendor ID to pci_ids.h and use it in quirks. As the
> design of HXT SD4800 ACS feature is the same as QCOM QDF2xxx,
> pci_quirk_qcom_rp_acs() is reused for SD4800 quirk.
>
> cc: Joey Zheng <yu.zheng@xxxxxxxxxxxxxxxx>
> Reviewed-by: Sinan Kaya <okaya@xxxxxxxxxx>
> Signed-off-by: Shunyong Yang <shunyong.yang@xxxxxxxxxxxxxxxx>

I applied both of these to pci/misc for v5.1, thanks!

As I'm sure you know, both the ACS and the pciehp issues are cases where
the part does not conform to the PCIe spec. Hopefully future parts will
change the design so they *do* conform to the spec so we don't have to add
quirks for every new part. Adding quirks works around the problem, but
it's a hassle for customers (and developers and distributors) because they
need kernel updates when they wouldn't otherwise.

Bjorn

> ---
> v2:
> Add Reviewed-by: Sinan Kaya.
>
> v1:
> Initial version.
> ---
>
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index 4700d24e5d55..1e00ef6a88f4 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -4495,6 +4495,8 @@ static int pci_quirk_mf_endpoint_acs(struct pci_dev *dev, u16 acs_flags)
> /* QCOM QDF2xxx root ports */
> { PCI_VENDOR_ID_QCOM, 0x0400, pci_quirk_qcom_rp_acs },
> { PCI_VENDOR_ID_QCOM, 0x0401, pci_quirk_qcom_rp_acs },
> + /* HXT SD4800 root ports. The ACS design is same as QCOM QDF2xxx */
> + { PCI_VENDOR_ID_HXT, 0x0401, pci_quirk_qcom_rp_acs },
> /* Intel PCH root ports */
> { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_pch_acs },
> { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_intel_spt_pch_acs },
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 69f0abe1ba1a..e60a6bc38298 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -2565,6 +2565,8 @@
>
> #define PCI_VENDOR_ID_HYGON 0x1d94
>
> +#define PCI_VENDOR_ID_HXT 0x1dbf
> +
> #define PCI_VENDOR_ID_TEKRAM 0x1de1
> #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29
>
> --
> 1.8.3.1
>