Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b127bd55 authored by Kenji Kaneshige's avatar Kenji Kaneshige Committed by Jesse Barnes
Browse files

PCI ASPM: do not clear enabled field by support field



We must not clear bits in 'aspm_enabled' using 'aspm_support', or
'aspm_enabled' and 'aspm_default' might be different from the actual
state. In addtion, 'aspm_default' should be intialized even if
'aspm_support' is 0.

Acked-by: default avatarShaohua Li <shaohua.li@intel.com>
Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 6f1186be
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -346,12 +346,12 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
	link->latency.l0s = max_t(u32, link->latency.l0s, l0s);
	link->latency.l0s = max_t(u32, link->latency.l0s, l0s);
	link->latency.l1 = max_t(u32, link->latency.l1, l1);
	link->latency.l1 = max_t(u32, link->latency.l1, l1);


	/* Save default state */
	link->aspm_default = link->aspm_enabled;

	if (!link->aspm_support)
	if (!link->aspm_support)
		return;
		return;


	link->aspm_enabled &= link->aspm_support;
	link->aspm_default = link->aspm_enabled;

	/* ENDPOINT states*/
	/* ENDPOINT states*/
	list_for_each_entry(child, &linkbus->devices, bus_list) {
	list_for_each_entry(child, &linkbus->devices, bus_list) {
		int pos;
		int pos;