HID: amd_sfh: Fix illuminance value
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Tue, 11 Apr 2023 16:10:26 +0000 (21:40 +0530)
committerJiri Kosina <jkosina@suse.cz>
Thu, 13 Apr 2023 13:55:22 +0000 (15:55 +0200)
Illuminance value is actually 32 bits, but is incorrectly trancated to
16 bits. Hence convert to integer illuminace accordingly to reflect
correct values.

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_desc.c
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.h

index 0609fea..6f0d332 100644 (file)
@@ -218,7 +218,7 @@ static u8 get_input_rep(u8 current_index, int sensor_idx, int report_id,
                             OFFSET_SENSOR_DATA_DEFAULT;
                memcpy_fromio(&als_data, sensoraddr, sizeof(struct sfh_als_data));
                get_common_inputs(&als_input.common_property, report_id);
-               als_input.illuminance_value = als_data.lux;
+               als_input.illuminance_value = float_to_int(als_data.lux);
                report_size = sizeof(als_input);
                memcpy(input_report, &als_input, sizeof(als_input));
                break;
index a3e0ec2..9d31d5b 100644 (file)
@@ -133,7 +133,7 @@ struct sfh_mag_data {
 
 struct sfh_als_data {
        struct sfh_common_data commondata;
-       u16 lux;
+       u32 lux;
 };
 
 struct hpd_status {