]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
HID: amd_sfh: Handle condition of "no sensors" for SFH1.1
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Tue, 27 Sep 2022 10:27:26 +0000 (15:57 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Oct 2022 10:38:53 +0000 (12:38 +0200)
[ Upstream commit 68266bdcceec10ea364e62c63732cd6fe5a256a8 ]

Based on num_hid_devices, each sensor device registers to HID. If
"no sensors" then amd_sfh work initialization and scheduling
doesn’t make sense and return ENODEV to stop driver probe.
Hence add a check for num_hid_devices to handle special
case in the situation of "no sensors" for SFH1.1.

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.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c

index 70436f9fad2f21e4251a8c689671fee2ff8ce52d..33e039e1e01d4775e81b56e33fb5b4ea45885de7 100644 (file)
@@ -110,6 +110,8 @@ static int amd_sfh1_1_hid_client_init(struct amd_mp2_dev *privdata)
        amd_sfh1_1_set_desc_ops(mp2_ops);
 
        cl_data->num_hid_devices = amd_sfh_get_sensor_num(privdata, &cl_data->sensor_idx[0]);
+       if (cl_data->num_hid_devices == 0)
+               return -ENODEV;
 
        INIT_DELAYED_WORK(&cl_data->work, amd_sfh_work);
        INIT_DELAYED_WORK(&cl_data->work_buffer, amd_sfh_work_buffer);