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)
committerJiri Kosina <jkosina@suse.cz>
Fri, 30 Sep 2022 08:31:18 +0000 (10:31 +0200)
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>
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_init.c

index d840efb4a2e28bece4cd30b7e5699333cd0475df..4da2f9f62aba3828d31a5ed8135943178b7e59d1 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);