HID: amd_sfh: Avoid clearing reports for SRA sensor
authorMario Limonciello <mario.limonciello@amd.com>
Mon, 21 Apr 2025 21:32:10 +0000 (16:32 -0500)
committerJiri Kosina <jkosina@suse.com>
Thu, 24 Apr 2025 10:17:55 +0000 (12:17 +0200)
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>
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c

index c1bdf1e0d44af91d10310ae28f3b66ba4f3ca160..0a9b44ce4904e401d00b62bca216291c4ee9057f 100644 (file)
@@ -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) {
@@ -237,6 +240,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]);