Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5407834pxb; Sun, 13 Feb 2022 20:29:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJxN8/7mSyKV339GQPoTSeQJ7DhtFVha9DOXUV6+oqg3Hn14aKbjZd74AgIIpiWXCB1ceRF6 X-Received: by 2002:a17:907:60cf:: with SMTP id hv15mr9629312ejc.488.1644812942906; Sun, 13 Feb 2022 20:29:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644812942; cv=none; d=google.com; s=arc-20160816; b=XsNnXNDlM9GGFZvQdmrO53GrnneYvfzAHhJLKLpRIhz9l9TCxOHMx4akAQW1iGJRpe ngjDGPlplLnoQfH3BVa7rYW/hSIksaT9pOy73MDieWGZSZo5RtgzIQDI8n4sMaXy+Rjl WBxpssIHcn92U95dJk3VF6tYDBsiGgD0vdqn6QSBYgWGlqdev+V1Jt5bMtjHpPWhnpA6 fNWxxwWM2r5P4RuqqEp3T9Qk6MFS8dY9ege78ednBQv3b3pv7IEk7P/+lvyKZiKN40kr tW6V9TEslPynaqoU85wNnFO8FMHuPwGRPj7qE+2y9fMOc5RkMXE0qhtPFtRTv98SLk8L jm9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8QH7eFL+O8i1yJr2/1WnFIiNEWe6TK3F8Dp4LQSaW7s=; b=U6yMlQB16eQb37yty8ndN/MjuloanRtgPGTp7SCK5ODnj1TslwCnHuNDyEJrI5nWrn MX51NZspUPP4sZJMRmRABeDbSCDfTX0ob+v/Bki9MqBZdmCKwkA1QfgOyEgH0cD4Tyvi 8UMVY0p5zvnHFh1rCP/m3P9WcWp9gQrnOYz2dTRpQvBtWh3kBqpj880WsNg5m35mBD9G zk2RynG0QZsC3RHWhHf4WVa1o/RyrH/5E/C9Pnloa+hSqaqcvtcIw7Odbdk47/szbm7u faadnKCQqei055dAGVKR67dN+88Isre/E10VNpd5C2je+Hs3zxoI/P84t2X9LNQla6rJ S2Sw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sh10si1233709ejc.385.2022.02.13.20.28.40; Sun, 13 Feb 2022 20:29:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238501AbiBMV4n (ORCPT + 99 others); Sun, 13 Feb 2022 16:56:43 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:57798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238448AbiBMV4k (ORCPT ); Sun, 13 Feb 2022 16:56:40 -0500 Received: from zeus.flokli.de (mail.zeus.flokli.de [88.198.15.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D5F454196; Sun, 13 Feb 2022 13:56:31 -0800 (PST) Received: from localhost (ip-178-200-100-055.um45.pools.vodafone-ip.de [178.200.100.55]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: flokli@flokli.de) by zeus.flokli.de (Postfix) with ESMTPSA id 984D61299FBD; Sun, 13 Feb 2022 21:49:58 +0000 (UTC) From: Florian Klink To: Jiri Kosina , Benjamin Tissoires Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, ValdikSS , Florian Klink Subject: [PATCH v4 2/3] HID: lenovo: Sync Fn-lock state on button press for Compact and TrackPoint II keyboards Date: Sun, 13 Feb 2022 22:49:23 +0100 Message-Id: <20220213214924.32407-3-flokli@flokli.de> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220213214924.32407-1-flokli@flokli.de> References: <20220213214924.32407-1-flokli@flokli.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,KHOP_HELO_FCRDNS, SPF_HELO_NONE,SPF_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 From: ValdikSS When Fn-Esc is pressed on the keyboard, it emits the scancode which could be used to sync the fn_lock sysfs state. Previously fn_lock only allowed to set new Fn-lock state and did not keep the value in sync upon Fn-Esc press, which is now fixed. Signed-off-by: Florian Klink --- drivers/hid/hid-lenovo.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c index a612ae7dfbfc..e9466ae8a9cb 100644 --- a/drivers/hid/hid-lenovo.c +++ b/drivers/hid/hid-lenovo.c @@ -690,6 +690,15 @@ static int lenovo_event_cptkbd(struct hid_device *hdev, return 1; } + if (usage->type == EV_KEY && usage->code == KEY_FN_ESC && value == 1) { + /* + * The user has toggled the Fn-lock state. Toggle our own + * cached value of it and sync our value to the keyboard to + * ensure things are in sync (the syncing should be a no-op). + */ + cptkbd_data->fn_lock = !cptkbd_data->fn_lock; + } + return 0; } -- 2.35.1