From patchwork Fri Apr 5 14:09:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Dietrich X-Patchwork-Id: 1920290 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=marvin24@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=MyXdVvjf; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.199.223; helo=ny.mirrors.kernel.org; envelope-from=linux-tegra+bounces-1487-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [147.75.199.223]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VB0jt2hNSz1yZM for ; Sat, 6 Apr 2024 01:09:54 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 11BA91C21D8A for ; Fri, 5 Apr 2024 14:09:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0D57316E89C; Fri, 5 Apr 2024 14:09:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b="MyXdVvjf" X-Original-To: linux-tegra@vger.kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E50F16D9D1; Fri, 5 Apr 2024 14:09:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326187; cv=none; b=usbeYmtL2MKiRGgu9VPMDYF2DYU/Gaok60TX5pSRmLsOBwg/goNaCIxekl7/mplWKDSAlP4UOtn1fgqwCjaGd2eFU+vwzVlr29z/QyLr2hqaNxMZ925P0MRW9blhp3UCh+4GzQ4YMwDCD8UoVVy9wX1W5j/YTg0u/i9q1v2nxuw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326187; c=relaxed/simple; bh=VRYsTaSzJChTvdMBNpXcGLR73AaOKx0qLNeaHSg+mxo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Rw5Ji43BmMWJPrV5U0/HIyOuuKtdvwNlO/lYWoJZBBCpw/C3qhCc+41r+7D8i6cVv+wHKYWQV1Gt36tBG+PMDLGhN6eAAk3//ttvgum3hEnplKHk0Lr6osV0DqwXeOPqq+uEUej3uz1QpPuuHWr+9Z8ezwp6KuPbOfzqy32Bt7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b=MyXdVvjf; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1712326182; x=1712930982; i=marvin24@gmx.de; bh=hjlqTsZmGUCzSPKxKJ/o/kdzxmSXMa6TAMz3dageSyI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=MyXdVvjf8bVmB13wVJ9uk6Mdu/JMkwHe3Dl+1uElwxdU7Z8hOWiZBt2acXP05aAG 2KJ2DxHIc8+MIU8F2zqe2wD5jvPPa9RKOvrkHW7gHKz+Na77z8Di+xxXG76ZXFblN 4GJfXyHZItE7qs+MBLG1PEnFs2o0svcCXIyUbmw1DLsRmI6bskdqSw50t5sUrBZ0d XvU1Et/ESkon51Xy+g6VNEo0sPBV+nc6+akbsF0SaoQoJIiAWakwL8vuDFKH0Fk+5 w79bqQsDLk2OsJFJg9thPSGTEPE0PwmUrvYV19j3p28o7aEJmG0aA9gykqXI1TYAC CVOFm1X3ShBffpc99w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from n5219w05.fritz.box ([109.250.53.83]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MIdiZ-1ryZHM3k6X-00EhZ9; Fri, 05 Apr 2024 16:09:41 +0200 From: Marc Dietrich To: linux-staging@lists.linux.dev Cc: linux-tegra@vger.kernel.org, gregkh@linuxfoundation.org, Marc Dietrich Subject: [PATCH 1/4] staging: nvec: make keyboard init synchronous Date: Fri, 5 Apr 2024 16:09:03 +0200 Message-ID: <20240405140906.77831-2-marvin24@gmx.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240405140906.77831-1-marvin24@gmx.de> References: <20240405140906.77831-1-marvin24@gmx.de> Precedence: bulk X-Mailing-List: linux-tegra@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:cCeOwXOX154Syss1YXnyDnj5YnYIncCvp1uO4m8R7U2XmFFB/CR L/Tznw1vnd32h7+VmuLOgJ02zW+zkVzNqaxi3JIvIYRJnFZLU64ejfr55nc6Fied/9iTers qKIp2A+Qv7nt3IyFxIZ+2VYeWfrGcz3Tb6TT3pPNbtvK9Ogbn+zL2JqhKT98nITY37yfhqr rhjqjbF9Hn1A05mGKb00A== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:a6hALRB5wm4=;fcbwLOwG5bMKnR/Q9f8HS0YnlOe 5O3RHRAVaf40TFFmalR4tXKbCbP2ZAjp9RfwJ3jLkUD5kpvrxdmC9q8A+X/FNklfT3byooDDu kat0NAQNMZbqCWZhfUr8UJZmX+3vXzDLjllLq5OpbUiGmeTPu6nHPcdrt0zZjMGycIQ5HSeu/ sRS7If6PTxt/GnbQ/OIJryNcqAGfRJZOCebH/dUAPJ4nTHJ5pdqZ4gLuWTpwxLvQOgx2cpekT 3GeonRDbAn6PJhXihJ2uBoHojDwxtZueqgj5bQVru3f8Ae0/NkPPBfgWbEnR/fGCntC/2r9b8 y36JsbB9oOrtn5H+6KWAwnG4gfi/Q2sSzJgVMT/u7SpNB7AgMggJYVB/9ju6ImGomy+M8iu9j r4QkWxPVfy2sqzFp09ogU4Ccp516kGu8+Y2MqUXMFrOfKHZY8levB96xce8HhugYiNtTBdBiD CQb243DEsJcMot+qsroNIxAAoaYwHQ3NmoVMb39plZ2UTPfsm+/HBl6sjieHRp6P3maHfl6vM r6iPyQd7viLzSDLzqGGzY5KUqkrPddh4RkCyhPibfCT+wgv/9Vp5mMgitk5LsltTPBzv1KeTP 4ltF3UW7S+7Wb060A5g77xdGute8mWphUGDfr1snDtgZ8SONuGnS6yWdMc+mtFft23wnQR3f4 a9iNFbMjHqqAiIO0E02l88VW/lyfhCxDCOgHLsBMMHiQ4QsOAMQ2gd+9RSUXbfXaKR4mlndA0 1cjQ4kMbZjQJWeOT6easLv7M0qfVDh5zYZo37z4LiDiYcY+XcPpsNSnZaeZ2beat5Ad1fyi/A GfZQIm12tf78ZOemWBuR9cNZqpcn3NrC2HH6N/7hRNsTU= Improve initialization stability by waiting for command completion before sending the next one. Signed-off-by: Marc Dietrich --- drivers/staging/nvec/nvec_kbd.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) -- 2.43.0 diff --git a/drivers/staging/nvec/nvec_kbd.c b/drivers/staging/nvec/nvec_kbd.c index f9a1da952c0a..6b203d28b8a9 100644 --- a/drivers/staging/nvec/nvec_kbd.c +++ b/drivers/staging/nvec/nvec_kbd.c @@ -113,6 +113,7 @@ static int nvec_kbd_probe(struct platform_device *pdev) cnfg_wake[] = { NVEC_KBD, CNFG_WAKE, true, true }, cnfg_wake_key_reporting[] = { NVEC_KBD, CNFG_WAKE_KEY_REPORTING, true }; + struct nvec_msg *msg; j = 0; @@ -148,15 +149,20 @@ static int nvec_kbd_probe(struct platform_device *pdev) nvec_register_notifier(nvec, &keys_dev.notifier, 0); /* Enable keyboard */ - nvec_write_async(nvec, enable_kbd, 2); + nvec_write_sync(nvec, enable_kbd, 2, &msg); + nvec_msg_free(nvec, msg); /* configures wake on special keys */ - nvec_write_async(nvec, cnfg_wake, 4); + nvec_write_sync(nvec, cnfg_wake, 4, &msg); + nvec_msg_free(nvec, msg); + /* enable wake key reporting */ - nvec_write_async(nvec, cnfg_wake_key_reporting, 3); + nvec_write_sync(nvec, cnfg_wake_key_reporting, 3, &msg); + nvec_msg_free(nvec, msg); /* Disable caps lock LED */ - nvec_write_async(nvec, clear_leds, sizeof(clear_leds)); + nvec_write_sync(nvec, clear_leds, sizeof(clear_leds), &msg); + nvec_msg_free(nvec, msg); return 0; } From patchwork Fri Apr 5 14:09:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Dietrich X-Patchwork-Id: 1920288 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=marvin24@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=Os46tNtF; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-tegra+bounces-1484-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VB0jq375Wz1yZQ for ; Sat, 6 Apr 2024 01:09:51 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id E660E2817F4 for ; Fri, 5 Apr 2024 14:09:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 063CB16DEB9; Fri, 5 Apr 2024 14:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b="Os46tNtF" X-Original-To: linux-tegra@vger.kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C085B16DED4; Fri, 5 Apr 2024 14:09:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326186; cv=none; b=D9v82IBMaSZOhRjE/8jUoZdpwA8CAzxZVcz4bKX/YrBQe13snesF7LOuekxBQgfgSiZC0PG78DalU28rTl2EYsWDNP33inropG8miufhZIg4mSOnMtjRIpKmV/YrYwiHe5DSy+WrktwMKtuCoaM3ping/Lt4EcAYRGfxZ4ktktI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326186; c=relaxed/simple; bh=klRhGCJv00m7SX6PlgColGH4Ctrag8zmby9sPw+DpiI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=T31mEc6ZYSEyfsqZYLHDPEn75TOv3F/gCgd9ZtIB04t4j6oyo7gQTNB5qJ0hts04tl7vkDnHpV4Btg4X0WjhzHkrJR0Eh2dug5AuVyIGdx9N2D7uvAHJKPLM1nTjXhpQjSg2iXFeXrTidAMOeJFzO106lzKQ3yzGBENb/e0+pNM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b=Os46tNtF; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1712326182; x=1712930982; i=marvin24@gmx.de; bh=AEEoH2lhqIwgbyeldl1SNRD4UblS7lwhv+VtDFHIR2c=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=Os46tNtF5VrbrK1KC1ar7qyVVdEQghHsi8mxt+68B8RXT52kiv5+xp3Apv1ZrZm2 ZKU6fpi22uUoex6Cb6dhTjM6HI0swrfD9MZMOfeKwbDlxOT4luD8s0yF/cJF/BPOq qOslIkFrNV0DBa+E5/kOHZ+AVvuKy49vX6t8qLvMDhWBXzeaebH0sKqroFZ0w6CgH LxIxTYf4hY9d3EczUHpTqTlfNtrgAKxBwXTTzKm3LeQn25bh5xdJbd+DwCQrZdjmd 8JJYUUuCmBW5n9CjTKiHIGY5IujJEVF3utyUxzLDdqHYRCcZcjA89b3nnV8Xa2jnx tYguSfq5mltdfP/hog== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from n5219w05.fritz.box ([109.250.53.83]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M4axg-1ruO9Y0GW6-001irE; Fri, 05 Apr 2024 16:09:42 +0200 From: Marc Dietrich To: linux-staging@lists.linux.dev Cc: linux-tegra@vger.kernel.org, gregkh@linuxfoundation.org, Marc Dietrich Subject: [PATCH 2/4] staging: nvec: make touchpad init synchronous Date: Fri, 5 Apr 2024 16:09:04 +0200 Message-ID: <20240405140906.77831-3-marvin24@gmx.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240405140906.77831-1-marvin24@gmx.de> References: <20240405140906.77831-1-marvin24@gmx.de> Precedence: bulk X-Mailing-List: linux-tegra@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:qFt4LwzUgpBaibvCCXbMseqyqNxmJldfl0QwXFixFEcXk3vQdbL +HT3ccf1PbjHG7k0NKvQacDZVTEVILQ6VeHo05XnoJz/TDL7psUCzi+KF24g/WtC3QE4mFo zuaEfdSgKTdpqtW/xBjfmX8nhqm+z6OuF8V6orHvegJOn9PAoryLAWgmbApl4XVhaTKAI6H SzDTj3ZvI3LgRNaUk9uxA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:8/BMU2cuHRs=;sX+BVLlCzUb8LESCnvVCljDDr08 krm3gnyWNE6KyIrsbYLoSkYLYAGAgvKr11m4alofZLJuHiy0ToAdCBm3q7XP+d33l3RR8V01S aChlYGyFvL8Ip3+zg6lb6PFPJHJ/f9YGcmNpGG6bipLRD2vfIOOUIOP80wmbAXyr2Arw1AbUu XHoXKjme5sUFU8UG9/jYcJbN9j5lpL7d6nJFRoggdmXGAhzzAcmRv7LIMLh9NY5gkwH5h9DhD Qnj0Ktfboc0TF0bEIyB9VuFaquzaOL70tMlV/WGg/RV9exKwWBAtbppJROJuNvDRq3PQcfL6I gntgC4NAgK/avNS3iWwGtifQGRrRWmhOp7BcoIy30c4YYOtXjszC5gPTUE/eWEASp2XAi8xj5 2Irrwn/NnNkcSqRJ2W9RcmFsORCenFVJZ7fGYm5iB6KgrOTo3OaZbtGtO1XjZmg3BrW09Zc5W Zv7GnOJAsgzoV/oZ4sX8WyPEf6/O5actCWA9CKvhOvgt3aXtqAbAnMsrpDLUmy7FqT4XyCY4r /xL95OwaoTkHcnM6Zb+6QYJvtd8Boc4JAduNU6zTBmquy5PL+rAmHhukHUoebuK21eNM1Prda GvnOeHsWF/FSGTJ/lijo1cU3In2k+egANct0Q70P9LnEZSoXu/eo6tStvu88ndpFvHNYZ6sKK Bk2ziUXWTaIQLEqfn70bF5IyXuiWE3XrJo0uLn4v4u73VBr2j4F8qmNerhsrIoY22brI3kogy jgT11dxX4nSYqtUe+axMyvwIGfCNk4qDGUB07fN8pGGOQQawaTiVl/MBFOzI2mk/ZbX4Mix6h 8J1+/DIAOZ+M/IQlfgchV01HK/fsu9Sc8R+KKcHezd4WY= Improve initialization stability by waiting for command completion before sending the next one. Signed-off-by: Marc Dietrich --- drivers/staging/nvec/nvec_ps2.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) -- 2.43.0 diff --git a/drivers/staging/nvec/nvec_ps2.c b/drivers/staging/nvec/nvec_ps2.c index cb6d71b8dc83..f34016c4a26b 100644 --- a/drivers/staging/nvec/nvec_ps2.c +++ b/drivers/staging/nvec/nvec_ps2.c @@ -60,16 +60,6 @@ static void ps2_stopstreaming(struct serio *ser_dev) nvec_write_async(ps2_dev.nvec, buf, sizeof(buf)); } -static int ps2_sendcommand(struct serio *ser_dev, unsigned char cmd) -{ - unsigned char buf[] = { NVEC_PS2, SEND_COMMAND, ENABLE_MOUSE, 1 }; - - buf[2] = cmd & 0xff; - - dev_dbg(&ser_dev->dev, "Sending ps2 cmd %02x\n", cmd); - return nvec_write_async(ps2_dev.nvec, buf, sizeof(buf)); -} - static int nvec_ps2_notifier(struct notifier_block *nb, unsigned long event_type, void *data) { @@ -98,6 +88,27 @@ static int nvec_ps2_notifier(struct notifier_block *nb, return NOTIFY_DONE; } +static int ps2_sendcommand(struct serio *ser_dev, unsigned char cmd) +{ + unsigned char buf[] = { NVEC_PS2, SEND_COMMAND, ENABLE_MOUSE, 1 }; + struct nvec_msg *msg; + int ret; + + buf[2] = cmd & 0xff; + + dev_dbg(&ser_dev->dev, "Sending ps2 cmd %02x\n", cmd); + + ret = nvec_write_sync(ps2_dev.nvec, buf, sizeof(buf), &msg); + if (ret < 0) + return ret; + + nvec_ps2_notifier(NULL, NVEC_PS2, msg->data); + + nvec_msg_free(ps2_dev.nvec, msg); + + return 0; +} + static int nvec_mouse_probe(struct platform_device *pdev) { struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent); From patchwork Fri Apr 5 14:09:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Dietrich X-Patchwork-Id: 1920291 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=marvin24@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=fNdpq5Ez; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-tegra+bounces-1485-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VB0jt3yp8z1yZQ for ; Sat, 6 Apr 2024 01:09:54 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 5AEA31F21D8B for ; Fri, 5 Apr 2024 14:09:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2580916DED4; Fri, 5 Apr 2024 14:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b="fNdpq5Ez" X-Original-To: linux-tegra@vger.kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC30016DED7; Fri, 5 Apr 2024 14:09:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326186; cv=none; b=JnrjVBPpDYyM2G8snHT9NF/GXLnjIp1cs5iyxv65iBXs1fxeGjUmpMcieFCItPEzXAEOOSoQFYHkmj0EdP6IfcwGbNMPV5o4mthJu8E+LwhaRhz1iHFNYHfevkfgW5e3ZmFODeS05Ls/pSRJhsY4etM0733yRfxphDnH52ECOJs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326186; c=relaxed/simple; bh=qQLca1mk06ctY8h2gaJrKNfWQ3nAnwuygru0fnMDTgA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Wc6Pb8lUQZay1KNVovkOayguUEZOfC0TW++bH9/xD2zzY45teFl6+ueSylcTuwd4sGeabeO1MnWViXC2cX3ssMLbppzkFJAxFrlWYFtvVTsifWgry1YqUJ9UNvrt6JX8JKhZZ2Xo8crm/+6mlsRqVZanQU2yc8SSjbZjeu+xeo8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b=fNdpq5Ez; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1712326182; x=1712930982; i=marvin24@gmx.de; bh=wPjd+zdgyv1iUH1JsuBjUx4h71WzLlRwG28d7jg6uOU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=fNdpq5EzdlU2AdR+EfK33x7SQvXgqPze3p2T+gENxjHEAkaP5FCP6SpalVyPO0jE DmNFErTbVQE6ktOFUxsm2hy22bgozDPRragf1ozGfVUpZAmVQxPv+P59jiK95f/Xd 4S13LQdF3t0VxEANho776KvIMslGpgtKzWh6ognF5XnUhvdeUqrV7ml/MkTWzMCxh ys84UUZwrsYutjZDKkk34wxmW9skGvmf8f/2HGIdrDxGjhb3yuSRhWeBd02EE9sVW AY00snrZ8tTkGKEOole+AUBytws1Fnpw28f1k/jRyUjt82vx1McPeZ686phOw8OQh /vrqhLrTQISPu3hDYA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from n5219w05.fritz.box ([109.250.53.83]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MgNh7-1sRpIf0y6x-00hxUz; Fri, 05 Apr 2024 16:09:42 +0200 From: Marc Dietrich To: linux-staging@lists.linux.dev Cc: linux-tegra@vger.kernel.org, gregkh@linuxfoundation.org, Marc Dietrich Subject: [PATCH 3/4] staging: nvec: make i2c controller register writes robust Date: Fri, 5 Apr 2024 16:09:05 +0200 Message-ID: <20240405140906.77831-4-marvin24@gmx.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240405140906.77831-1-marvin24@gmx.de> References: <20240405140906.77831-1-marvin24@gmx.de> Precedence: bulk X-Mailing-List: linux-tegra@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:ObnDNpcfh74Y00/fiY6iCYuToyt4122/E+3ww0JWg5Xy7nd7PSl CZTkzAAClbmetA5yMCNgYSS8NuHinqOZUWxAv5D5YNf7Ed/Q4N9WkdZ1UCWbGyEe+/7GNjT +OcvspoXoO5wJg+pBRPYB95JZxtMAuxaeyT/nL0lVT270it/w7tDEJ7SdJ8pDnbOLEayoWY eKbG/wa0SDYzlDIFcXEvg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:bv67JWCeKEI=;qNq1YvZ1VuPj+IVRijbLpaiZA4P c3xUOB8jrSJj5GorGmrVLTvpB6a1J+h4tbRByTkWVNYjUCBJuuySLQEeHwVD5aKX9YDs95rKy rdr4TQgGF5PFsBCCRHTPiaLXD24IP9dqPIwZbHr4qNwnkNNd0RMNJNwqPb+2aHyrGmGOaPZjV VGHE1q0qkXI6jzdGkt7ixAN2xTgG5oeBERPTia2KwBkUoa+8PyTKfvd5md1+14iR3O7aljqQM ItMgt/3WHtFjUH1AXRkbZ0q9q+K+L9rmMPcYaj3xM0SWJRLKVxD9KwpdmiW+1AcIR9TWRloE4 wYTiI5+U83OkCGVPmF9rXT+4hEmJeZfM+45bZfZSGrFlDgQlNoPAcsWxYxoGAGeVFYiOMXWmQ 51t2Z2IA+8DwWKYk3TVaPrHcR/2fG7c8x3goJbyfVhsYUek19P47rGq5HHmMilddf7TthoZwi uiP4+fEtpKs4dZbr4TDHXv2LDEb328CaFZnMq+KdytnRpi9glJVUo18RiVPpsy0y9mK6Ni7/k eowzXaokd86ftOfv+ZKiXs1OaGIYId7vWJ8pqXVxeC0uYs6Go2JMPhggPlYfDxJhjYUG8ut9H rEPAmLPIEGTodVu84Yx6MD+8EIRi4Q7laQoYmu2H7SxQihYBLHKYQ+Wo5HsLH7pTjgCuyjjQa qV6Jd13s3jgjX3CMoGJL54ijMwYI2oUESxST5bDhO5a8WDGXS2P8kbk/OgheDj9T0cPnx9ovS 7JF9VImZ3s14g0QpwIyLL39UTUKA9jR5Iv0GPz/Kgi8wpQ6Ks6RhQ4Md9QH2rTYxoBQ4dwURz 7Hvr1vxvc4zjAs9pMvv91PgBRoStzkbUAQAIjfhZ2gWeg= The i2c controller needs to read back the data written to its registers. This way we can avoid the long delay in the interrupt handler. Signed-off-by: Marc Dietrich --- drivers/staging/nvec/nvec.c | 39 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) -- 2.43.0 diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c index 282a664c9176..9914c30b6933 100644 --- a/drivers/staging/nvec/nvec.c +++ b/drivers/staging/nvec/nvec.c @@ -565,6 +565,20 @@ static void nvec_tx_set(struct nvec_chip *nvec) (uint)nvec->tx->size, nvec->tx->data[1]); } +/** + * i2c_writel - savely write to an i2c client controller register + @ val: value to be written + @ reg: register to write to + */ + +static void i2c_writel(u32 val, void *reg) +{ + writel_relaxed(val, reg); + + /* read back register to make sure that register writes completed */ + readl_relaxed(reg); +} + /** * nvec_interrupt - Interrupt handler * @irq: The IRQ @@ -599,7 +613,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev) if ((status & RNW) == 0) { received = readl(nvec->base + I2C_SL_RCVD); if (status & RCVD) - writel(0, nvec->base + I2C_SL_RCVD); + i2c_writel(0, nvec->base + I2C_SL_RCVD); } if (status == (I2C_SL_IRQ | RCVD)) @@ -691,7 +705,7 @@ static irqreturn_t nvec_interrupt(int irq, void *dev) /* Send data if requested, but not on end of transmission */ if ((status & (RNW | END_TRANS)) == RNW) - writel(to_send, nvec->base + I2C_SL_RCVD); + i2c_writel(to_send, nvec->base + I2C_SL_RCVD); /* If we have send the first byte */ if (status == (I2C_SL_IRQ | RNW | RCVD)) @@ -708,15 +722,6 @@ static irqreturn_t nvec_interrupt(int irq, void *dev) status & RCVD ? " RCVD" : "", status & RNW ? " RNW" : ""); - /* - * TODO: replace the udelay with a read back after each writel above - * in order to work around a hardware issue, see i2c-tegra.c - * - * Unfortunately, this change causes an intialisation issue with the - * touchpad, which needs to be fixed first. - */ - udelay(100); - return IRQ_HANDLED; } @@ -732,15 +737,15 @@ static void tegra_init_i2c_slave(struct nvec_chip *nvec) val = I2C_CNFG_NEW_MASTER_SFM | I2C_CNFG_PACKET_MODE_EN | (0x2 << I2C_CNFG_DEBOUNCE_CNT_SHIFT); - writel(val, nvec->base + I2C_CNFG); + i2c_writel(val, nvec->base + I2C_CNFG); clk_set_rate(nvec->i2c_clk, 8 * 80000); - writel(I2C_SL_NEWSL, nvec->base + I2C_SL_CNFG); - writel(0x1E, nvec->base + I2C_SL_DELAY_COUNT); + i2c_writel(I2C_SL_NEWSL, nvec->base + I2C_SL_CNFG); + i2c_writel(0x1E, nvec->base + I2C_SL_DELAY_COUNT); - writel(nvec->i2c_addr >> 1, nvec->base + I2C_SL_ADDR1); - writel(0, nvec->base + I2C_SL_ADDR2); + i2c_writel(nvec->i2c_addr >> 1, nvec->base + I2C_SL_ADDR1); + i2c_writel(0, nvec->base + I2C_SL_ADDR2); enable_irq(nvec->irq); } @@ -749,7 +754,7 @@ static void tegra_init_i2c_slave(struct nvec_chip *nvec) static void nvec_disable_i2c_slave(struct nvec_chip *nvec) { disable_irq(nvec->irq); - writel(I2C_SL_NEWSL | I2C_SL_NACK, nvec->base + I2C_SL_CNFG); + i2c_writel(I2C_SL_NEWSL | I2C_SL_NACK, nvec->base + I2C_SL_CNFG); clk_disable_unprepare(nvec->i2c_clk); } #endif From patchwork Fri Apr 5 14:09:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Dietrich X-Patchwork-Id: 1920289 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=gmx.de header.i=marvin24@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=GIpR725s; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-tegra+bounces-1486-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VB0js0jg9z1yZM for ; Sat, 6 Apr 2024 01:09:53 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 4DD511C21E1E for ; Fri, 5 Apr 2024 14:09:51 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3123D16E89B; Fri, 5 Apr 2024 14:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b="GIpR725s" X-Original-To: linux-tegra@vger.kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 282DF16DEDD; Fri, 5 Apr 2024 14:09:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326187; cv=none; b=N1SW2VwRWb3gWT8Se57HVQSaU7VzDbQRATVfViv+eKLs+DnEtfVDtSnOluPtiL5Tuzq2z4xkSnsPyGMXfcvuh/cjNm7bKee0NGjQbg+bRIiWJekRvrr38hwrh3wEj5tAPB/Z2nnT6GosvnLZDgWAy8wsFPFg5sBCGWsxFV6BMks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712326187; c=relaxed/simple; bh=sFlm1yr8QHBMC+fbR1n42X3cTsM+zkDTCoOOBneR5W8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PNZfE4BKIdYLVsGmOsNCHcRIgmXQ+KaGgsFZRZy8MNkBuzzbSsHenuPYjqixYcvnsrb53UvnqN+0nrOBs6MAA4MRggrl/fsrQrJfL/3FvOsxkVhqpUDbnRcmc6LgT0MLg3KLtX6VKQNVrWuMdUqCoQXByUKRGxFV1OhIqh1DoOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=marvin24@gmx.de header.b=GIpR725s; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1712326182; x=1712930982; i=marvin24@gmx.de; bh=T9RmlrBoBBqGuJ6qhTMJOlWL9+8tVpgg41ahOo+E5Wk=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=GIpR725sXvjW2qejkpb1e6aR+1uRyiey2m6lff8Dft2LT2GKVHojyuUF5cM1/NHz 0VrGcuv3F2E+SqOjCsjXzSmP3upXhcXSuyqoeDvRUy2WbIakD5ynjGeC4CYTzLl2M 5248wGRD1r6aReUAtFCq4pXm9ksRr88F2yiRwZcCUxpPLtC2+huiJ4ohJO1vRT9Ic WWK0asJyyKYn6WvwPWpArYD3YVHf4UawtfQeNLLBlwAuikmTDsjHRCWxVJp7GoLSG JMLNQsqsUcZ8dkkVWD5spca+R0UnC/rdfXNcGOZ1kzwHDsz32htei9GLoD6dIiOm8 wiZuNl+t+cYTA8uRVQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from n5219w05.fritz.box ([109.250.53.83]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MUGi9-1sK4RB1hFT-00RG6D; Fri, 05 Apr 2024 16:09:42 +0200 From: Marc Dietrich To: linux-staging@lists.linux.dev Cc: linux-tegra@vger.kernel.org, gregkh@linuxfoundation.org, Marc Dietrich Subject: [PATCH 4/4] staging: nvec: update TODO Date: Fri, 5 Apr 2024 16:09:06 +0200 Message-ID: <20240405140906.77831-5-marvin24@gmx.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240405140906.77831-1-marvin24@gmx.de> References: <20240405140906.77831-1-marvin24@gmx.de> Precedence: bulk X-Mailing-List: linux-tegra@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:2zpc4AYeiB+sh2YrXpe7LGi5R7lurvdx/jJW6ZMO2VsqXFeI8cW pIB6WLni/2mxKGv5f7UrS3rq8mdzDaxbdcDayhm6VT564dFafrF0elt2YIhFhrhaLOV0GL+ dnbI2X9qaSHZ1l3le4jd3w+JedcK4a1vW4yQ4mYzY8o/8YXkroQNH4x1hcCTO2EMUx04bge e/ATbzUgNJegwT3oF98dQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:6c08LnNjoJU=;PNiSb6HOLBl/DNkcwAHSluDMOGt FQvgcWl00aK1etEQtMMVkNSlm9XnJq+6ORydiXWDfAHBZxk41hzMo2lz74WdExC+8W7fEIde4 x7mxFbnc49GgSDxk0pkvzPBe3InhC47GEmt6IVnfHfRuZjZ+68ifJT68qDiGNvuBDwFE+PbDz ZHztTaypCiw2rTBsV4P8HRbB9j10bWCkMPQWVxYPYLC0bKEmdR6NQYOm0e7Wr9R4bS7NidUP6 29qN2a7WQvLOEdwa/mHwSi8flHmdseuADUEg9WCXZ+PZI4Mg+7FSn8nnFIX2PHVisQqpbF8N/ 5x6124O9IL7WYovs9NIEmJcwI3Vg5zGOVfmgPF6pK6J1LBEBpe6f5zQxmZX+VVYNarI8PkJ/y IzRCjyuww02Qd4JZmQKfxSprw/DEXrKiQD8OGM+meAtWk+mswHjjtsbOMm4qN0ll+sVrM6dof Vbgm2A5PpnDLuU3xYMS3cWMD3GJyJkMUphJvn+pUasiUfmxetoR/ZOQQRTcmH+yctVN4Taefj eEoQoRHV/NtRuIDegZn9qIdyX6RCgvkcEisz5NQxW/dFWz7Tqz8kuY3z0zMZttUV7vJX2PClr VnyOgUPhdRyUdy+EatV7+ivCHaDnmUfdliJnWVL2k4aOJF1XhwMTP6/j/sOEdu8QYuPM1dA3O MasE5BcLT0SCLB9fKJEHIIy+U5ICDB4THBY5I1EtYRqBWodKzut0eCq0mos5fi7OYPRMyqXuz D2b44SMg9cQcfEpcz1Pf/90xRfLcicLK1rQM5E5jSsAN3t2e56lbgj48JYEmek7HJSclXF66K 5qqIdZNRvbdqSKyeI1uObsoABwnSHaXHnKL7IGq5OtOMI= Remove isr delay from the bill. Signed-off-by: Marc Dietrich --- drivers/staging/nvec/TODO | 1 - 1 file changed, 1 deletion(-) -- 2.43.0 diff --git a/drivers/staging/nvec/TODO b/drivers/staging/nvec/TODO index 8afde3ccc960..33f9ebe6d59b 100644 --- a/drivers/staging/nvec/TODO +++ b/drivers/staging/nvec/TODO @@ -1,5 +1,4 @@ ToDo list (incomplete, unordered) - move the driver to the new i2c slave framework - finish suspend/resume support - - fix udelay in the isr - add atomic ops in order to fix shutoff/reboot problems