Re: [PATCH v7 2/3] PCI: brcmstb: Configure HW CLKREQ# mode appropriate for downstream device

From: Bjorn Helgaas
Date: Thu Nov 09 2023 - 17:31:46 EST


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