From patchwork Wed May 4 15:42:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aniroop Mathur X-Patchwork-Id: 9016221 Return-Path: X-Original-To: patchwork-linux-input@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 1D0139F30C for ; Wed, 4 May 2016 15:38:17 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 49F162038D for ; Wed, 4 May 2016 15:38:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 07E652025B for ; Wed, 4 May 2016 15:38:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752032AbcEDPiO (ORCPT ); Wed, 4 May 2016 11:38:14 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33293 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751088AbcEDPiN (ORCPT ); Wed, 4 May 2016 11:38:13 -0400 Received: by mail-pf0-f193.google.com with SMTP id y7so5239289pfb.0 for ; Wed, 04 May 2016 08:38:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id; bh=KJVCY9aJ0buQovm2FS/iM5BWQvCoqOo1oKw47agIE1M=; b=AjN87wnGOAZ4dMHiegoAfnxYHtwV2iHbkcvYzysfk2NT1EOs4g30jSO+FE2KTmTLXo fOyPjcCqi1y2hK6P/DGcLxfRnEwItZGT9rWQbFDqcb64rIZkH4WTNiFgP/i2QyQOy4Sl QeNrlKCpVAoUFSY3HzuTCX/vr6ctQEW0WgqB8a1dMRJYVk0tWVRTI3V8XgYxFbQzszOC Nr7H+kBs0q2jym4ZJgCj1bx6ovxSEinrEAt36ZIMPklM3HMW/delahgCVGdfl4OnI6PU x6chOntHH9X1csQyet6jd1OhwmpdytimpsVFW3EAKIHQY0sVSZ1BNhRzvsSRv+bL8ppQ fdQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=KJVCY9aJ0buQovm2FS/iM5BWQvCoqOo1oKw47agIE1M=; b=EgCpjXgmpTckGPg5iCVZmNHnHqM2sepeC+TaM0GY6hfrDXK3hsKpdtOD8ZUjDOSZd8 8hCVqWEWragtEkODH27GpCEz9UMFhh6mWDMtj4gup+vRGnYxnHtX4fQF3Ub3hs4dwaaP Xqo0GSu5xWiGPUKUadJdvGVCUM/noCRX9eCAfmpDph6vR/bm6WPWNq3PqsjS1ipucPvT d2hf/0Ttco/8ZXtAamUPe2acZIewxLjz5WzZtClc5iU0En5wkjyDRK9QxDMeHZSzfBif ysu4w7f4yqTGFzfs9IsZdzSb4yDLJaJC0gX0O3ovFb6KlHdiwW7uzAdEGADvro1HKBae 39Yw== X-Gm-Message-State: AOPr4FVn8ZNmC7Vfam1YzpJKuZoxGzlS6QJglqHZvlbVM8YlaeWZK1cdiqxLnDKVRu4Ksg== X-Received: by 10.98.98.6 with SMTP id w6mr1373330pfb.0.1462376292526; Wed, 04 May 2016 08:38:12 -0700 (PDT) Received: from Aniroops-MacBook-Pro.local.name ([203.122.39.199]) by smtp.gmail.com with ESMTPSA id s64sm7022483pfi.77.2016.05.04.08.38.08 (version=TLS1 cipher=AES128-SHA bits=128/128); Wed, 04 May 2016 08:38:11 -0700 (PDT) From: Aniroop Mathur To: dmitry.torokhov@gmail.com Cc: linux-input@vger.kernel.org, aniroop.mathur@gmail.com, Aniroop Mathur Subject: [PATCH] Input: Do not add SYN_REPORT in between a single packet data Date: Wed, 4 May 2016 21:12:51 +0530 Message-Id: <1462376571-4280-1-git-send-email-a.mathur@samsung.com> X-Mailer: git-send-email 2.6.2 Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Spam-Status: No, score=-8.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 | 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; } - } /**