diff mbox series

[2/2] platform/x86/amd/pmf: Get Human presence information from AMD SFH driver

Message ID 20240123141458.3715211-2-Shyam-sundar.S-k@amd.com (mailing list archive)
State Accepted, archived
Headers show
Series [1/2] platform/x86/amd/pmf: Get Human presence information from AMD SFH driver | expand

Commit Message

Shyam Sundar S K Jan. 23, 2024, 2:14 p.m. UTC
AMD SFH driver has APIs defined to export the ambient light information;
use this within the PMF driver to send inputs to the PMF TA, so that PMF
driver can enact to the actions coming from the TA.

Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
---
 drivers/platform/x86/amd/pmf/spc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Mario Limonciello Jan. 23, 2024, 4:12 p.m. UTC | #1
On 1/23/2024 08:14, Shyam Sundar S K wrote:
> AMD SFH driver has APIs defined to export the ambient light information;
> use this within the PMF driver to send inputs to the PMF TA, so that PMF
> driver can enact to the actions coming from the TA.
> 
> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
>   drivers/platform/x86/amd/pmf/spc.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/platform/x86/amd/pmf/spc.c b/drivers/platform/x86/amd/pmf/spc.c
> index 87ae7c41c9f8..a3dec14c3004 100644
> --- a/drivers/platform/x86/amd/pmf/spc.c
> +++ b/drivers/platform/x86/amd/pmf/spc.c
> @@ -46,6 +46,7 @@ void amd_pmf_dump_ta_inputs(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *
>   	dev_dbg(dev->dev, "GFX Busy: %u\n", in->ev_info.gfx_busy);
>   	dev_dbg(dev->dev, "LID State: %s\n", in->ev_info.lid_state ? "close" : "open");
>   	dev_dbg(dev->dev, "User Presence: %s\n", in->ev_info.user_present ? "Present" : "Away");
> +	dev_dbg(dev->dev, "Ambient Light: %d\n", in->ev_info.ambient_light);
>   	dev_dbg(dev->dev, "==== TA inputs END ====\n");
>   }
>   #else
> @@ -154,6 +155,13 @@ static int amd_pmf_get_sensor_info(struct amd_pmf_dev *dev, struct ta_pmf_enact_
>   	struct amd_sfh_info sfh_info;
>   	int ret;
>   
> +	/* Get ALS data */
> +	ret = amd_get_sfh_info(&sfh_info, MT_ALS);
> +	if (!ret)
> +		in->ev_info.ambient_light = sfh_info.ambient_light;
> +	else
> +		return ret;
> +
>   	/* get HPD data */
>   	ret = amd_get_sfh_info(&sfh_info, MT_HPD);
>   	if (ret)
diff mbox series

Patch

diff --git a/drivers/platform/x86/amd/pmf/spc.c b/drivers/platform/x86/amd/pmf/spc.c
index 87ae7c41c9f8..a3dec14c3004 100644
--- a/drivers/platform/x86/amd/pmf/spc.c
+++ b/drivers/platform/x86/amd/pmf/spc.c
@@ -46,6 +46,7 @@  void amd_pmf_dump_ta_inputs(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *
 	dev_dbg(dev->dev, "GFX Busy: %u\n", in->ev_info.gfx_busy);
 	dev_dbg(dev->dev, "LID State: %s\n", in->ev_info.lid_state ? "close" : "open");
 	dev_dbg(dev->dev, "User Presence: %s\n", in->ev_info.user_present ? "Present" : "Away");
+	dev_dbg(dev->dev, "Ambient Light: %d\n", in->ev_info.ambient_light);
 	dev_dbg(dev->dev, "==== TA inputs END ====\n");
 }
 #else
@@ -154,6 +155,13 @@  static int amd_pmf_get_sensor_info(struct amd_pmf_dev *dev, struct ta_pmf_enact_
 	struct amd_sfh_info sfh_info;
 	int ret;
 
+	/* Get ALS data */
+	ret = amd_get_sfh_info(&sfh_info, MT_ALS);
+	if (!ret)
+		in->ev_info.ambient_light = sfh_info.ambient_light;
+	else
+		return ret;
+
 	/* get HPD data */
 	ret = amd_get_sfh_info(&sfh_info, MT_HPD);
 	if (ret)