Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1676999pxb; Thu, 4 Mar 2021 18:26:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJzKZscVV3nq2+PwQQpqqYm76tK2mwoPppI2+knNRGwWy3BLbYk4zWFpdKj1hhn9x4U1uGow X-Received: by 2002:a6b:b447:: with SMTP id d68mr5977159iof.87.1614911204294; Thu, 04 Mar 2021 18:26:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614911204; cv=none; d=google.com; s=arc-20160816; b=qCX1vfOINI2nxAZXKhPzSBc2wREbD6Fkm0Z2S46ulBr+L3hiYOFyQ/gdJTygFrnNJA +4yTSsaMhBe5hzz25vYTMirHLtWznjxif2wSYVp6YuEhzERunN46WJ2X2Bk905Z3jvBC 54KrNRjv0HciaNRtBN591k2ZFMzEjaWNtPxEYQBaObV1PLzIW8f79gZ9z6AEKI1VjFQk /Z7aIuAgHgNhU74i6L+NbHPo0ElrjOpfqtgYlDCWFjgMqqmZohcFnL9/QwoqhIraIMsw I8QUnFWLCSgKs6xYwjx1J8edFZsi4a80XXahq1YSwyACzykL3FyZ+7RA3V3qxrBmnjUL E1XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=2FGTyyXGBlrhr2U0Y+zu7HE9K3MeHxtD2Y4He3VPYgY=; b=RzBWkXveiP3IK9NTlpGWGalZoaAE/z7ooXdid1dfq4ir8aHM4SR5a/D3h72LPU5unK +VSTlyxI5xzWqxlNe/TcJ4ia16evn8dJIcQWn3NW3yEAxLfFId3krI8giD6wkQgiAqUh 0OoWfeI7zBaLmeoVY8n3wa+vNYm5NhZxnNMwCKAQGU1rvOLslsfc8b0cTkZmwdzVUHA7 Ou2BbyqqpyrGW1m5EJYpZtYMKCIY7ia+jAq109hFeloITGE1VYUWxLEYa+2ioAmweoEX RCY9dP63NS1vyTVzz1qf92PYdyat9l73U1UX7cvbLBSY8j1IfnD1Xf1dkLKWZYuiq2FB wwJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=dsvHLQY6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j7si886147ilu.88.2021.03.04.18.26.30; Thu, 04 Mar 2021 18:26:44 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=dsvHLQY6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229704AbhCECZf (ORCPT + 99 others); Thu, 4 Mar 2021 21:25:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229436AbhCECZe (ORCPT ); Thu, 4 Mar 2021 21:25:34 -0500 Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2CDFDC061574 for ; Thu, 4 Mar 2021 18:25:33 -0800 (PST) Received: by mail-lj1-x22b.google.com with SMTP id r25so817880ljk.11 for ; Thu, 04 Mar 2021 18:25:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2FGTyyXGBlrhr2U0Y+zu7HE9K3MeHxtD2Y4He3VPYgY=; b=dsvHLQY6xZe01a5ElvrEKz2pi2TzN4XqbM2bPG3BcVWYMkAt1L46kzpBrdiL/S7gZh z0gvyLN132f+PtGiObi6hJSzO+5GunORowUlDFpQFrRd10F77NUVToUY4kwxv7eqltZ3 2zcmmsBl5Nam3WZBemqCHgtVPD0X4BV3HVEVEgdMIEOfUmBw2kojQRiJkdAPXT7gUXx7 f/+RtIQ/XP/WsODFr4OVERBKz8QrZDGf4HvNGKEoZi7Z21u/cBA1ZYKbVYRO5wvbpsfT OXjhj/cl0EpCdJTuc0QiMiKAwnzLGH2EpVToNseuUNO1LPb7Ti8iktjtHNWePdyT7Fbb J/Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2FGTyyXGBlrhr2U0Y+zu7HE9K3MeHxtD2Y4He3VPYgY=; b=Mp8M3fpkCtaQLsYayBnlIbxVWyZPA6GQrI4fYhsuJAaeVa68vHqKtX+1XvTRmg2ZwR v1qoa/AQoSomNi8YCe3gBDN8tSRlUt+iR5BgTNCAk/9ouiwemom3J/u5uZVc1BdKJ2u1 Gw+99MKpuJxPZgWC/Ti8mVun7lcamSt0732Q33Suyhx9YJH+jdTQgwOivc9SVUqmMpA8 cLiu21saytSiU/rLye5qfVHWJ1viS249Ac9r/OXafDlrLM4WUTzeAPHI3ISdmxAXw23J 2aIoqf8MIrOuLaj27cOEy5guBwYNKMc1C1+tNn76UiU2xuLNaCE6/ZBmzCIPfXIXN+oS 24IQ== X-Gm-Message-State: AOAM531zXsncYJBc4H+v88Ltfo8lwdJXbzLf2BqM0mRr5rfW56y55bYF /x+ebeUV0Hd8faWgD3RaMJGQ89p1D2EP/+hY9Npk8g== X-Received: by 2002:a19:7e0b:: with SMTP id z11mr4314739lfc.320.1614911131451; Thu, 04 Mar 2021 18:25:31 -0800 (PST) MIME-Version: 1.0 References: <20210225053204.697951-1-lzye@google.com> <1b315e2cd02f4017cc746909088cc8bc1a39024e.camel@hadess.net> In-Reply-To: From: Chris Ye Date: Thu, 4 Mar 2021 18:25:20 -0800 Message-ID: Subject: Re: [PATCH] [v2] Input: Add "Share" button to Microsoft Xbox One controller. To: Bastien Nocera Cc: =?UTF-8?Q?=C5=81ukasz_Patron?= , Benjamin Valentin , Lee Jones , =?UTF-8?Q?Olivier_Cr=C3=AAte?= , Sanjay Govind , Andrzej Pietrasiewicz , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, trivial@kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Bastien, just want to follow up again on this. I've checked again with the Xbox team that the "Share button" is given for the product, the HID usage profile and mapping to RECORD is what Xbox team expects and they want the same mapping for USB. Thanks! Chris On Tue, Mar 2, 2021 at 3:57 PM Chris Ye wrote: > > Hi Bastien, > The "Share button" is a name Microsoft calls it, it actually has > HID descriptor defined in the bluetooth interface, which the HID usage > is: > consumer 0xB2: > 0x05, 0x0C, // Usage Page (Consumer) > 0x0A, 0xB2, 0x00, // Usage (Record) > Microsoft wants the same key code to be generated consistently for USB > and bluetooth. > Thanks! > Chris > > > On Tue, Mar 2, 2021 at 1:50 AM Bastien Nocera wrote: > > > > On Thu, 2021-02-25 at 05:32 +0000, Chris Ye wrote: > > > Add "Share" button input capability and input event mapping for > > > Microsoft Xbox One controller. > > > Fixed Microsoft Xbox One controller share button not working under USB > > > connection. > > > > > > Signed-off-by: Chris Ye > > > --- > > > drivers/input/joystick/xpad.c | 9 ++++++++- > > > 1 file changed, 8 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/input/joystick/xpad.c > > > b/drivers/input/joystick/xpad.c > > > index 9f0d07dcbf06..0c3374091aff 100644 > > > --- a/drivers/input/joystick/xpad.c > > > +++ b/drivers/input/joystick/xpad.c > > > @@ -79,6 +79,7 @@ > > > #define MAP_DPAD_TO_BUTTONS (1 << 0) > > > #define MAP_TRIGGERS_TO_BUTTONS (1 << 1) > > > #define MAP_STICKS_TO_NULL (1 << 2) > > > +#define MAP_SHARE_BUTTON (1 << 3) > > > #define DANCEPAD_MAP_CONFIG (MAP_DPAD_TO_BUTTONS > > > | \ > > > MAP_TRIGGERS_TO_BUTTONS | > > > MAP_STICKS_TO_NULL) > > > > > > @@ -130,6 +131,7 @@ static const struct xpad_device { > > > { 0x045e, 0x02e3, "Microsoft X-Box One Elite pad", 0, > > > XTYPE_XBOXONE }, > > > { 0x045e, 0x02ea, "Microsoft X-Box One S pad", 0, XTYPE_XBOXONE > > > }, > > > { 0x045e, 0x0719, "Xbox 360 Wireless Receiver", > > > MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360W }, > > > + { 0x045e, 0x0b12, "Microsoft X-Box One X pad", > > > MAP_SHARE_BUTTON, XTYPE_XBOXONE }, > > > { 0x046d, 0xc21d, "Logitech Gamepad F310", 0, XTYPE_XBOX360 }, > > > { 0x046d, 0xc21e, "Logitech Gamepad F510", 0, XTYPE_XBOX360 }, > > > { 0x046d, 0xc21f, "Logitech Gamepad F710", 0, XTYPE_XBOX360 }, > > > @@ -862,6 +864,8 @@ static void xpadone_process_packet(struct usb_xpad > > > *xpad, u16 cmd, unsigned char > > > /* menu/view buttons */ > > > input_report_key(dev, BTN_START, data[4] & 0x04); > > > input_report_key(dev, BTN_SELECT, data[4] & 0x08); > > > + if (xpad->mapping & MAP_SHARE_BUTTON) > > > + input_report_key(dev, KEY_RECORD, data[22] & 0x01); > > > > > > /* buttons A,B,X,Y */ > > > input_report_key(dev, BTN_A, data[4] & 0x10); > > > @@ -1669,9 +1673,12 @@ static int xpad_init_input(struct usb_xpad > > > *xpad) > > > > > > /* set up model-specific ones */ > > > if (xpad->xtype == XTYPE_XBOX360 || xpad->xtype == > > > XTYPE_XBOX360W || > > > - xpad->xtype == XTYPE_XBOXONE) { > > > + xpad->xtype == XTYPE_XBOXONE) { > > > for (i = 0; xpad360_btn[i] >= 0; i++) > > > input_set_capability(input_dev, EV_KEY, > > > xpad360_btn[i]); > > > + if (xpad->mapping & MAP_SHARE_BUTTON) { > > > + input_set_capability(input_dev, EV_KEY, > > > KEY_RECORD); > > > > Is there not a better keycode to use than "Record"? Should a "share" > > keycode be added? > > > > I couldn't find a share button in the most recent USB HID Usage Tables: > > https://www.usb.org/document-library/hid-usage-tables-121 > > > > > + } > > > } else { > > > for (i = 0; xpad_btn[i] >= 0; i++) > > > input_set_capability(input_dev, EV_KEY, > > > xpad_btn[i]); > > > >