Messages in this thread | | | Date | Thu, 7 Mar 2013 15:30:48 +0100 | Subject | Re: [RFC 1/2] HID: Extend the interface with idle requests | From | Benjamin Tissoires <> |
| |
On Thu, Mar 7, 2013 at 3:26 PM, Jiri Kosina <jkosina@suse.cz> wrote: > On Wed, 27 Feb 2013, Benjamin Tissoires wrote: > >> 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 <benjamin.tissoires@redhat.com> >> --- >> 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
| |