Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp805146ybi; Sun, 30 Jun 2019 00:32:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqwgFf+JT7BcL7m3eIIWcHg2omZxyAvQXbF8siLY0kbIXAejqboaOooDyytWWctPfauYQ4PR X-Received: by 2002:a17:90a:32e4:: with SMTP id l91mr24174102pjb.17.1561879964194; Sun, 30 Jun 2019 00:32:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561879964; cv=none; d=google.com; s=arc-20160816; b=VUgnit/bB1pWOGlmEfSRL7RRkeVmYvOc/sroou1SgQXbl/BNdnIv2mqidmtXHrQEcp i/1WgO+E5Cne/OQe4HIPOI6SPWAJpq6IXhfmI3T6yP7k2dRSHDg5fHklq/gwSsPaf98E 6maykbt3uwrd6mYcfXmOCLLbfcrzchnpd6RHp6jDQvRdrXFEreWVv3spoAVw/RzMt7TT 2xOCOXQujLBj25OwxvPBbu2qmc/hpUBrilHEU7q5qBbuUZxGwruqwSXTVQ6TREcBwQm1 uZpcab3pQewF9cZzPaa6ooY3f5HL3Bt5WDc+ljSImMDFKSYeOfJLQrixzI1V9WKobVy6 cqyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=GvaAuf3ENW7rHALWXv/OGbjkqUQYVBOjIQBcNP2D9w0=; b=GxJtGEi8Ls+9Yb6zDh8Z4tpuRg3/xx1C1YL2enZ3nfKw2yNgN5NDNkwwEQnj+rFryi tidMUO4mhuKbT1gLL+vnHw1P5/cwtBzK9keHaQWj/AUbkzzpvPKZBt5W/j8h8AmJHhjw krz4ZPT6bX/o59IUIP9e56biBB5VzNNT8UIRoTckHSqyeErgqcoBs0/vXjN8AwjIH7Hc 6W3FIyzgM7RlzuQFXy1TNsRJ6u9BD5gKrMy7T2w7nLb9c2+MwmejvzrHYRsd/zCRlsDi sHrp3OxdGGlhmRdb+w91wAWVsZ6JvN1hSsBW2smzI85pJCyWJfSdWVprlahdTxTJ3cA/ HRyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=D29UYs8W; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y13si6692850pgq.172.2019.06.30.00.32.28; Sun, 30 Jun 2019 00:32:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=D29UYs8W; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726578AbfF3HcZ (ORCPT + 99 others); Sun, 30 Jun 2019 03:32:25 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:38412 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725959AbfF3HcY (ORCPT ); Sun, 30 Jun 2019 03:32:24 -0400 Received: by mail-pl1-f196.google.com with SMTP id 9so4854628ple.5; Sun, 30 Jun 2019 00:32:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=GvaAuf3ENW7rHALWXv/OGbjkqUQYVBOjIQBcNP2D9w0=; b=D29UYs8WGSaT9UD0G862oB9t6EVSJ2tSbIEBr3WVCF2EJLj7W/K92FYTE/WObHCqrd 2iLKGxYVleuWrBpdQn07smql8GrEHaz3aurhw/mBZlQdnyGuAppn8SCJ6+B9ZqlrJbAU KnGA410Acig+QWETafsTOrgFmqyI0YrY66htu0ZzWASTY0KzQ/kXGD+DMN5CfaxEF/X5 UIaDQmdWXfQ8wx2TNRjoYh//MEBGFEqyDebqXSKQkYkL7g+pwFN5Ix4Brkk1U8mMzBA8 384VvR/nbQZgXmWBr7ZDphsNfWa0mKi7SYBOgk8GKfgoXLvJn/ejaThECXdfPrUV6Y/W 83HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=GvaAuf3ENW7rHALWXv/OGbjkqUQYVBOjIQBcNP2D9w0=; b=aIwjgqgkeeGumS97Jq+Md/sW9qZRIQzBodu8xyU23Ha4JrRuOk0EuanzjT1tsAXhxh 5oJ+OxI8veyaB7X6BZ/w6KDADmKJ3qGqNNxKd1dDt8adzk4nMaVFmpaRgx384gV2CCkT jbHTyIf2LXk6ULcZnyobwowjiP7S9hVptipUXl9SdVIP4AYM9eMVFLCRBAy5JlVxOjlC Eju1R5hQif0K+61yZz2h7IlixF1yaE9nI4lxekw8EWHkBqyQxrrDNxvE6rj0LPmTC5mx mYA5Vg9v8B02DTUyha5yev9ZMcLUw32C6YxZUdNpS7yMaZfbB8vLnLXP+ogmCh6zXa9H rj6g== X-Gm-Message-State: APjAAAUxDHFzbmmZ+dwdgygVqpOKechhYXG6qC9xDq90DVO8hwqMuYl7 H5xOTOqKs9FRLicKEfMpjaQ= X-Received: by 2002:a17:902:9a49:: with SMTP id x9mr10390177plv.282.1561879943737; Sun, 30 Jun 2019 00:32:23 -0700 (PDT) Received: from dtor-ws ([2620:15c:202:201:3adc:b08c:7acc:b325]) by smtp.gmail.com with ESMTPSA id m4sm11989811pff.108.2019.06.30.00.32.22 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Sun, 30 Jun 2019 00:32:23 -0700 (PDT) Date: Sun, 30 Jun 2019 00:32:21 -0700 From: Dmitry Torokhov To: Alexander Tsoy Cc: linux-input@vger.kernel.org, Thomas Hellstrom , linux-kernel@vger.kernel.org Subject: Re: [PATCH] Input: joydev - extend absolute mouse detection Message-ID: <20190630073221.GF91171@dtor-ws> References: <20190623234456.4074-1-alexander@tsoy.me> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190623234456.4074-1-alexander@tsoy.me> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 24, 2019 at 02:44:56AM +0300, Alexander Tsoy wrote: > Extend event signature matching to catch more input devices emulated by > BMC firmwares, QEMU and VMware. > > Signed-off-by: Alexander Tsoy Applied, thank you. > --- > drivers/input/joydev.c | 24 ++++++++++++++++++++++-- > 1 file changed, 22 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c > index ac21c050fdb0..a2b5fbba2d3b 100644 > --- a/drivers/input/joydev.c > +++ b/drivers/input/joydev.c > @@ -808,6 +808,7 @@ static bool joydev_dev_is_blacklisted(struct input_dev *dev) > static bool joydev_dev_is_absolute_mouse(struct input_dev *dev) > { > DECLARE_BITMAP(jd_scratch, KEY_CNT); > + bool ev_match = false; > > BUILD_BUG_ON(ABS_CNT > KEY_CNT || EV_CNT > KEY_CNT); > > @@ -826,17 +827,36 @@ static bool joydev_dev_is_absolute_mouse(struct input_dev *dev) > * considered to be an absolute mouse if the following is > * true: > * > - * 1) Event types are exactly EV_ABS, EV_KEY and EV_SYN. > + * 1) Event types are exactly > + * EV_ABS, EV_KEY and EV_SYN > + * or > + * EV_ABS, EV_KEY, EV_SYN and EV_MSC > + * or > + * EV_ABS, EV_KEY, EV_SYN, EV_MSC and EV_REL. > * 2) Absolute events are exactly ABS_X and ABS_Y. > * 3) Keys are exactly BTN_LEFT, BTN_RIGHT and BTN_MIDDLE. > * 4) Device is not on "Amiga" bus. > */ > > bitmap_zero(jd_scratch, EV_CNT); > + /* VMware VMMouse, HP ILO2 */ > __set_bit(EV_ABS, jd_scratch); > __set_bit(EV_KEY, jd_scratch); > __set_bit(EV_SYN, jd_scratch); > - if (!bitmap_equal(jd_scratch, dev->evbit, EV_CNT)) > + if (bitmap_equal(jd_scratch, dev->evbit, EV_CNT)) > + ev_match = true; > + > + /* HP ILO2, AMI BMC firmware */ > + __set_bit(EV_MSC, jd_scratch); > + if (bitmap_equal(jd_scratch, dev->evbit, EV_CNT)) > + ev_match = true; > + > + /* VMware Virtual USB Mouse, QEMU USB Tablet, ATEN BMC firmware */ > + __set_bit(EV_REL, jd_scratch); > + if (bitmap_equal(jd_scratch, dev->evbit, EV_CNT)) > + ev_match = true; > + > + if (!ev_match) > return false; > > bitmap_zero(jd_scratch, ABS_CNT); > -- > 2.21.0 > -- Dmitry