[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <44D4ECB2.5050109@superbug.co.uk>
Date: Sat, 05 Aug 2006 20:08:34 +0100
From: James Courtier-Dutton <James@...erbug.co.uk>
To: Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Problem with drivers/usb/input/hid-core.c
Hi,
I tried posting to the linux-usb-devel list, but it seems to have died.
<Extract start>
/*
* Analyse a received field, and fetch the data from it. The field
* content is stored for next report processing (we do differential
* reporting to the layer).
*/
static void hid_input_field(struct hid_device *hid, struct hid_field
*field, __u8 *data, int interrupt, struct pt_regs *regs)
<Extract end>
Why is "differential reporting to the layer" done?
I have a USB device that uses the interrupt urb to notify the PC of
events. Each time an event happens, a usb interrupt is created, and the
driver reads the value from the report. Most of the time the event
contains exactly the same report info as the previous interrupt. As a
result of this differential reporting, I only see the first event, and
then no more until the event changes. How can I get repeated events of
the same report up to user space? I am currently using the
/dev/usb/hiddev0 interface.
Any clues?
For now, I am removing the "differential reporting to the layer" code,
ensuring that all interrupt urbs reach the higher layers.
The "differential reporting" code must be there for a reason, does
anyone know why it is present?
James
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists