Re: [PATCH] Input: Do not add SYN_REPORT in between a single packet data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Mr. Torokhov,

Would you please provide update for this patch?
As you can notice it is really pending for a long time,
I'll be grateful if you could update and conclude it quickly.

Thank you.

BR,
Aniroop Mathur


On Wed, May 4, 2016 at 9:12 PM, Aniroop Mathur <a.mathur@xxxxxxxxxxx> wrote:
> As mentioned in documentation, SYN_REPORT should be used to separate two packets
> and should not be inserted in between a single packet as otherwise with multiple
> SYN_REPORT in a single packet, input reader would not be able to know when the
> packet ended really.
>
> Documentation snippet:
> * SYN_REPORT:
>   - Used to synchronize and separate events into packets of input data changes
>     occurring at the same moment in time. For example, motion of a mouse may set
>     the REL_X and REL_Y values for one motion, then emit a SYN_REPORT. The next
>     motion will emit more REL_X and REL_Y values and send another SYN_REPORT.
>
> Signed-off-by: Aniroop Mathur <a.mathur@xxxxxxxxxxx>
> ---
>  drivers/input/input.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/input/input.c b/drivers/input/input.c
> index 8806059..5b0b1ae 100644
> --- a/drivers/input/input.c
> +++ b/drivers/input/input.c
> @@ -401,12 +401,14 @@ static void input_handle_event(struct input_dev *dev,
>                 if (dev->num_vals >= 2)
>                         input_pass_values(dev, dev->vals, dev->num_vals);
>                 dev->num_vals = 0;
> -       } else if (dev->num_vals >= dev->max_vals - 2) {
> -               dev->vals[dev->num_vals++] = input_value_sync;
> -               input_pass_values(dev, dev->vals, dev->num_vals);
> -               dev->num_vals = 0;
> +       } else if (dev->num_vals >= dev->max_vals - 1) {
> +               /* Pass all events except the newest event in order to
> +                * not suppress the immediate EV_SYN/SYN_REPORT event.
> +                */
> +               input_pass_values(dev, dev->vals, dev->num_vals - 1);
> +               dev->vals[0] = dev->vals[dev->num_vals - 1];
> +               dev->num_vals = 1;
>         }
> -
>  }
>
>  /**
> --
> 2.6.2
>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux