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