drivers/iio/light/hid-sensor-prox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
The attention channel is a IIO_CHAN_INFO_PROCESSED, not a
IIO_CHAN_INFO_RAW.
Modify prox_read_raw() to support it.
Fixes: 596ef5cf654b ("iio: hid-sensor-prox: Add support for more channels")
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
drivers/iio/light/hid-sensor-prox.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/light/hid-sensor-prox.c b/drivers/iio/light/hid-sensor-prox.c
index e8e7b2999b4c..8e5d0ad13a5f 100644
--- a/drivers/iio/light/hid-sensor-prox.c
+++ b/drivers/iio/light/hid-sensor-prox.c
@@ -94,6 +94,7 @@ static int prox_read_raw(struct iio_dev *indio_dev,
*val2 = 0;
switch (mask) {
case IIO_CHAN_INFO_RAW:
+ case IIO_CHAN_INFO_PROCESSED:
if (chan->scan_index >= prox_state->num_channels)
return -EINVAL;
address = prox_state->channel2usage[chan->scan_index];
@@ -107,8 +108,7 @@ static int prox_read_raw(struct iio_dev *indio_dev,
report_id,
SENSOR_HUB_SYNC,
min < 0);
- if (prox_state->channel2usage[chan->scan_index] ==
- HID_USAGE_SENSOR_HUMAN_ATTENTION)
+ if (mask == IIO_CHAN_INFO_PROCESSED)
*val *= 100;
hid_sensor_power_state(&prox_state->common_attributes, false);
ret_type = IIO_VAL_INT;
---
base-commit: decc701f41d07481893fdea942c0ac6b226e84cd
change-id: 20241121-fix-processed-ed1a95641e64
Best regards,
--
Ricardo Ribalda <ribalda@chromium.org>
On Thu, 2024-11-21 at 09:16 +0000, Ricardo Ribalda wrote: > The attention channel is a IIO_CHAN_INFO_PROCESSED, not a > IIO_CHAN_INFO_RAW. > > Modify prox_read_raw() to support it. > What is the sysfs entry to trigger this IIO_CHAN_INFO_PROCESSED read? Don't you have an entry *_raw? Thanks, Srinivas > Fixes: 596ef5cf654b ("iio: hid-sensor-prox: Add support for more > channels") > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> > --- > drivers/iio/light/hid-sensor-prox.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/light/hid-sensor-prox.c > b/drivers/iio/light/hid-sensor-prox.c > index e8e7b2999b4c..8e5d0ad13a5f 100644 > --- a/drivers/iio/light/hid-sensor-prox.c > +++ b/drivers/iio/light/hid-sensor-prox.c > @@ -94,6 +94,7 @@ static int prox_read_raw(struct iio_dev *indio_dev, > *val2 = 0; > switch (mask) { > case IIO_CHAN_INFO_RAW: > + case IIO_CHAN_INFO_PROCESSED: > if (chan->scan_index >= prox_state->num_channels) > return -EINVAL; > address = prox_state->channel2usage[chan- > >scan_index]; > @@ -107,8 +108,7 @@ static int prox_read_raw(struct iio_dev > *indio_dev, > > report_id, > > SENSOR_HUB_SYNC, > min < 0); > - if (prox_state->channel2usage[chan->scan_index] == > - HID_USAGE_SENSOR_HUMAN_ATTENTION) > + if (mask == IIO_CHAN_INFO_PROCESSED) > *val *= 100; > hid_sensor_power_state(&prox_state- > >common_attributes, false); > ret_type = IIO_VAL_INT; > > --- > base-commit: decc701f41d07481893fdea942c0ac6b226e84cd > change-id: 20241121-fix-processed-ed1a95641e64 > > Best regards,
On Thu, 21 Nov 2024 at 17:44, srinivas pandruvada <srinivas.pandruvada@linux.intel.com> wrote: > > On Thu, 2024-11-21 at 09:16 +0000, Ricardo Ribalda wrote: > > The attention channel is a IIO_CHAN_INFO_PROCESSED, not a > > IIO_CHAN_INFO_RAW. > > > > Modify prox_read_raw() to support it. > > > What is the sysfs entry to trigger this IIO_CHAN_INFO_PROCESSED read? > Don't you have an entry *_raw? /sys/.../iio:deviceX/in_attention_input There is no _raw device for it. > > > Thanks, > Srinivas > > > Fixes: 596ef5cf654b ("iio: hid-sensor-prox: Add support for more > > channels") > > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> > > --- > > drivers/iio/light/hid-sensor-prox.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/iio/light/hid-sensor-prox.c > > b/drivers/iio/light/hid-sensor-prox.c > > index e8e7b2999b4c..8e5d0ad13a5f 100644 > > --- a/drivers/iio/light/hid-sensor-prox.c > > +++ b/drivers/iio/light/hid-sensor-prox.c > > @@ -94,6 +94,7 @@ static int prox_read_raw(struct iio_dev *indio_dev, > > *val2 = 0; > > switch (mask) { > > case IIO_CHAN_INFO_RAW: > > + case IIO_CHAN_INFO_PROCESSED: > > if (chan->scan_index >= prox_state->num_channels) > > return -EINVAL; > > address = prox_state->channel2usage[chan- > > >scan_index]; > > @@ -107,8 +108,7 @@ static int prox_read_raw(struct iio_dev > > *indio_dev, > > > > report_id, > > > > SENSOR_HUB_SYNC, > > min < 0); > > - if (prox_state->channel2usage[chan->scan_index] == > > - HID_USAGE_SENSOR_HUMAN_ATTENTION) > > + if (mask == IIO_CHAN_INFO_PROCESSED) > > *val *= 100; > > hid_sensor_power_state(&prox_state- > > >common_attributes, false); > > ret_type = IIO_VAL_INT; > > > > --- > > base-commit: decc701f41d07481893fdea942c0ac6b226e84cd > > change-id: 20241121-fix-processed-ed1a95641e64 > > > > Best regards, > -- Ricardo Ribalda
On Fri, 2024-11-22 at 08:46 +0100, Ricardo Ribalda wrote: > On Thu, 21 Nov 2024 at 17:44, srinivas pandruvada > <srinivas.pandruvada@linux.intel.com> wrote: > > > > On Thu, 2024-11-21 at 09:16 +0000, Ricardo Ribalda wrote: > > > The attention channel is a IIO_CHAN_INFO_PROCESSED, not a > > > IIO_CHAN_INFO_RAW. > > > > > > Modify prox_read_raw() to support it. > > > > > What is the sysfs entry to trigger this IIO_CHAN_INFO_PROCESSED > > read? > > Don't you have an entry *_raw? > > /sys/.../iio:deviceX/in_attention_input > > There is no _raw device for it. > OK. > > > > > Fixes: 596ef5cf654b ("iio: hid-sensor-prox: Add support for more > > > channels") > > > Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> > > > --- > > > drivers/iio/light/hid-sensor-prox.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/iio/light/hid-sensor-prox.c > > > b/drivers/iio/light/hid-sensor-prox.c > > > index e8e7b2999b4c..8e5d0ad13a5f 100644 > > > --- a/drivers/iio/light/hid-sensor-prox.c > > > +++ b/drivers/iio/light/hid-sensor-prox.c > > > @@ -94,6 +94,7 @@ static int prox_read_raw(struct iio_dev > > > *indio_dev, > > > *val2 = 0; > > > switch (mask) { > > > case IIO_CHAN_INFO_RAW: > > > + case IIO_CHAN_INFO_PROCESSED: > > > if (chan->scan_index >= prox_state->num_channels) > > > return -EINVAL; > > > address = prox_state->channel2usage[chan- > > > > scan_index]; > > > @@ -107,8 +108,7 @@ static int prox_read_raw(struct iio_dev > > > *indio_dev, > > > > > > report_id, > > > > > > SENSOR_HUB_SYNC, > > > min < > > > 0); > > > - if (prox_state->channel2usage[chan->scan_index] == > > > - HID_USAGE_SENSOR_HUMAN_ATTENTION) > > > + if (mask == IIO_CHAN_INFO_PROCESSED) Your original change is better. If someone adds a new channel which also requires IIO_CHAN_INFO_PROCESSED, then they need to change this line. So I don't think you need this change. Thanks, Srinivas > > > *val *= 100; > > > hid_sensor_power_state(&prox_state- > > > > common_attributes, false); > > > ret_type = IIO_VAL_INT; > > > > > > --- > > > base-commit: decc701f41d07481893fdea942c0ac6b226e84cd > > > change-id: 20241121-fix-processed-ed1a95641e64 > > > > > > Best regards, > > > >
© 2016 - 2024 Red Hat, Inc.