HID: amd_sfh: Add light chromaticity for SFH1.1
authorBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Tue, 19 Sep 2023 08:10:54 +0000 (13:40 +0530)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 24 Sep 2023 12:31:33 +0000 (13:31 +0100)
In most cases, ambient color sensors also support the x and y light
colors, which represent the coordinates on the CIE 1931 chromaticity
diagram. Thus, add light chromaticity x and y for SFH1.1.

Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Link: https://lore.kernel.org/r/20230919081054.2050714-10-Basavaraj.Natikar@amd.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_desc.c
drivers/hid/amd-sfh-hid/sfh1_1/amd_sfh_interface.h

index f100aaafa167d1b2f65720f186712fdcdb17d6d9..8a037de08e924d6305b255297a554c2615dcbbfd 100644 (file)
@@ -238,8 +238,11 @@ static u8 get_input_rep(u8 current_index, int sensor_idx, int report_id,
                als_input.illuminance_value = float_to_int(als_data.lux);
 
                memcpy_fromio(&binfo, mp2->vsbase, sizeof(struct sfh_base_info));
-               if (binfo.sbase.s_prop[ALS_IDX].sf.feat & 0x2)
+               if (binfo.sbase.s_prop[ALS_IDX].sf.feat & 0x2) {
                        als_input.light_color_temp = als_data.light_color_temp;
+                       als_input.chromaticity_x_value = float_to_int(als_data.chromaticity_x);
+                       als_input.chromaticity_y_value = float_to_int(als_data.chromaticity_y);
+               }
 
                report_size = sizeof(als_input);
                memcpy(input_report, &als_input, sizeof(als_input));
index 6f6f5db150c396131139d4dd318cd6fffc9cbc66..656c3e95ef8c33f829fc5b2aea3e595bf10df3c0 100644 (file)
@@ -147,6 +147,8 @@ struct sfh_als_data {
        struct sfh_common_data commondata;
        u32 lux;
        u32 light_color_temp;
+       u32 chromaticity_x;
+       u32 chromaticity_y;
 };
 
 struct hpd_status {