]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: amd_sfh: Handle "no sensors" in PM operations
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Tue, 7 May 2024 07:10:44 +0000 (12:40 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2024 07:49:23 +0000 (09:49 +0200)
[ Upstream commit 077e3e3bc84a51891e732507bbbd9acf6e0e4c8b ]

Resume or suspend each sensor device based on the num_hid_devices.
Therefore, add a check to handle the special case where no sensors are
present.

Fixes: 93ce5e0231d7 ("HID: amd_sfh: Implement SFH1.1 functionality")
Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c

index 9dbe6f4cb29426a109c8c6c2565ae89e808cd3aa..c89e6a2a58736edd0c0bbf5fa58e8d8fbc613647 100644 (file)
@@ -227,6 +227,11 @@ static void amd_sfh_resume(struct amd_mp2_dev *mp2)
        struct amd_mp2_sensor_info info;
        int i, status;
 
+       if (!cl_data->is_any_sensor_enabled) {
+               amd_sfh_clear_intr(mp2);
+               return;
+       }
+
        for (i = 0; i < cl_data->num_hid_devices; i++) {
                if (cl_data->sensor_sts[i] == SENSOR_DISABLED) {
                        info.sensor_idx = cl_data->sensor_idx[i];
@@ -252,6 +257,11 @@ static void amd_sfh_suspend(struct amd_mp2_dev *mp2)
        struct amdtp_cl_data *cl_data = mp2->cl_data;
        int i, status;
 
+       if (!cl_data->is_any_sensor_enabled) {
+               amd_sfh_clear_intr(mp2);
+               return;
+       }
+
        for (i = 0; i < cl_data->num_hid_devices; i++) {
                if (cl_data->sensor_idx[i] != HPD_IDX &&
                    cl_data->sensor_sts[i] == SENSOR_ENABLED) {