Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp983154iob; Fri, 13 May 2022 18:32:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw1fufh9B3ddy0H0sKkYlxVRO4Et4DDNQmNphgdkG7aVOFtxj8lO5WIRdChuYWfvQ3z6JSq X-Received: by 2002:a1c:5410:0:b0:394:1976:76e4 with SMTP id i16-20020a1c5410000000b00394197676e4mr16818868wmb.11.1652491955494; Fri, 13 May 2022 18:32:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652491955; cv=none; d=google.com; s=arc-20160816; b=xZq1GL/coyNRxnT+qb4K8sq/KTOs5gB9UzHfChdhG+OvJvc0CzGb8xYBFN01TxQ4na xbry6lNGycoa3omDTTA5dcIMFsTWjgyff39676KjrBEubegBewdrFllLhCtk44aAS7+k zdMlWW7d/HTwRcNViLSv2o9WhpxFeeo8+JleeGpHZtSmuM92/TpAn4/RiwSmY+9HP3Qo 1fiAg/NLiVP7p8cJpvhUAcWLCZ2FBBRu25FXqWW1r2W0BWfdaW8impS4ka3BCzS8jq2V VNWHfpIFCM9q0QNJfMqAADdg308Gy7ONPuEr/6WOdnGYwcmYrBh3hZWqPEvrx0pQKLAs paNQ== 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=pW4fIO1zU8hH5UZQ21Ux1LqBB1/44eCl6uSeUwAZ5aM=; b=PHGHRQcQbHwO7YIK0kgkDEsBsg+bYXXHJfOzXYN95/OiLpBZrMNkYr4tY8x9rpWQec mu32O9mdArCVpyoPXWIq67aVB9O5cM/xQLxHKxdRXw9hseDuW2Gx1hM3SGxE3YmURox2 HRo5JWWkg02Hpm5cij97JxW9us/8QyQIaYqkCP+gXOXMeJDLj4c4Rs+YbqfXBnrKFRMN HJ1agz/StkYcxy9wz/syL7hoa5vV9PUBREqxjSlJyiTmi+hZ7kTmg0fn14zUq2eq6uvR 7MYz2phQme/wtJ5Yz6FpCuvf+2vsFyUBxXZzjwigb9UTFzdFHR1t9GPG56VGM5LpKOyU 424w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ffKMHRTs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id i8-20020a05600c480800b003940cce0694si3232451wmo.147.2022.05.13.18.32.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 May 2022 18:32:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=ffKMHRTs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C643E3FF635; Fri, 13 May 2022 17:00:02 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1383966AbiEMT6W (ORCPT + 99 others); Fri, 13 May 2022 15:58:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54068 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346904AbiEMT6V (ORCPT ); Fri, 13 May 2022 15:58:21 -0400 Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com [IPv6:2607:f8b0:4864:20::112b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23093F136B; Fri, 13 May 2022 12:58:20 -0700 (PDT) Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-2f16645872fso101088917b3.4; Fri, 13 May 2022 12:58:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pW4fIO1zU8hH5UZQ21Ux1LqBB1/44eCl6uSeUwAZ5aM=; b=ffKMHRTsZAboB6znpNNJk4ZBl4MZCa/2C4jy3u9at1auqT2Nmm6gNWVfsrLZtTjLUM 4yVOBJ2Je5sjAFPGP3k8ardglwbqhLXAFhrKR93rOQiORqDG5NMvFvL6GgXNkK5StyNb deBmsqJpn5Hj8FeSqbIvf+4YGvtHUe1Do1OYqCyVB1BDkG8laFMHl2DeQeq+r+ivfn5d MVyK1XJthRCKigc+YZtjq8+MlQ3e4zAAmPDPp9saM9hDgEeynjuUp7hzgpdsQIp4+IbT 1u6g9uP8y7qB4JxDRKeT+dGyv8Hl1Koa68marZqIofFV1ozUD/i2KNnrnvG9P90RVlJD bjzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pW4fIO1zU8hH5UZQ21Ux1LqBB1/44eCl6uSeUwAZ5aM=; b=g4j0EpGut1d9VAopyvwKio+gtOCV2nmaEwLU0s0Ib3vOhtpkvGWYaYQWlxs3nlGjhA BW+241Pm+jbOrF5PVtvRTCi0E8debFFBsRcsxfhclKWnlJO/MC0evYpzYSdjeZMcrj9J 62P8MBy9Oz2udW8iIYgyv8OYf9E1juvGqmOWaCvdRKDWdtgETC1letqkdxyi8pbEV/Cq tiOxqvuhiKTEbI7+9JGZclkqJ7H0bs9uwddB1XPhSVz8wt89pnvh92KxTziDTy9QwOMc aoBYMj5y+kUtvoffWzSSGFlZVMnn0xwO54o8ZTSrfELeKAi+1bFm3Si7QeS5xxTkhi5N 1W5Q== X-Gm-Message-State: AOAM530rJPhbzufDBE118Mb7GnQAgHmUrNnIc6QC70QGlxxnFu6Lticr fxMjh1Qrlhak3npg14wazdSuTv1SLlyBUImIQPM= X-Received: by 2002:a81:70c3:0:b0:2fe:c68c:aa1d with SMTP id l186-20020a8170c3000000b002fec68caa1dmr2409691ywc.431.1652471899340; Fri, 13 May 2022 12:58:19 -0700 (PDT) MIME-Version: 1.0 References: <20220512001500.16739-1-fletcher0max@gmail.com> In-Reply-To: <20220512001500.16739-1-fletcher0max@gmail.com> From: Roderick Colenbrander Date: Fri, 13 May 2022 12:58:08 -0700 Message-ID: Subject: Re: [PATCH 1/2] HID: nintendo: fix face button mappings To: Max Fletcher Cc: "Daniel J. Ogorchock" , Jiri Kosina , Benjamin Tissoires , linux-input , lkml Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Max, Thanks for your patch, however I must say the patch is not correct for 2 reasons. Over the years different controllers have different layouts. The standard which this driver (as well as others such as hid-sony/hid-playstation) follow is the Linux gamepad standard (see Documentation/input/gamepad.rst). It stays away of the debate what is A/B/X/Y. It talks about North/west/.., (yes they are macros which map to A/B/X/Y). In case of the Switch it does mean things are flipped, but it was not meant to represent an Xbox controller. (Technically one could argue that the Xbox controller should be flipped as it was the SNES controller back in the days which introduced X/Y and the Switch is still consistent with that.) Second, even if the patch was right it would be tricky to merge. The problem is that a changed mapping breaks user spaces and in general can't do this unless there is a really good reason. It just would break existing applications and libraries (often e.g. SDL) Thanks, Roderick On Wed, May 11, 2022 at 8:12 PM Max Fletcher wrote: > > Previously, A and B would match the Xbox layout, but X and Y were incorrectly swapped. This corrects it so that X and Y match the Xbox layout. > > Signed-off-by: Max Fletcher > --- > drivers/hid/hid-nintendo.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c > index 2204de889739..7735971ede3f 100644 > --- a/drivers/hid/hid-nintendo.c > +++ b/drivers/hid/hid-nintendo.c > @@ -1351,10 +1351,10 @@ static void joycon_parse_report(struct joycon_ctlr *ctlr, > input_report_key(dev, BTN_START, btns & JC_BTN_PLUS); > input_report_key(dev, BTN_THUMBR, btns & JC_BTN_RSTICK); > input_report_key(dev, BTN_MODE, btns & JC_BTN_HOME); > - input_report_key(dev, BTN_WEST, btns & JC_BTN_Y); > - input_report_key(dev, BTN_NORTH, btns & JC_BTN_X); > - input_report_key(dev, BTN_EAST, btns & JC_BTN_A); > - input_report_key(dev, BTN_SOUTH, btns & JC_BTN_B); > + input_report_key(dev, BTN_X, btns & JC_BTN_Y); > + input_report_key(dev, BTN_Y, btns & JC_BTN_X); > + input_report_key(dev, BTN_B, btns & JC_BTN_A); > + input_report_key(dev, BTN_A, btns & JC_BTN_B); > } > > input_sync(dev); > @@ -1578,7 +1578,7 @@ static const unsigned int joycon_button_inputs_l[] = { > > static const unsigned int joycon_button_inputs_r[] = { > BTN_START, BTN_MODE, BTN_THUMBR, > - BTN_SOUTH, BTN_EAST, BTN_NORTH, BTN_WEST, > + BTN_A, BTN_B, BTN_Y, BTN_X, > BTN_TR, BTN_TR2, > 0 /* 0 signals end of array */ > }; > -- > 2.35.3 >