Message ID | 20230919081054.2050714-9-Basavaraj.Natikar@amd.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 3244d44a7c5e6961d79eafa44370ff13c909d670 |
Delegated to: | Jiri Kosina |
Headers | show |
Series | Support light color temperature and chromaticity | expand |
On Tue, 19 Sep 2023, Basavaraj Natikar wrote: > 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. > > Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> Acked-by: Jiri Kosina <jkosina@suse.cz> > --- > .../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c | 5 ++++- > .../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h | 2 ++ > .../hid_descriptor/amd_sfh_hid_report_desc.h | 14 ++++++++++++++ > 3 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c > index b7e732ec4806..ef1f9be8b893 100644 > --- a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c > +++ b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c > @@ -258,8 +258,11 @@ static u8 get_input_report(u8 current_index, int sensor_idx, int report_id, > als_input.illuminance_value = > (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER; > > - if (sensor_idx == ACS_IDX) > + if (sensor_idx == ACS_IDX) { > als_input.light_color_temp = sensor_virt_addr[1]; > + als_input.chromaticity_x_value = sensor_virt_addr[2]; > + als_input.chromaticity_y_value = sensor_virt_addr[3]; > + } > > report_size = sizeof(als_input); > memcpy(input_report, &als_input, sizeof(als_input)); > diff --git a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h > index a7fc50deca4d..882434b1501f 100644 > --- a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h > +++ b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h > @@ -100,6 +100,8 @@ struct als_input_report { > /* values specific to this sensor */ > int illuminance_value; > int light_color_temp; > + int chromaticity_x_value; > + int chromaticity_y_value; > } __packed; > > struct hpd_feature_report { > diff --git a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h > index 26e994e54ded..67ec2d6a417d 100644 > --- a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h > +++ b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h > @@ -648,6 +648,20 @@ static const u8 als_report_descriptor[] = { > 0x75, 32, /* HID report size(32) */ > 0x95, 1, /* HID report count (1) */ > 0X81, 0x02, /* HID Input (Data_Arr_Abs) */ > +0x0A, 0xD4, 0x04, /* HID usage sensor data light chromaticity_x */ > +0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ > +0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ > +0x55, 0x0, /* HID unit exponent(0x0) */ > +0x75, 32, /* HID report size(32) */ > +0x95, 1, /* HID report count(1) */ > +0X81, 0x02, /* HID Input (Data_Var_Abs) */ > +0x0A, 0xD5, 0x04, /* HID usage sensor data light chromaticity_y */ > +0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ > +0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ > +0x55, 0x0, /* HID unit exponent(0x0) */ > +0x75, 32, /* HID report size(32) */ > +0x95, 1, /* HID report count (1) */ > +0X81, 0x02, /* HID Input (Data_Var_Abs) */ > 0xC0 /* HID end collection */ > }; > > -- > 2.25.1 >
diff --git a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c index b7e732ec4806..ef1f9be8b893 100644 --- a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c +++ b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c @@ -258,8 +258,11 @@ static u8 get_input_report(u8 current_index, int sensor_idx, int report_id, als_input.illuminance_value = (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER; - if (sensor_idx == ACS_IDX) + if (sensor_idx == ACS_IDX) { als_input.light_color_temp = sensor_virt_addr[1]; + als_input.chromaticity_x_value = sensor_virt_addr[2]; + als_input.chromaticity_y_value = sensor_virt_addr[3]; + } report_size = sizeof(als_input); memcpy(input_report, &als_input, sizeof(als_input)); diff --git a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h index a7fc50deca4d..882434b1501f 100644 --- a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h +++ b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h @@ -100,6 +100,8 @@ struct als_input_report { /* values specific to this sensor */ int illuminance_value; int light_color_temp; + int chromaticity_x_value; + int chromaticity_y_value; } __packed; struct hpd_feature_report { diff --git a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h index 26e994e54ded..67ec2d6a417d 100644 --- a/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h +++ b/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h @@ -648,6 +648,20 @@ static const u8 als_report_descriptor[] = { 0x75, 32, /* HID report size(32) */ 0x95, 1, /* HID report count (1) */ 0X81, 0x02, /* HID Input (Data_Arr_Abs) */ +0x0A, 0xD4, 0x04, /* HID usage sensor data light chromaticity_x */ +0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ +0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ +0x55, 0x0, /* HID unit exponent(0x0) */ +0x75, 32, /* HID report size(32) */ +0x95, 1, /* HID report count(1) */ +0X81, 0x02, /* HID Input (Data_Var_Abs) */ +0x0A, 0xD5, 0x04, /* HID usage sensor data light chromaticity_y */ +0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ +0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ +0x55, 0x0, /* HID unit exponent(0x0) */ +0x75, 32, /* HID report size(32) */ +0x95, 1, /* HID report count (1) */ +0X81, 0x02, /* HID Input (Data_Var_Abs) */ 0xC0 /* HID end collection */ };
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. Signed-off-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> --- .../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.c | 5 ++++- .../amd-sfh-hid/hid_descriptor/amd_sfh_hid_desc.h | 2 ++ .../hid_descriptor/amd_sfh_hid_report_desc.h | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-)