[APPLIED] Re: [PATCH] hid: Add a hid quirk for input sync override

Leann Ogasawara leann.ogasawara at canonical.com
Tue Aug 24 17:30:04 UTC 2010


Applied to Maverick linux master.

Thanks,
Leann

On Tue, 2010-08-24 at 16:19 +0200, Henrik Rydberg wrote:
> As of lately, HID devices which send per-frame data split over several
> HID reports have started to emerge. This patch adds a quirk which
> allows the HID driver to take over the input layer synchronization,
> and hence the control of the frame boundary.
> 
> Signed-off-by: Henrik Rydberg <rydberg at euromail.se>
> ---
> Ten days ago, there were reports on linux-input about broken
> Multitouch HID drivers (egalax, 3m-pct) for new devices, including the
> Joojoo. It turns out these are due to a new HID extension, pushed by a
> large software company, which sends per-frame data in sequence.
> 
> I propose carrying the above patch for Maverick, to enable the process
> of analyzing and fixing those drivers using dkms during the beta
> cycle. I do not yet know what will happen upstream.
> 
> Henrik
> 
>  drivers/hid/hid-input.c |    3 +++
>  include/linux/hid.h     |    1 +
>  2 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
> index 69d152e..9d97934 100644
> --- a/drivers/hid/hid-input.c
> +++ b/drivers/hid/hid-input.c
> @@ -656,6 +656,9 @@ void hidinput_report_event(struct hid_device *hid, struct hid_report *report)
>  {
>  	struct hid_input *hidinput;
>  
> +	if (hid->quirks & HID_QUIRK_NO_INPUT_SYNC)
> +		return;
> +
>  	list_for_each_entry(hidinput, &hid->inputs, list)
>  		input_sync(hidinput->input);
>  }
> diff --git a/include/linux/hid.h b/include/linux/hid.h
> index 895001f..8029883 100644
> --- a/include/linux/hid.h
> +++ b/include/linux/hid.h
> @@ -315,6 +315,7 @@ struct hid_item {
>  #define HID_QUIRK_FULLSPEED_INTERVAL		0x10000000
>  #define HID_QUIRK_NO_INIT_REPORTS		0x20000000
>  #define HID_QUIRK_NO_IGNORE			0x40000000
> +#define HID_QUIRK_NO_INPUT_SYNC			0x80000000
>  
>  /*
>   * This is the global environment of the parser. This information is
> -- 
> 1.7.1
> 
> 






More information about the kernel-team mailing list