linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] HID: hid-sensor-hub: fix attribute read for logical usage id
@ 2015-02-26  2:56 Srinivas Pandruvada
  2015-03-16 15:22 ` Jiri Kosina
  0 siblings, 1 reply; 2+ messages in thread
From: Srinivas Pandruvada @ 2015-02-26  2:56 UTC (permalink / raw)
  To: jkosina, jic23; +Cc: linux-input, Srinivas Pandruvada

For defining enumeration values like report or power status events,
the enumeration usage ids are enclosed in a logical collection.
In this case we need to match logical usage id for pending read
on this usage id. For example, in the below field, when
read is requested for 0319, the report will contain one of the
status usages like 850, 851 etc. In this case the raw event will
not match 0319. So when logical collection matches, then
wake up the pending thread.

      Physical(Sensor.OtherCustom)
      Logical(Sensor.0319)
      Application(Sensor.Sensor)
      Usage(6)
        Sensor.0850
        Sensor.0851
        Sensor.0852
        Sensor.0853
        Sensor.0854
        Sensor.0855
      Logical Minimum(1)
      Logical Maximum(5)
      Report Size(8)
      Report Count(1)
      Report Offset(24)
      Flags( Array Absolute )

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
 drivers/hid/hid-sensor-hub.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index 36d4cb4..5eb338d 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -497,8 +497,10 @@ static int sensor_hub_raw_event(struct hid_device *hdev,
 			ptr += sz;
 			continue;
 		}
-		if (hsdev->pending.status && hsdev->pending.attr_usage_id ==
-				report->field[i]->usage->hid) {
+		if (hsdev->pending.status && (hsdev->pending.attr_usage_id ==
+					      report->field[i]->usage->hid ||
+					      hsdev->pending.attr_usage_id ==
+					      report->field[i]->logical)) {
 			hid_dbg(hdev, "data was pending ...\n");
 			hsdev->pending.raw_data = kmemdup(ptr, sz, GFP_ATOMIC);
 			if (hsdev->pending.raw_data)
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] HID: hid-sensor-hub: fix attribute read for logical usage id
  2015-02-26  2:56 [PATCH] HID: hid-sensor-hub: fix attribute read for logical usage id Srinivas Pandruvada
@ 2015-03-16 15:22 ` Jiri Kosina
  0 siblings, 0 replies; 2+ messages in thread
From: Jiri Kosina @ 2015-03-16 15:22 UTC (permalink / raw)
  To: Srinivas Pandruvada; +Cc: jic23, linux-input

On Wed, 25 Feb 2015, Srinivas Pandruvada wrote:

> For defining enumeration values like report or power status events,
> the enumeration usage ids are enclosed in a logical collection.
> In this case we need to match logical usage id for pending read
> on this usage id. For example, in the below field, when
> read is requested for 0319, the report will contain one of the
> status usages like 850, 851 etc. In this case the raw event will
> not match 0319. So when logical collection matches, then
> wake up the pending thread.
> 
>       Physical(Sensor.OtherCustom)
>       Logical(Sensor.0319)
>       Application(Sensor.Sensor)
>       Usage(6)
>         Sensor.0850
>         Sensor.0851
>         Sensor.0852
>         Sensor.0853
>         Sensor.0854
>         Sensor.0855
>       Logical Minimum(1)
>       Logical Maximum(5)
>       Report Size(8)
>       Report Count(1)
>       Report Offset(24)
>       Flags( Array Absolute )
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>

Applied to for-4.1/sensor-hub.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-03-16 15:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-26  2:56 [PATCH] HID: hid-sensor-hub: fix attribute read for logical usage id Srinivas Pandruvada
2015-03-16 15:22 ` Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).