Re: [PATCH 2/5] iio: hid-sensor-als: Support change sensitivity in illuminance too.
From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Date: 2021-03-01 22:42:53
Also in:
linux-input, lkml
On Sun, 2021-02-28 at 14:45 +0000, Jonathan Cameron wrote:
On Sat, 27 Feb 2021 17:26:40 -0800 Ronald Tschalär [off-list ref] wrote:quoted
Recent MacBook Pro's specify the usage of the change sensitivity field as illuminance (with a change sensitivity modifier) rather than as light. Signed-off-by: Ronald Tschalär <redacted>This looks fine to me though it the hid sensors spec never fails to surprise me in the different slight variants of the same thing that come up. Illuminance is at least fairly well defined, but who knows what for the DATA_LIGHT version takes?
The current implementations are deploying using "HID_USAGE_SENSOR_LIGHT_ILLUM" usage id 0xD1 for input. So this is natural to use the same usage id for sensitivity. So patch looks good to me. But most implementation choose to use DATA_LIGHT for the sensitivity. probably referring to change in quantity of light without referring to area. There are no obvious units specified for DATA_LIGHT in the spec. Thanks, Srinivas
Anyhow, lets give time for Srinivas to sanity check this as he's much more familiar with that spec than I am. Jonathanquoted
--- drivers/iio/light/hid-sensor-als.c | 8 ++++++++ 1 file changed, 8 insertions(+)diff --git a/drivers/iio/light/hid-sensor-als.cb/drivers/iio/light/hid-sensor-als.c index a21c827e4953d..849ee37dcd866 100644--- a/drivers/iio/light/hid-sensor-als.c +++ b/drivers/iio/light/hid-sensor-als.c@@ -252,6 +252,14 @@ static int als_parse_report(structplatform_device *pdev, HID_USAGE_SENSOR_DATA_MOD_CHANGE_SENSITIVITY_AB S | HID_USAGE_SENSOR_DATA_LIGHT, &st->common_attributes.sensitivity); + + if (st->common_attributes.sensitivity.index < 0) + sensor_hub_input_get_attribute_info(hsdev, + HID_FEATURE_REPORT, usage_id, + HID_USAGE_SENSOR_DATA_MOD_CHANGE_SENSIT IVITY_ABS | + HID_USAGE_SENSOR_LIGHT_ILLUM, + &st->common_attributes.sensitivity); + dev_dbg(&pdev->dev, "Sensitivity index:report %d:%d\n", st->common_attributes.sensitivity.index, st->common_attributes.sensitivity.report_id);