summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMario Limonciello <mario.limonciello@amd.com>2025-04-21 16:32:10 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-06-04 14:45:09 +0200
commitb03b33957a5b44ec6e2f7f4f76043db1ef7d120f (patch)
tree326188f16caae3a826b5d7645f8977f0773e2e48 /drivers
parentfc24595253c4b4707ccc4017199f48aff0dddf98 (diff)
downloadlinux-b03b33957a5b44ec6e2f7f4f76043db1ef7d120f.tar.gz
linux-b03b33957a5b44ec6e2f7f4f76043db1ef7d120f.tar.bz2
linux-b03b33957a5b44ec6e2f7f4f76043db1ef7d120f.zip
HID: amd_sfh: Avoid clearing reports for SRA sensor
[ Upstream commit f32e8c8095490152b5bc5f467d5034387a4bbd1b ] SRA sensor doesn't allocate any memory for reports. Skip trying to clear memory for that sensor in cleanup path. Suggested-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> Signed-off-by: Jiri Kosina <jkosina@suse.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c b/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
index a02969fd5068..08acc707938d 100644
--- a/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
+++ b/drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c
@@ -83,6 +83,9 @@ static int amd_sfh_hid_client_deinit(struct amd_mp2_dev *privdata)
case ALS_IDX:
privdata->dev_en.is_als_present = false;
break;
+ case SRA_IDX:
+ privdata->dev_en.is_sra_present = false;
+ break;
}
if (cl_data->sensor_sts[i] == SENSOR_ENABLED) {
@@ -235,6 +238,8 @@ static int amd_sfh1_1_hid_client_init(struct amd_mp2_dev *privdata)
cleanup:
amd_sfh_hid_client_deinit(privdata);
for (i = 0; i < cl_data->num_hid_devices; i++) {
+ if (cl_data->sensor_idx[i] == SRA_IDX)
+ continue;
devm_kfree(dev, cl_data->feature_report[i]);
devm_kfree(dev, in_data->input_report[i]);
devm_kfree(dev, cl_data->report_descr[i]);