Re: Raphael, I'd like your help upstreaming this VMD power-saving patch, please

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 23, 2025 at 9:21 PM Kenneth Crudup <kenny@xxxxxxxxx> wrote:
>
> Raphael, any input?

Well, Bjorn's concerns are valid AFAICS.

> On 5/14/25 18:23, Russell Haley wrote:
> >
> >
> > On 5/12/25 4:09 PM, Bjorn Helgaas wrote:
> >
> >>>   static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
> >>>   {
> >>>     struct pci_dev *child = link->downstream, *parent = link->pdev;
> >>> @@ -866,7 +891,8 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
> >>>     }
> >>>
> >>>     /* Save default state */
> >>> -   link->aspm_default = link->aspm_enabled;
> >>> +   link->aspm_default = pci_fixup_vmd_bridge_enable_aspm(parent) ?
> >>> +           PCIE_LINK_STATE_ASPM_ALL : link->aspm_enabled;
> >>
> >> PCIE_LINK_STATE_ASPM_ALL includes PCIE_LINK_STATE_L1_2, so I think
> >> this potentially enables L1.2.  The L1.2 configuration depends on
> >> T_POWER_ON and Common_Mode_Restore_Time, which depend on electrical
> >> design and are not discoverable by the kernel.  See PCIe r6.0, sec
> >> 5.5.4:
> >>
> >>    The TPOWER_ON and Common_Mode_Restore_Time fields must be programmed
> >>    to the appropriate values based on the components and AC coupling
> >>    capacitors used in the connection linking the two components. The
> >>    determination of these values is design implementation specific.
> >
> > Does that apply to VMD?  As far as I know it's not an actual physical
> > PCIe device.

The devices on the VMD bus are physical PCIe devices, but they need to
be accessed in a special way and the BIOS doesn't have access to them.

I would try to replace the PCIE_LINK_STATE_ASPM_ALL in the patch with

PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_L1_1 |
PCIE_LINK_STATE_L1_1_PCIPM

and see how far it gets you.  Please let me know how it goes.

In the meantime, I'll try to find somebody who can pick this up.

Thanks!





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux