On Thu, Nov 09, 2023 at 05:06:15PM -0500, Jim Quinlan wrote: > ... > BTW, besides the RPi4, I haven't been able to find a Linux platform > where I can do > > echo $POLICY > /sys/module/pcie_aspm/parameters/policy This sounds like something we should fix. What exactly happens? I think this should be handled at pcie_aspm_set_policy(), so: /sys/module/pcie_aspm/parameters/policy doesn't exist (seems unlikely)? Returns -EPERM (would indicate aspm_disabled)? Returns -EINVAL (would indicate $POLICY doesn't match anything in policy_str[])? Returns 0 with no action (would indicate $POLICY is the same as the current aspm_policy)? > It seems that the FW/ACPI typically locks this down. I did see a > comment somewhere that > said that the reason it was locked down is because too many devices > cannot handle it. Do you have any details about FW/ACPI locking this down? aspm_disabled is set by the kernel "pcie_aspm=off" parameter (I assume you're not referring to this), if the FADT has ACPI_FADT_NO_ASPM set, or if a host bridge's _OSC is missing or failed (maybe [1] is the comment you saw?) These all *should* be unusual cases, so I'd be surprised if you're tripping over one of these. I would NOT be surprised if we had some issue in pcie_config_aspm_link() or pcie_set_clkpm() that meant the policy change didn't work as intended, though. Bjorn [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/acpi/pci_root.c?id=v6.6#n617