1*f6ee11d7SShyam Sundar S KWhat: /dev/amdpmf_interface 2*f6ee11d7SShyam Sundar S KDate: June 2026 3*f6ee11d7SShyam Sundar S KKernelVersion: 7.2 4*f6ee11d7SShyam Sundar S KContact: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> 5*f6ee11d7SShyam Sundar S KDescription: 6*f6ee11d7SShyam Sundar S K The AMD Platform Management Framework (PMF) util layer exposes a 7*f6ee11d7SShyam Sundar S K minimal user-space interface via a character device for feature 8*f6ee11d7SShyam Sundar S K discovery and metrics monitoring. 9*f6ee11d7SShyam Sundar S K 10*f6ee11d7SShyam Sundar S K When CONFIG_AMD_PMF_UTIL_SUPPORT is enabled, the driver creates 11*f6ee11d7SShyam Sundar S K a character device: 12*f6ee11d7SShyam Sundar S K 13*f6ee11d7SShyam Sundar S K ====================== 14*f6ee11d7SShyam Sundar S K /dev/amdpmf_interface 15*f6ee11d7SShyam Sundar S K ====================== 16*f6ee11d7SShyam Sundar S K 17*f6ee11d7SShyam Sundar S K The interface supports a single ioctl: 18*f6ee11d7SShyam Sundar S K 19*f6ee11d7SShyam Sundar S K ============================ ======================================= 20*f6ee11d7SShyam Sundar S K IOCTL Usage 21*f6ee11d7SShyam Sundar S K IOCTL_AMD_PMF_POPULATE_DATA User passes a struct amd_pmf_info with 22*f6ee11d7SShyam Sundar S K the size field set to sizeof(struct 23*f6ee11d7SShyam Sundar S K amd_pmf_info). The driver returns all 24*f6ee11d7SShyam Sundar S K available metrics and feature status 25*f6ee11d7SShyam Sundar S K in the structure. 26*f6ee11d7SShyam Sundar S K ============================ ======================================= 27*f6ee11d7SShyam Sundar S K 28*f6ee11d7SShyam Sundar S K struct amd_pmf_info layout: 29*f6ee11d7SShyam Sundar S K 30*f6ee11d7SShyam Sundar S K ======================= ========== ================================ 31*f6ee11d7SShyam Sundar S K Field Type Description 32*f6ee11d7SShyam Sundar S K size __u64 Structure size for versioning 33*f6ee11d7SShyam Sundar S K features_supported __u32 Bitmask of supported features 34*f6ee11d7SShyam Sundar S K platform_type __u32 Platform form factor orientation 35*f6ee11d7SShyam Sundar S K power_source __u32 AC/DC power source 36*f6ee11d7SShyam Sundar S K laptop_placement __u32 Device placement state 37*f6ee11d7SShyam Sundar S K lid_state __u32 Lid open/closed status 38*f6ee11d7SShyam Sundar S K user_presence __u32 User presence detection 39*f6ee11d7SShyam Sundar S K slider_position __u32 Current power slider position 40*f6ee11d7SShyam Sundar S K skin_temp __s32 Skin temperature (centidegrees) 41*f6ee11d7SShyam Sundar S K gfx_busy __u32 Graphics workload percentage 42*f6ee11d7SShyam Sundar S K ambient_light __s32 Ambient light sensor reading 43*f6ee11d7SShyam Sundar S K avg_c0_residency __u32 Average C0 state residency 44*f6ee11d7SShyam Sundar S K max_c0_residency __u32 Maximum C0 state residency 45*f6ee11d7SShyam Sundar S K socket_power __u32 Socket power consumption 46*f6ee11d7SShyam Sundar S K bios_input[10] __u32 Custom BIOS input parameters 47*f6ee11d7SShyam Sundar S K bios_output[10] __u32 Custom BIOS output parameters 48*f6ee11d7SShyam Sundar S K ======================= ========== ================================ 49*f6ee11d7SShyam Sundar S K 50*f6ee11d7SShyam Sundar S K Feature Support Flags (features_supported bitmask): 51*f6ee11d7SShyam Sundar S K 52*f6ee11d7SShyam Sundar S K ===================================== ==== ============================= 53*f6ee11d7SShyam Sundar S K Flag Bit Description 54*f6ee11d7SShyam Sundar S K AMD_PMF_FEAT_AUTO_MODE 0 Auto Mode feature support 55*f6ee11d7SShyam Sundar S K AMD_PMF_FEAT_STATIC_POWER_SLIDER 1 Static Power Slider support 56*f6ee11d7SShyam Sundar S K AMD_PMF_FEAT_POLICY_BUILDER 2 Policy Builder (Smart PC) 57*f6ee11d7SShyam Sundar S K AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_AC 3 Dynamic slider on AC 58*f6ee11d7SShyam Sundar S K AMD_PMF_FEAT_DYNAMIC_POWER_SLIDER_DC 4 Dynamic slider on DC 59*f6ee11d7SShyam Sundar S K ===================================== ==== ============================= 60*f6ee11d7SShyam Sundar S K 61*f6ee11d7SShyam Sundar S K Return codes: 62*f6ee11d7SShyam Sundar S K 63*f6ee11d7SShyam Sundar S K ============= ============================================================ 64*f6ee11d7SShyam Sundar S K Return code Description 65*f6ee11d7SShyam Sundar S K 0 Success 66*f6ee11d7SShyam Sundar S K EINVAL Invalid size or parameter 67*f6ee11d7SShyam Sundar S K EFAULT copy_to_user/copy_from_user failures 68*f6ee11d7SShyam Sundar S K ENODEV PMF device not available 69*f6ee11d7SShyam Sundar S K ENOTTY Unknown ioctl command 70*f6ee11d7SShyam Sundar S K ============= ============================================================ 71*f6ee11d7SShyam Sundar S K 72*f6ee11d7SShyam Sundar S K User-space tools integrating with AMD PMF to discover capabilities and 73*f6ee11d7SShyam Sundar S K monitor real-time metrics for thermal and power management validation. 74