mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-27 15:36:48 +00:00

Add support to export device operating states, such as laptop placement, platform types and propagate this data to AMD PMF driver for use in actions. To retrieve the device operating states data, SRA sensor support need to be enabled in AMD SFH driver. So add support to enable the SRA sensor. Also, remove explicit assignments to sensor_index enum. Co-developed-by: Akshata MukundShetty <akshata.mukundshetty@amd.com> Signed-off-by: Akshata MukundShetty <akshata.mukundshetty@amd.com> Signed-off-by: Basavaraj Natikar <basavaraj.natikar@amd.com> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com> Acked-by: Jiri Kosina <jkosina@suse.com> Link: https://lore.kernel.org/r/20241217151627.757477-2-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>
66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* AMD Platform Management Framework Interface
|
|
*
|
|
* Copyright (c) 2023, Advanced Micro Devices, Inc.
|
|
* All Rights Reserved.
|
|
*
|
|
* Authors: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
|
|
* Basavaraj Natikar <Basavaraj.Natikar@amd.com>
|
|
*/
|
|
|
|
#ifndef AMD_PMF_IO_H
|
|
#define AMD_PMF_IO_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
/**
|
|
* enum sfh_message_type - Query the SFH message type
|
|
* @MT_HPD: Message ID to know the Human presence info from MP2 FW
|
|
* @MT_ALS: Message ID to know the Ambient light info from MP2 FW
|
|
* @MT_SRA: Message ID to know the SRA data from MP2 FW
|
|
*/
|
|
enum sfh_message_type {
|
|
MT_HPD,
|
|
MT_ALS,
|
|
MT_SRA,
|
|
};
|
|
|
|
/**
|
|
* enum sfh_hpd_info - Query the Human presence information
|
|
* @SFH_NOT_DETECTED: Check the HPD connection information from MP2 FW
|
|
* @SFH_USER_PRESENT: Check if the user is present from HPD sensor
|
|
* @SFH_USER_AWAY: Check if the user is away from HPD sensor
|
|
*/
|
|
enum sfh_hpd_info {
|
|
SFH_NOT_DETECTED,
|
|
SFH_USER_PRESENT,
|
|
SFH_USER_AWAY,
|
|
};
|
|
|
|
/**
|
|
* struct amd_sfh_info - get HPD sensor info from MP2 FW
|
|
* @ambient_light: Populates the ambient light information
|
|
* @user_present: Populates the user presence information
|
|
* @platform_type: Operating modes (clamshell, flat, tent, etc.)
|
|
* @laptop_placement: Device states (ontable, onlap, outbag)
|
|
*/
|
|
struct amd_sfh_info {
|
|
u32 ambient_light;
|
|
u8 user_present;
|
|
u32 platform_type;
|
|
u32 laptop_placement;
|
|
};
|
|
|
|
enum laptop_placement {
|
|
LP_UNKNOWN = 0,
|
|
ON_TABLE,
|
|
ON_LAP_MOTION,
|
|
IN_BAG,
|
|
OUT_OF_BAG,
|
|
LP_UNDEFINED,
|
|
};
|
|
|
|
int amd_get_sfh_info(struct amd_sfh_info *sfh_info, enum sfh_message_type op);
|
|
#endif
|