mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 09:20:13 -04:00
platform/x86/amd/pmf: Store commonly used enums in the header file
Relocate commonly used enums from multiple source files into a shared header file to simplify code structure, improve readability, and enhance maintainability. Also, remove the initialization of the first enum member, since it is not needed. Add the AMD_PMF_ prefix to the laptop_placement and platform_type enums since these names are overly generic for inclusion in a UAPI header Co-developed-by: Sanket Goswami <Sanket.Goswami@amd.com> Signed-off-by: Sanket Goswami <Sanket.Goswami@amd.com> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> Link: https://patch.msgid.link/20260609081044.2416731-4-Shyam-sundar.S-k@amd.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
committed by
Ilpo Järvinen
parent
1983d7dee5
commit
08f3df928f
@@ -7,6 +7,7 @@
|
||||
*
|
||||
* Author: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
|
||||
*/
|
||||
#include <linux/amd-pmf.h>
|
||||
#include <linux/amd-pmf-io.h>
|
||||
#include <linux/io-64-nonatomic-lo-hi.h>
|
||||
#include <linux/iopoll.h>
|
||||
@@ -102,20 +103,20 @@ static int amd_sfh_mode_info(u32 *platform_type, u32 *laptop_placement)
|
||||
*platform_type = mode.op_mode.devicemode;
|
||||
|
||||
if (mode.op_mode.ontablestate == 1) {
|
||||
*laptop_placement = ON_TABLE;
|
||||
*laptop_placement = AMD_PMF_ON_TABLE;
|
||||
} else if (mode.op_mode.ontablestate == 2) {
|
||||
*laptop_placement = ON_LAP_MOTION;
|
||||
*laptop_placement = AMD_PMF_ON_LAP_MOTION;
|
||||
} else if (mode.op_mode.inbagstate == 1) {
|
||||
*laptop_placement = IN_BAG;
|
||||
*laptop_placement = AMD_PMF_IN_BAG;
|
||||
} else if (mode.op_mode.outbagstate == 1) {
|
||||
*laptop_placement = OUT_OF_BAG;
|
||||
*laptop_placement = AMD_PMF_OUT_OF_BAG;
|
||||
} else if (mode.op_mode.ontablestate == 0 || mode.op_mode.inbagstate == 0 ||
|
||||
mode.op_mode.outbagstate == 0) {
|
||||
*laptop_placement = LP_UNKNOWN;
|
||||
*laptop_placement = AMD_PMF_LP_UNKNOWN;
|
||||
pr_warn_once("Unknown laptop placement\n");
|
||||
} else if (mode.op_mode.ontablestate == 3 || mode.op_mode.inbagstate == 3 ||
|
||||
mode.op_mode.outbagstate == 3) {
|
||||
*laptop_placement = LP_UNDEFINED;
|
||||
*laptop_placement = AMD_PMF_LP_UNDEFINED;
|
||||
pr_warn_once("Undefined laptop placement\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -682,14 +682,6 @@ enum system_state {
|
||||
SYSTEM_STATE_MAX,
|
||||
};
|
||||
|
||||
enum ta_slider {
|
||||
TA_BEST_BATTERY,
|
||||
TA_BETTER_BATTERY,
|
||||
TA_BETTER_PERFORMANCE,
|
||||
TA_BEST_PERFORMANCE,
|
||||
TA_MAX,
|
||||
};
|
||||
|
||||
struct amd_pmf_pb_bitmap {
|
||||
const char *name;
|
||||
u32 bit_mask;
|
||||
@@ -721,20 +713,6 @@ static const struct amd_pmf_pb_bitmap custom_bios_inputs_v1[] __used = {
|
||||
{"NOTIFY_CUSTOM_BIOS_INPUT10", BIT(16)},
|
||||
};
|
||||
|
||||
enum platform_type {
|
||||
PTYPE_UNKNOWN = 0,
|
||||
LID_CLOSE,
|
||||
CLAMSHELL,
|
||||
FLAT,
|
||||
TENT,
|
||||
STAND,
|
||||
TABLET,
|
||||
BOOK,
|
||||
PRESENTATION,
|
||||
PULL_FWD,
|
||||
PTYPE_INVALID = 0xf,
|
||||
};
|
||||
|
||||
/* Command ids for TA communication */
|
||||
enum ta_pmf_command {
|
||||
TA_PMF_COMMAND_POLICY_BUILDER_INITIALIZE,
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
*/
|
||||
|
||||
#include <acpi/button.h>
|
||||
#include <linux/amd-pmf.h>
|
||||
#include <linux/amd-pmf-io.h>
|
||||
#include <linux/cleanup.h>
|
||||
#include <linux/power_supply.h>
|
||||
@@ -20,21 +21,21 @@
|
||||
static const char *platform_type_as_str(u16 platform_type)
|
||||
{
|
||||
switch (platform_type) {
|
||||
case CLAMSHELL:
|
||||
case AMD_PMF_CLAMSHELL:
|
||||
return "CLAMSHELL";
|
||||
case FLAT:
|
||||
case AMD_PMF_FLAT:
|
||||
return "FLAT";
|
||||
case TENT:
|
||||
case AMD_PMF_TENT:
|
||||
return "TENT";
|
||||
case STAND:
|
||||
case AMD_PMF_STAND:
|
||||
return "STAND";
|
||||
case TABLET:
|
||||
case AMD_PMF_TABLET:
|
||||
return "TABLET";
|
||||
case BOOK:
|
||||
case AMD_PMF_BOOK:
|
||||
return "BOOK";
|
||||
case PRESENTATION:
|
||||
case AMD_PMF_PRESENTATION:
|
||||
return "PRESENTATION";
|
||||
case PULL_FWD:
|
||||
case AMD_PMF_PULL_FWD:
|
||||
return "PULL_FWD";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
@@ -44,13 +45,13 @@ static const char *platform_type_as_str(u16 platform_type)
|
||||
static const char *laptop_placement_as_str(u16 device_state)
|
||||
{
|
||||
switch (device_state) {
|
||||
case ON_TABLE:
|
||||
case AMD_PMF_ON_TABLE:
|
||||
return "ON_TABLE";
|
||||
case ON_LAP_MOTION:
|
||||
case AMD_PMF_ON_LAP_MOTION:
|
||||
return "ON_LAP_MOTION";
|
||||
case IN_BAG:
|
||||
case AMD_PMF_IN_BAG:
|
||||
return "IN_BAG";
|
||||
case OUT_OF_BAG:
|
||||
case AMD_PMF_OUT_OF_BAG:
|
||||
return "OUT_OF_BAG";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
@@ -60,11 +61,11 @@ static const char *laptop_placement_as_str(u16 device_state)
|
||||
static const char *ta_slider_as_str(unsigned int state)
|
||||
{
|
||||
switch (state) {
|
||||
case TA_BEST_PERFORMANCE:
|
||||
case AMD_PMF_TA_BEST_PERFORMANCE:
|
||||
return "PERFORMANCE";
|
||||
case TA_BETTER_PERFORMANCE:
|
||||
case AMD_PMF_TA_BETTER_PERFORMANCE:
|
||||
return "BALANCED";
|
||||
case TA_BEST_BATTERY:
|
||||
case AMD_PMF_TA_BEST_BATTERY:
|
||||
return "POWER_SAVER";
|
||||
default:
|
||||
return "Unknown TA Slider State";
|
||||
@@ -287,14 +288,14 @@ static int amd_pmf_get_slider_info(struct amd_pmf_dev *dev, struct ta_pmf_enact_
|
||||
switch (dev->current_profile) {
|
||||
case PLATFORM_PROFILE_PERFORMANCE:
|
||||
case PLATFORM_PROFILE_BALANCED_PERFORMANCE:
|
||||
val = TA_BEST_PERFORMANCE;
|
||||
val = AMD_PMF_TA_BEST_PERFORMANCE;
|
||||
break;
|
||||
case PLATFORM_PROFILE_BALANCED:
|
||||
val = TA_BETTER_PERFORMANCE;
|
||||
val = AMD_PMF_TA_BETTER_PERFORMANCE;
|
||||
break;
|
||||
case PLATFORM_PROFILE_LOW_POWER:
|
||||
case PLATFORM_PROFILE_QUIET:
|
||||
val = TA_BEST_BATTERY;
|
||||
val = AMD_PMF_TA_BEST_BATTERY;
|
||||
break;
|
||||
default:
|
||||
dev_err(dev->dev, "Unknown Platform Profile.\n");
|
||||
|
||||
@@ -52,15 +52,6 @@ struct amd_sfh_info {
|
||||
u32 laptop_placement;
|
||||
};
|
||||
|
||||
enum laptop_placement {
|
||||
LP_UNKNOWN = 0,
|
||||
ON_TABLE,
|
||||
ON_LAP_MOTION,
|
||||
IN_BAG,
|
||||
OUT_OF_BAG,
|
||||
LP_UNDEFINED,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct amd_pmf_npu_metrics: Get NPU metrics data from PMF driver
|
||||
* @npuclk_freq: NPU clock frequency [MHz]
|
||||
|
||||
@@ -42,6 +42,80 @@
|
||||
#define AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_AC BIT(3)
|
||||
#define AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_DC BIT(4)
|
||||
|
||||
/**
|
||||
* enum amd_pmf_laptop_placement - Describes the physical placement of the laptop
|
||||
* @AMD_PMF_LP_UNKNOWN: Placement cannot be determined
|
||||
* @AMD_PMF_ON_TABLE: Laptop is placed on a stable surface like a table or desk
|
||||
* @AMD_PMF_ON_LAP_MOTION: Laptop is on a lap with detected motion
|
||||
* @AMD_PMF_IN_BAG: Laptop is detected to be inside a bag or case
|
||||
* @AMD_PMF_OUT_OF_BAG: Laptop has been removed from bag or case
|
||||
* @AMD_PMF_LP_UNDEFINED: Placement state is undefined
|
||||
*
|
||||
* This enumeration represents the physical placement state of the laptop
|
||||
* as detected by platform sensors. Used for adaptive power management
|
||||
* and thermal policies.
|
||||
*/
|
||||
enum amd_pmf_laptop_placement {
|
||||
AMD_PMF_LP_UNKNOWN,
|
||||
AMD_PMF_ON_TABLE,
|
||||
AMD_PMF_ON_LAP_MOTION,
|
||||
AMD_PMF_IN_BAG,
|
||||
AMD_PMF_OUT_OF_BAG,
|
||||
AMD_PMF_LP_UNDEFINED,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum amd_pmf_ta_slider - Trusted Application power slider positions
|
||||
* @AMD_PMF_TA_BEST_BATTERY: Maximum battery savings, minimal performance
|
||||
* @AMD_PMF_TA_BETTER_BATTERY: Balanced towards battery life
|
||||
* @AMD_PMF_TA_BETTER_PERFORMANCE: Balanced towards performance
|
||||
* @AMD_PMF_TA_BEST_PERFORMANCE: Maximum performance, higher power consumption
|
||||
* @AMD_PMF_TA_MAX: Sentinel value indicating maximum enum value
|
||||
*
|
||||
* This enumeration defines the power slider positions used by the
|
||||
* AMD PMF Trusted Application for dynamic power management decisions.
|
||||
* These correspond to the Windows power slider UI positions.
|
||||
*/
|
||||
enum amd_pmf_ta_slider {
|
||||
AMD_PMF_TA_BEST_BATTERY,
|
||||
AMD_PMF_TA_BETTER_BATTERY,
|
||||
AMD_PMF_TA_BETTER_PERFORMANCE,
|
||||
AMD_PMF_TA_BEST_PERFORMANCE,
|
||||
AMD_PMF_TA_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum amd_pmf_platform_type - Describes the physical form factor orientation
|
||||
* @AMD_PMF_PTYPE_UNKNOWN: Platform type cannot be determined
|
||||
* @AMD_PMF_LID_CLOSE: Laptop lid is closed
|
||||
* @AMD_PMF_CLAMSHELL: Traditional laptop mode with keyboard and screen
|
||||
* @AMD_PMF_FLAT: Device is lying flat on a surface
|
||||
* @AMD_PMF_TENT: Device is in tent mode (keyboard folded back, standing)
|
||||
* @AMD_PMF_STAND: Device is propped up in stand orientation
|
||||
* @AMD_PMF_TABLET: Device is in tablet mode with keyboard hidden
|
||||
* @AMD_PMF_BOOK: Device is in book reading orientation
|
||||
* @AMD_PMF_PRESENTATION: Device is in presentation mode
|
||||
* @AMD_PMF_PULL_FWD: Screen is pulled forward towards user
|
||||
* @AMD_PMF_PTYPE_INVALID: Invalid platform type marker
|
||||
*
|
||||
* This enumeration describes the current physical orientation or form
|
||||
* factor of convertible/2-in-1 devices. Used for optimizing power and
|
||||
* thermal management based on device posture.
|
||||
*/
|
||||
enum amd_pmf_platform_type {
|
||||
AMD_PMF_PTYPE_UNKNOWN,
|
||||
AMD_PMF_LID_CLOSE,
|
||||
AMD_PMF_CLAMSHELL,
|
||||
AMD_PMF_FLAT,
|
||||
AMD_PMF_TENT,
|
||||
AMD_PMF_STAND,
|
||||
AMD_PMF_TABLET,
|
||||
AMD_PMF_BOOK,
|
||||
AMD_PMF_PRESENTATION,
|
||||
AMD_PMF_PULL_FWD,
|
||||
AMD_PMF_PTYPE_INVALID = 0xf,
|
||||
};
|
||||
|
||||
struct amd_pmf_info {
|
||||
__u64 size;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user