From patchwork Wed Nov 4 16:03:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Coiby Xu X-Patchwork-Id: 1394191 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=cyBHPeha; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CRBKy4tcfz9sTK for ; Thu, 5 Nov 2020 03:04:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726344AbgKDQEV (ORCPT ); Wed, 4 Nov 2020 11:04:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725889AbgKDQEV (ORCPT ); Wed, 4 Nov 2020 11:04:21 -0500 Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E6A8C0613D3; Wed, 4 Nov 2020 08:04:21 -0800 (PST) Received: by mail-pf1-x443.google.com with SMTP id e7so17606823pfn.12; Wed, 04 Nov 2020 08:04:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rVmMLmH0pv1Or7mop4vVyidMLuWQhjFDYpBrW8qc8sQ=; b=cyBHPehaqbF8zKr0J9zafPYw0XzrrvuVkbZv5zi//iEApBXDxpukvYS8qgDLfFkEmJ unvvpLypu8NqtsUr1SRK9nkwOn7DGcYr5D1rAvAPCfGxPCswBgOuQ7AULi4ZTr+1a6zR BjvM4vCGW032VGrOksSUw6eSBiBRdrNk3pmVdQ4qBsC0n0IOO9HTEWtDnYyd7f00ADox y7m/QiXbm9EpjWFMkCNwNwvqXLZm5iU/QOJKCTkceo+63EOt6LZUOme9Mae4lN907DVb ML7IdDi3SocuYfUr/8KkhMdn/dPszwQxg++in+u/OF9cNbK+vQplD5WIq4/uRNEuFWVf xOQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rVmMLmH0pv1Or7mop4vVyidMLuWQhjFDYpBrW8qc8sQ=; b=HXUe6zzBftciL76LVcNRsYbppPWhno0Wt+OQwRhX57KqwUAOLIxsJ5ZLAiE8jP4/b6 4gMoE4CMJ1czER7ndWBWrVjT4z0pH75AkNxxM1c/uoxWrWmrHzy3pzeMXU/jUJOTV7Hd fi2slb46V136LzXOoVKY3u8uBIS0IuNqK1qa9u6h8EtANLCzbYMXN6k4yAZKuDZ7OEWI GmV/hkuT5vj/WD+NdMtv0CcC3PQe4UE4o47OPJwpuoEKL57w8mVHZjaOf7jM5sLJ3gPE /gzpT3yEVRIKxWfc586jqZEX0+dyMQL+4lwgwj1mnzmA5gMBN0bX/Tsg9k9vqH6GGMTr 994g== X-Gm-Message-State: AOAM533c+7WslAo++2TA7gbpRiSXI8DMMDwutMPgjc4k1NrG0h+0lEq2 w5ypizq6UQaXyGF+IiEt8PD+IJjOPgLnxg== X-Google-Smtp-Source: ABdhPJyeKU07HoPrqhM+PimiBg/r9ROJPJ5WThLXmsO6FsTlR+RzAwHqx+1goUam859rvzpiCXOZ0g== X-Received: by 2002:a17:90a:3f0f:: with SMTP id l15mr5235984pjc.190.1604505860845; Wed, 04 Nov 2020 08:04:20 -0800 (PST) Received: from localhost ([2001:e42:102:1532:160:16:113:140]) by smtp.gmail.com with ESMTPSA id q123sm2962661pfq.56.2020.11.04.08.04.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 08:04:20 -0800 (PST) From: Coiby Xu To: Linus Walleij Cc: Hans de Goede , linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 1/4] pinctrl: amd: fix incorrect way to disable debounce filter Date: Thu, 5 Nov 2020 00:03:41 +0800 Message-Id: <20201104160344.4929-2-coiby.xu@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104160344.4929-1-coiby.xu@gmail.com> References: <20201104160344.4929-1-coiby.xu@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org The correct way to disable debounce filter is to clear bit 5 and 6 of the register. Cc: Hans de Goede Message-ID: Signed-off-by: Coiby Xu --- drivers/pinctrl/pinctrl-amd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.28.0 diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 9a760f5cd7ed..d6b2b4bd337c 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -166,14 +166,14 @@ static int amd_gpio_set_debounce(struct gpio_chip *gc, unsigned offset, pin_reg |= BIT(DB_TMR_OUT_UNIT_OFF); pin_reg |= BIT(DB_TMR_LARGE_OFF); } else { - pin_reg &= ~DB_CNTRl_MASK; + pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF); ret = -EINVAL; } } else { pin_reg &= ~BIT(DB_TMR_OUT_UNIT_OFF); pin_reg &= ~BIT(DB_TMR_LARGE_OFF); pin_reg &= ~DB_TMR_OUT_MASK; - pin_reg &= ~DB_CNTRl_MASK; + pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF); } writel(pin_reg, gpio_dev->base + offset * 4); raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); From patchwork Wed Nov 4 16:03:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Coiby Xu X-Patchwork-Id: 1394192 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=KMXQvMbU; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CRBLL3Q28z9sTK for ; Thu, 5 Nov 2020 03:04:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729081AbgKDQEi (ORCPT ); Wed, 4 Nov 2020 11:04:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725889AbgKDQEi (ORCPT ); Wed, 4 Nov 2020 11:04:38 -0500 Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7DA4BC0613D3; Wed, 4 Nov 2020 08:04:38 -0800 (PST) Received: by mail-pg1-x530.google.com with SMTP id w4so6741896pgg.13; Wed, 04 Nov 2020 08:04:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0n46AHM1ZqA3Gna+bXoHTkiVn6oTFv2wK2HdNOKlaDY=; b=KMXQvMbUzMe63w/lEw/PFvIAzz3ioHzrEwWtIsXmbyzCet2uCJLMdL5jawL/9UrhHp a+Qlba4j4H8Ft581tsThI98dYK49LVHFwUYzthyZ2IIRC2lXGDyLCXW5H0/7oaQHesGl 21L4zms+iYmosPLSOF6YPLAe/cAFv6ru1bUzzYWj/KqsRAQ14oayn2C7DCNvV5vswNg/ DcI4k29TdmdAMxxAEIX6E661yrIV7uagDaWEtDSAcxYFUje6uKkBwigoUv0M+0AhCJ49 cBfW0DYzTf+q21FVPdmF4fQ2TOqOyMPla9GihNa4JdcU+sTJjvxxNnOXlInvgb7RWw+p mbhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0n46AHM1ZqA3Gna+bXoHTkiVn6oTFv2wK2HdNOKlaDY=; b=ZmTJM7mYqRu3agHRE9NalU8+0p7JMmJsgoPIBxssu4Ct9gWziuya2ZWUEeka3b1Jys aOOBoNr5Hq9572Uf3dw9gRykX2wwaWD/RHaF2V73bQ+63GwCMh+Ae/VQqMDics6b6jkv y+tyTShCZAbKIfzrnvo6IscYckw1Io+BR/w6hEK0V1y8cJbarDUsPruUL+PR5KTItPWS IppYkohhNQB6vJXoWZdOtGi/5Ogv7zmkeBBcHJ/xAQ9+y9t/+i+pZs+cGZhqGdUgkzZj j1ADfPMcWE44vGIAoM79LBo9apQ5MG+3PzZfQHSoZw1HO3/W5s3YzVgaWkQCaBhzki49 aOwQ== X-Gm-Message-State: AOAM533Gq5hHMGmD8WG+4jI6OI4r6PcJmmW5l2JDiBmblxfQrm+hrvVT 2A/ZbbdynravvNs21eUOUtU= X-Google-Smtp-Source: ABdhPJysc6a1tQxV37VXh+GMOWkSf2yC9F2sCo61UiWmqoWq7b6dHBpJ5btDczexAwkAgfd6Fouxhg== X-Received: by 2002:a17:90a:9412:: with SMTP id r18mr4615379pjo.152.1604505878097; Wed, 04 Nov 2020 08:04:38 -0800 (PST) Received: from localhost ([2001:e42:102:1532:160:16:113:140]) by smtp.gmail.com with ESMTPSA id 192sm3053368pfz.200.2020.11.04.08.04.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 08:04:37 -0800 (PST) From: Coiby Xu To: Linus Walleij Cc: Andy Shevchenko , Hans de Goede , linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 2/4] pinctrl: amd: use higher precision for 512 RtcClk Date: Thu, 5 Nov 2020 00:03:42 +0800 Message-Id: <20201104160344.4929-3-coiby.xu@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104160344.4929-1-coiby.xu@gmail.com> References: <20201104160344.4929-1-coiby.xu@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org RTC is 32.768kHz thus 512 RtcClk equals to 15625 usec. Reported-by: Andy Shevchenko Suggested-by: Andy Shevchenko Suggested-by: Hans de Goede Message-ID: <2f4706a1-502f-75f0-9596-cc25b4933b6c@redhat.com> Message-ID: Signed-off-by: Coiby Xu --- drivers/pinctrl/pinctrl-amd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index d6b2b4bd337c..4aea3e05e8c6 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -156,7 +156,7 @@ static int amd_gpio_set_debounce(struct gpio_chip *gc, unsigned offset, pin_reg |= BIT(DB_TMR_OUT_UNIT_OFF); pin_reg &= ~BIT(DB_TMR_LARGE_OFF); } else if (debounce < 250000) { - time = debounce / 15600; + time = debounce / 15625; pin_reg |= time & DB_TMR_OUT_MASK; pin_reg &= ~BIT(DB_TMR_OUT_UNIT_OFF); pin_reg |= BIT(DB_TMR_LARGE_OFF); From patchwork Wed Nov 4 16:03:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Coiby Xu X-Patchwork-Id: 1394194 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=kOXHXgXU; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CRBLY23l8z9sRR for ; Thu, 5 Nov 2020 03:04:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729257AbgKDQEx (ORCPT ); Wed, 4 Nov 2020 11:04:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60752 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726564AbgKDQEw (ORCPT ); Wed, 4 Nov 2020 11:04:52 -0500 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 33539C0613D3; Wed, 4 Nov 2020 08:04:51 -0800 (PST) Received: by mail-pl1-x642.google.com with SMTP id b19so10507374pld.0; Wed, 04 Nov 2020 08:04:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=VqjCeWNGiMMMDgfCQ+LZpzOPzsK/BdUKeSAKsbo3Mb0=; b=kOXHXgXUOE75qVZxEVp6wAPzWSMdMEvUyLBaXeQgEhmMQV8Cug/HOHoT5OYKE+y5Yc eRxBc4lH3/+ywJxu8bTL4oRA3fwMPzxFvRcXK29ghaPE2QE2hd+T7KRFpeBTJwYKg9n4 TJs5JoknQ7YGtsTeooODRtRIl2f80aYvdYRzQc651LtOZEVN4Jq/vaEfhBJgj3C7E0ev Grun1t9woax/VhyrFfYBVYZuQ6+HBdygpOy7gjJ24Lq/umfd1tu3DrrtWEoO74lr7004 LWSaVI7KLveYA7R/BZKcem8i9eFDaHuwJZykV9O6svs9x3StQMv63l6REDzbVvwW84D5 F76A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VqjCeWNGiMMMDgfCQ+LZpzOPzsK/BdUKeSAKsbo3Mb0=; b=hjqMnmqEmBtdPaxK4K+wni7VOJHSbyc5Xc62U+oMpndnFYhTuokMHJgTvJrSbt+iQN ymmCOsRPNQ1mDcIrRzuMME8WbGjVakiFu1CWz88fbo9we8VW34wlagokcGNTVPutqMC8 eE+6k1OIrql0VX94SxEupzyo7Ge/bGg2HwSgmUYMmekLDcPoCH6LODUevHRFnmOdfQC1 P/1mdtHXW6wCkquhHOf2KCwk17NnI7aX19qslf0UH3abaTaDA0KBzmDFVKAckBUXCe9j w/qWVN6YEEznDHJyxBXcVu2q6ppKqS6zn0b4NxvBLAd5mmvzln9NfaAqWeIGIGJHyeBh w+tQ== X-Gm-Message-State: AOAM531JdjvCP/8ap/gWkVVmx/sWNG8NMqIp5DLRF1d0VHpKJLWjHzfs PHYAOBURgZ6CWFVpjlkGL7fju9xZExHQ5w== X-Google-Smtp-Source: ABdhPJxJfMufwoYi597zMHexGywQCoo/uR9XuNlZ9x0z/E4ob9E9vKG6XYchH4Ub6zjlvegmr5bb8w== X-Received: by 2002:a17:902:be0f:b029:d6:62a5:3b73 with SMTP id r15-20020a170902be0fb02900d662a53b73mr31244277pls.49.1604505890828; Wed, 04 Nov 2020 08:04:50 -0800 (PST) Received: from localhost ([2001:e42:102:1532:160:16:113:140]) by smtp.gmail.com with ESMTPSA id 12sm2817529pfh.88.2020.11.04.08.04.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 08:04:50 -0800 (PST) From: Coiby Xu To: Linus Walleij Cc: linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 3/4] pinctrl: amd: print debounce filter info in debugfs Date: Thu, 5 Nov 2020 00:03:43 +0800 Message-Id: <20201104160344.4929-4-coiby.xu@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104160344.4929-1-coiby.xu@gmail.com> References: <20201104160344.4929-1-coiby.xu@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Print the status of debounce filter as follows, $ cat /sys/kernel/debug/gpio pin129 interrupt is disabled| interrupt is masked| disable wakeup in S0i3 state| disable wakeup in S3 state| disable wakeup in S4/S5 state| input is high| pull-up is disabled| Pull-down is disabled| output is disabled| debouncing filter disabled| 0x50000 ^^^^^^^^^^^^^^^^^^^^^^^^^^ pin130 interrupt is disabled| interrupt is masked| disable wakeup in S0i3 state| disable wakeup in S3 state| disable wakeup in S4/S5 state| input is high| pull-up is disabled| Pull-down is disabled| output is disabled| debouncing filter (high) enabled| debouncing timeout is 124800 (us)| 0x503c8 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Signed-off-by: Coiby Xu --- drivers/pinctrl/pinctrl-amd.c | 43 +++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) -- 2.28.0 diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 4aea3e05e8c6..524d55546b61 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -197,10 +197,16 @@ static int amd_gpio_set_config(struct gpio_chip *gc, unsigned offset, static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc) { u32 pin_reg; + u32 db_cntrl; unsigned long flags; unsigned int bank, i, pin_num; struct amd_gpio *gpio_dev = gpiochip_get_data(gc); + bool tmr_out_unit; + unsigned int time; + unsigned int unit; + bool tmr_large; + char *level_trig; char *active_level; char *interrupt_enable; @@ -214,6 +220,8 @@ static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc) char *pull_down_enable; char *output_value; char *output_enable; + char debounce_value[40]; + char *debounce_enable; for (bank = 0; bank < gpio_dev->hwbank_num; bank++) { seq_printf(s, "GPIO bank%d\t", bank); @@ -327,13 +335,44 @@ static void amd_gpio_dbg_show(struct seq_file *s, struct gpio_chip *gc) pin_sts = "input is low|"; } + db_cntrl = (DB_CNTRl_MASK << DB_CNTRL_OFF) & pin_reg; + if (db_cntrl) { + tmr_out_unit = pin_reg & BIT(DB_TMR_OUT_UNIT_OFF); + tmr_large = pin_reg & BIT(DB_TMR_LARGE_OFF); + time = pin_reg & DB_TMR_OUT_MASK; + if (tmr_large) { + if (tmr_out_unit) + unit = 62500; + else + unit = 15625; + } else { + if (tmr_out_unit) + unit = 244; + else + unit = 61; + } + if ((DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF) == db_cntrl) + debounce_enable = "debouncing filter (high and low) enabled|"; + else if ((DB_TYPE_PRESERVE_LOW_GLITCH << DB_CNTRL_OFF) == db_cntrl) + debounce_enable = "debouncing filter (low) enabled|"; + else + debounce_enable = "debouncing filter (high) enabled|"; + + snprintf(debounce_value, sizeof(debounce_value), + "debouncing timeout is %u (us)|", time * unit); + } else { + debounce_enable = "debouncing filter disabled|"; + snprintf(debounce_value, sizeof(debounce_value), " "); + } + seq_printf(s, "%s %s %s %s %s %s\n" - " %s %s %s %s %s %s %s 0x%x\n", + " %s %s %s %s %s %s %s %s %s 0x%x\n", level_trig, active_level, interrupt_enable, interrupt_mask, wake_cntrl0, wake_cntrl1, wake_cntrl2, pin_sts, pull_up_sel, pull_up_enable, pull_down_enable, - output_value, output_enable, pin_reg); + output_value, output_enable, + debounce_enable, debounce_value, pin_reg); } } } From patchwork Wed Nov 4 16:03:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Coiby Xu X-Patchwork-Id: 1394195 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=jQLzuRco; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4CRBLq6BFXz9sRR for ; Thu, 5 Nov 2020 03:05:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726796AbgKDQFG (ORCPT ); Wed, 4 Nov 2020 11:05:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725889AbgKDQFF (ORCPT ); Wed, 4 Nov 2020 11:05:05 -0500 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82BD3C0613D3; Wed, 4 Nov 2020 08:05:05 -0800 (PST) Received: by mail-pf1-x442.google.com with SMTP id w65so17656555pfd.3; Wed, 04 Nov 2020 08:05:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=17bQwt1/CHFr+rvttXZHNZmk0KRRHS1qTXGwZaU+GuE=; b=jQLzuRcorFq38M86xnwJ0sx65rplVegCppZ21q5jDIXtZXyvqamY1i/bABFWvr9V45 co2ZzLPxrCcOyrY+ylw69kogOmnVwEezVJ9P8EfUZHZE4uZVKggM05Wa4JAWxV7satZJ ho31I4Zb727Ux61j29PnF0kigy8w7AHRPFVSKsq3cbVdk2vqYpIpE9HgRb/iL5MSyBsy upkx/pJdmftNNUqlsrZLLwLQYYNXrPRooTs02xfYzAbAW5QTv8U1hpj7W+44NxIj67sq Tf+1CRfhY/Wj0nW6w0G4tkPHLjId+GAfY34uE2sXu39Ngd/XRqwqgTy4uqsFGMYvgcfp PtMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=17bQwt1/CHFr+rvttXZHNZmk0KRRHS1qTXGwZaU+GuE=; b=kqqtCLaPi/AELlI0bDIKeNwiBzBsatlMRTUmvYwUpa09dUdTExLvkUv9+STQLBwxgA cz3iquwyoJhO1cJji08cRYIS1W+/wbBGQQZmT7xcCMHQweef8M/c/OXrk9swYqv3xgJ8 8a8iZQzCZF0J6FYcnkKpox4FvG28U+vfC/NMOONN86qbRkSmMQzxhk4xt88YXLIKgyYY MkJjeXVKdcShqh5SArGdVHs/aCUBMfedTw5LA6O0KkoqqH5KHb9hWy9vb+qwz8wOTeM5 Sdb79TEgtlRkmHIbJJmk3lrwvd1cj23tOdjkQO9oQ6fWQnZpH2I6Gld0pco8ZgwlfZ6q uwNw== X-Gm-Message-State: AOAM530UMYtOTsfNZnPWnpe52+vbnpS4GWx5CgK7KZjpYAZYIx2RMxXK 7waZ7zP5RluqoM7mESez1oxp7wLjw9QhYQ== X-Google-Smtp-Source: ABdhPJwke5QuZfBeeGsOFxKGASksaNFwpOIRsjtVfECYs0lUdMk5e9Ad+rWyBotQWI5sM8I77xOYZg== X-Received: by 2002:a17:90b:391:: with SMTP id ga17mr5151361pjb.54.1604505905154; Wed, 04 Nov 2020 08:05:05 -0800 (PST) Received: from localhost ([2001:e42:102:1532:160:16:113:140]) by smtp.gmail.com with ESMTPSA id e9sm2944030pgi.5.2020.11.04.08.05.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Nov 2020 08:05:04 -0800 (PST) From: Coiby Xu To: Linus Walleij Cc: Hans de Goede , Andy Shevchenko , 1887190@bugs.launchpad.net, linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-kernel@vger.kernel.org (open list) Subject: [PATCH 4/4] pinctrl: amd: remove debounce filter setting in irq type setting Date: Thu, 5 Nov 2020 00:03:44 +0800 Message-Id: <20201104160344.4929-5-coiby.xu@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104160344.4929-1-coiby.xu@gmail.com> References: <20201104160344.4929-1-coiby.xu@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Debounce filter setting should be independent from irq type setting because according to the ACPI specs, there are separate arguments for specifying debounce timeout and irq type in GpioIo and GpioInt. This will fix broken touchpads for Lenovo Legion-5 AMD gaming laptops including 15ARH05 (R7000) and R7000P whose BIOS set the debounce timeout to 124.8ms which led to kernel receiving only ~7 HID reports per second. Cc: Hans de Goede Cc: Andy Shevchenko Cc: 1887190@bugs.launchpad.net BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1887190 Message-Id: Signed-off-by: Coiby Xu --- drivers/pinctrl/pinctrl-amd.c | 7 ------- 1 file changed, 7 deletions(-) -- 2.28.0 diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 524d55546b61..5a1d518b563e 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -468,7 +468,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type) pin_reg &= ~BIT(LEVEL_TRIG_OFF); pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF); pin_reg |= ACTIVE_HIGH << ACTIVE_LEVEL_OFF; - pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF; irq_set_handler_locked(d, handle_edge_irq); break; @@ -476,7 +475,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type) pin_reg &= ~BIT(LEVEL_TRIG_OFF); pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF); pin_reg |= ACTIVE_LOW << ACTIVE_LEVEL_OFF; - pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF; irq_set_handler_locked(d, handle_edge_irq); break; @@ -484,7 +482,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type) pin_reg &= ~BIT(LEVEL_TRIG_OFF); pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF); pin_reg |= BOTH_EADGE << ACTIVE_LEVEL_OFF; - pin_reg |= DB_TYPE_REMOVE_GLITCH << DB_CNTRL_OFF; irq_set_handler_locked(d, handle_edge_irq); break; @@ -492,8 +489,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type) pin_reg |= LEVEL_TRIGGER << LEVEL_TRIG_OFF; pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF); pin_reg |= ACTIVE_HIGH << ACTIVE_LEVEL_OFF; - pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF); - pin_reg |= DB_TYPE_PRESERVE_LOW_GLITCH << DB_CNTRL_OFF; irq_set_handler_locked(d, handle_level_irq); break; @@ -501,8 +496,6 @@ static int amd_gpio_irq_set_type(struct irq_data *d, unsigned int type) pin_reg |= LEVEL_TRIGGER << LEVEL_TRIG_OFF; pin_reg &= ~(ACTIVE_LEVEL_MASK << ACTIVE_LEVEL_OFF); pin_reg |= ACTIVE_LOW << ACTIVE_LEVEL_OFF; - pin_reg &= ~(DB_CNTRl_MASK << DB_CNTRL_OFF); - pin_reg |= DB_TYPE_PRESERVE_HIGH_GLITCH << DB_CNTRL_OFF; irq_set_handler_locked(d, handle_level_irq); break;