Thread (8 messages) 8 messages, 4 authors, 2013-03-07

Re: [RFC 1/2] HID: Extend the interface with idle requests

From: Benjamin Tissoires <hidden>
Date: 2013-03-07 14:30:52
Also in: lkml

On Thu, Mar 7, 2013 at 3:26 PM, Jiri Kosina [off-list ref] wrote:
On Wed, 27 Feb 2013, Benjamin Tissoires wrote:
quoted
Some drivers send the idle command directly to underlying device,
creating an unwanted dependency on the underlying transport layer.
This patch adds hid_hw_idle() to the interface, thereby removing
usbhid from the lion share of the drivers.

Signed-off-by: Benjamin Tissoires <redacted>
---
 drivers/hid/usbhid/hid-core.c | 15 +++++++++++++++
 include/linux/hid.h           | 19 +++++++++++++++++++
 2 files changed, 34 insertions(+)
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 420466b..effcd3d 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1253,6 +1253,20 @@ static void usbhid_request(struct hid_device *hid, struct hid_report *rep, int r
      }
 }

+static int usbhid_idle(struct hid_device *hid, int report, int idle,
+             int reqtype)
Where does the need for passing the report argument come from please?
Well, I haven't checked in the USB spec, but hid_set_idle() in
usbhid/hid-core.c does require the reportID, so I add it to the
request.
I just gave a quick look at the HID/I2C spec, and it also requires the
report ID. The set_idle request is report specific.

Benjamin
--
Jiri Kosina
SUSE Labs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help