Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934013AbcCITIH (ORCPT ); Wed, 9 Mar 2016 14:08:07 -0500 Received: from mail-vk0-f46.google.com ([209.85.213.46]:33055 "EHLO mail-vk0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933895AbcCITHz (ORCPT ); Wed, 9 Mar 2016 14:07:55 -0500 MIME-Version: 1.0 In-Reply-To: <1457372672-884-1-git-send-email-a.mathur@samsung.com> References: <1457372672-884-1-git-send-email-a.mathur@samsung.com> Date: Wed, 9 Mar 2016 11:07:53 -0800 Message-ID: Subject: Re: [PATCH] Input: Do not add SYN_REPORT in between a single packet data From: Dmitry Torokhov To: Aniroop Mathur , Henrik Rydberg Cc: "linux-input@vger.kernel.org" , lkml , Aniroop Mathur Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1593 Lines: 37 On Mon, Mar 7, 2016 at 9:44 AM, Aniroop Mathur 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 > --- > drivers/input/input.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/input/input.c b/drivers/input/input.c > index 8806059..262ef77 100644 > --- a/drivers/input/input.c > +++ b/drivers/input/input.c > @@ -401,8 +401,7 @@ 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; > + } else if (dev->num_vals >= dev->max_vals - 1) { > input_pass_values(dev, dev->vals, dev->num_vals); > dev->num_vals = 0; > } This makes sense to me. Henrik? -- Dmitry