From patchwork Fri Oct 26 08:44:23 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Tissoires X-Patchwork-Id: 1650311 X-Patchwork-Delegate: jikos@jikos.cz Return-Path: X-Original-To: patchwork-linux-input@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 8C1AF40135 for ; Fri, 26 Oct 2012 08:48:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757461Ab2JZIo7 (ORCPT ); Fri, 26 Oct 2012 04:44:59 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:62909 "EHLO mail-wi0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757413Ab2JZIoq (ORCPT ); Fri, 26 Oct 2012 04:44:46 -0400 Received: by mail-wi0-f178.google.com with SMTP id hr7so218498wib.1 for ; Fri, 26 Oct 2012 01:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; bh=c7TRkVzCWNLMi7kKRLsG3RyjWlTNSZQAbdnOPgxhk0k=; b=AkHflY8s0ST0bEFsfxCrkFHFLPIH1gL5tl5p+rOm5KuuipD8e9IPjOwFfIlXrq+vrZ NRECPGTsKe6fb+eEymcj87xtGxWx0ZlKpwy5hrruGv3L6YNhWZkb1ow0T1z5SsLScvOD lUpzLNlKpSUQoNnpcaFJFwd5046Hk3kYPsTeEuBsMa+1ec94XROmsQXkK1PXtSPfuEtT GJX8ju2VQ8YqalrvbdaQBWeYkaKH8a3KlmdjOpt8Wxx+OcucCosSpKVEFn6ScDWEU1GU zBhwRWcSAdALYvNEjxn4TeL/MGBoYcy+C8jt45dYsJTTO9z75W/bIVhRk/FxfGWY5d4i qygA== Received: by 10.216.131.218 with SMTP id m68mr13190100wei.195.1351241085248; Fri, 26 Oct 2012 01:44:45 -0700 (PDT) Received: from miniplouf.lan (lan31-8-82-247-176-67.fbx.proxad.net. [82.247.176.67]) by mx.google.com with ESMTPS id dq6sm14151586wib.5.2012.10.26.01.44.43 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 26 Oct 2012 01:44:44 -0700 (PDT) From: Benjamin Tissoires To: "benjamin.tissoires" , Dmitry Torokhov , Henrik Rydberg , Jiri Kosina , Stephane Chatty , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 07/11] HID: hid-multitouch: move ALWAYS_VALID quirk check Date: Fri, 26 Oct 2012 10:44:23 +0200 Message-Id: <1351241067-9521-8-git-send-email-benjamin.tissoires@gmail.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1351241067-9521-1-git-send-email-benjamin.tissoires@gmail.com> References: <1351241067-9521-1-git-send-email-benjamin.tissoires@gmail.com> Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Win 8 device specification changed the requirements for the hid usages of the multitouch devices. Now InRange is optional and must be only used when the device supports hovering. This ensures that the quirk ALWAYS_VALID is taken into account and also ensures its precedence over the other VALID* quirks. Signed-off-by: Benjamin Tissoires --- drivers/hid/hid-multitouch.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 000c979..43bd8e8 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -506,7 +506,7 @@ static int mt_compute_slot(struct mt_device *td, struct input_dev *input) */ static void mt_complete_slot(struct mt_device *td, struct input_dev *input) { - if (td->curvalid) { + if (td->curvalid || td->mtclass.quirks & MT_QUIRK_ALWAYS_VALID) { int slotnum = mt_compute_slot(td, input); struct mt_slot *s = &td->curdata; @@ -561,9 +561,7 @@ static int mt_event(struct hid_device *hid, struct hid_field *field, if (hid->claimed & HID_CLAIMED_INPUT) { switch (usage->hid) { case HID_DG_INRANGE: - if (quirks & MT_QUIRK_ALWAYS_VALID) - td->curvalid = true; - else if (quirks & MT_QUIRK_VALID_IS_INRANGE) + if (quirks & MT_QUIRK_VALID_IS_INRANGE) td->curvalid = value; break; case HID_DG_TIPSWITCH: