Unverified Commit 8164a14b authored by Alexey Zagorodnikov's avatar Alexey Zagorodnikov Committed by Ilpo Järvinen
Browse files

platform/x86/amd/pmf: Added a module parameter to disable the Smart PC function

Addresses a low power limits issue on HP ZBook Ultra G1a.

If vendor firmware capped APU power limits with 3rd-party AC adapters,
the user can disable the Smart PC function via the module parameter

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4868

 [1]
Signed-off-by: default avatarAlexey Zagorodnikov <xglooom@gmail.com>
Reviewed-by: default avatarMario Limonciello (AMD) <superm1@kernel.org>
Link: https://patch.msgid.link/20260121143519.12318-1-xglooom@gmail.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 7c9aa38a
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -57,6 +57,10 @@ static bool force_load;
module_param(force_load, bool, 0444);
MODULE_PARM_DESC(force_load, "Force load this driver on supported older platforms (experimental)");

static bool smart_pc_support = true;
module_param(smart_pc_support, bool, 0444);
MODULE_PARM_DESC(smart_pc_support, "Smart PC Support (default = true)");

static struct device *pmf_device;

static int amd_pmf_pwr_src_notify_call(struct notifier_block *nb, unsigned long event, void *data)
@@ -493,12 +497,16 @@ static void amd_pmf_init_features(struct amd_pmf_dev *dev)
		dev_dbg(dev->dev, "SPS enabled and Platform Profiles registered\n");
	}

	if (smart_pc_support) {
		amd_pmf_init_smart_pc(dev);
		if (dev->smart_pc_enabled) {
			dev_dbg(dev->dev, "Smart PC Solution Enabled\n");
			/* If Smart PC is enabled, no need to check for other features */
			return;
		}
	} else {
		dev->smart_pc_enabled = false;
	}

	if (is_apmf_func_supported(dev, APMF_FUNC_AUTO_MODE)) {
		amd_pmf_init_auto_mode(dev);