Re: [PATCH V8 RESEND 4/4] PCI: vmd: Add quirk to configure PCIe ASPM and LTR

From: Sathyanarayanan Kuppuswamy
Date: Sun Nov 20 2022 - 22:47:10 EST




On 11/20/22 7:30 PM, David E. Box wrote:
>>> +
>>>  static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
>>>  {
>>>         struct pci_sysdata *sd = &vmd->sysdata;
>>> @@ -867,6 +917,8 @@ static int vmd_enable_domain(struct vmd_dev *vmd,
>>> unsigned long features)
>>>                 pci_reset_bus(child->self);
>>>         pci_assign_unassigned_bus_resources(vmd->bus);
>>>  
>>> +       pci_walk_bus(vmd->bus, vmd_pm_enable_quirk, &features);
>>> +
>>>         /*
>>>          * VMD root buses are virtual and don't return true on pci_is_pcie()
>>>          * and will fail pcie_bus_configure_settings() early. It can instead
>>> be
>>> @@ -1005,17 +1057,17 @@ static const struct pci_device_id vmd_ids[] = {
>>>                                 VMD_FEAT_HAS_BUS_RESTRICTIONS |
>>>                                 VMD_FEAT_CAN_BYPASS_MSI_REMAP,},
>>>         {PCI_VDEVICE(INTEL, 0x467f),
>>> -               .driver_data = VMD_FEATS_CLIENT,},
>>> +               .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
>>>         {PCI_VDEVICE(INTEL, 0x4c3d),
>>> -               .driver_data = VMD_FEATS_CLIENT,},
>>> +               .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
>>>         {PCI_VDEVICE(INTEL, 0xa77f),
>>> -               .driver_data = VMD_FEATS_CLIENT,},
>>> +               .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
>>>         {PCI_VDEVICE(INTEL, 0x7d0b),
>>> -               .driver_data = VMD_FEATS_CLIENT,},
>>> +               .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
>>>         {PCI_VDEVICE(INTEL, 0xad0b),
>>> -               .driver_data = VMD_FEATS_CLIENT,},
>>> +               .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
>>>         {PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
>>> -               .driver_data = VMD_FEATS_CLIENT,},
>>> +               .driver_data = VMD_FEATS_CLIENT | VMD_FEAT_BIOS_PM_QUIRK,},
>> Why not add VMD_FEAT_BIOS_PM_QUIRK part of VMD_FEATS_CLIENT?
> Because our VMD team is in the middle of removing the need for the current on
> next gen.

You mean you may not need this quirk support from next gen?

It looks like you are adding this quirk to all occurances of
VMD_FEATS_CLIENT. So I am still not clear why we can't add it directly to that macro?

--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer