From patchwork Wed Dec 2 05:16:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Wang X-Patchwork-Id: 11944725 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DA17C64E7C for ; Wed, 2 Dec 2020 05:18:13 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1DA6220872 for ; Wed, 2 Dec 2020 05:18:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1DA6220872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=4M1hcgbvNSTgo3zMcb935+v32XhIKKodTA7Sa/9zZMU=; b=jW1dTej3amFA1ro91Wlimz1OER Blo5gPxB+hdFxbBrw5c4OAjAwE0diE1htKVC13n899yNQzbuEefI2V7W6v9Y6ipX/gxi5MDWODehM SOMEa2VdEpmTuIlsfEhY6BCyhJZq4zHa14mzKoYXsfhXFZNewcBJ+neqtZVOGoLRysXq69Ub9/i8B 93zpMISUFO4uruQApYmVOyASDac9BPXn8hStN8ssWQndloi6pzlQxMnkvjaUHMP5B8eiCG/eJQIED Ie1MU6wbdk6KJS/0asHJQgzDcvxrmMfv7jI30Fh+WTHnpr0GXXpOJZj0USHAwp7xg1IO0TZ/uq/aF /QrMWR4g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kkKVT-0008MW-Ai; Wed, 02 Dec 2020 05:16:47 +0000 Received: from mail-pg1-x543.google.com ([2607:f8b0:4864:20::543]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kkKVP-0008Lg-Vn for linux-arm-kernel@lists.infradead.org; Wed, 02 Dec 2020 05:16:45 +0000 Received: by mail-pg1-x543.google.com with SMTP id k11so384346pgq.2 for ; Tue, 01 Dec 2020 21:16:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=GtGtPbg6S6XKVKh82wVhGzyfNnkNiglHRZS762Gp8h4=; b=yTpjg/5vPTATnfoFO0GOcxyy/yiYUUXJjKNzERHukSH6utLlTGRfyx+S6UzT+cjg/w dMsSOI1zz34tfE41k1LH54QkIrFch4/QcoSX9q8OjO+ZB2v6IYNlm9h/vZWTmSGwdsT9 faB/m05s9Qd7W6/Yj19PbFZ6zjGW7M8YZf/uUg2moJK7CqACQcttFkT+sLX/R31RYMhF 2AKsgEtIVsziuT7sP8wXy2wwhhBYQBCQ+noQ9hamWAQ5DWXuXxg9N/B2EZa4nuJbUQrE oqtAK+AplMNwesTPNluXQQQ4Ql03xXST8AI4a8pGLOWaS637KyHNBmddECETWDuxIrnO 74Ww== 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:mime-version :content-transfer-encoding; bh=GtGtPbg6S6XKVKh82wVhGzyfNnkNiglHRZS762Gp8h4=; b=pD40USX6FJEVyKdCB/W5lSDMR5r/VG2HaWCFG+dvdpzWPQW79wtTbWEjz6uUqnh95A vYImk0bxAMHebj7Wb0GLVQgdbTF/CU+anwpjDfY37wPwe/h2wzp2CVaFdqe6gGO2Qgim zkU+2/IE3SfMjcg1DeUGBruGOKW0qWlaaZ1czicuWUzMUtzRAU3jWMSwQ/vSxmdXj/ak LKaS1LpbymrzLDoowv+USfV/CyZRQqwCHL0+f3zqnkF0nqFO9QI0OESy67osvvVALbnK 0gDK8LzLzXn+Cw32hgF3VemnmTHxwqZ8NQgD9r3nnjNyXB81hel3qvzHme5PPTbVBb7S nCaw== X-Gm-Message-State: AOAM533ErdqxOmTmlpxYnvNAfUd7T4hD+ahJFW2TWOyj8F0x27pb0NxW gj/A4MHINip2aulYhTzJoUV61g== X-Google-Smtp-Source: ABdhPJyH6g/iSiIYweoziem2Du7RUZljIo6zCrG1kBxujGXUB4xR1hWqzfOw+ZznapK4sq/NdHd3bw== X-Received: by 2002:a63:d45:: with SMTP id 5mr1154561pgn.0.1606886198037; Tue, 01 Dec 2020 21:16:38 -0800 (PST) Received: from localhost ([61.120.150.72]) by smtp.gmail.com with ESMTPSA id d4sm457523pjz.28.2020.12.01.21.16.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Dec 2020 21:16:37 -0800 (PST) From: John Wang To: xuxiaohan@bytedance.com, yulei.sh@bytedance.com Subject: [PATCH 1/2] misc: Add clock control logic into Aspeed LPC SNOOP driver Date: Wed, 2 Dec 2020 13:16:33 +0800 Message-Id: <20201202051634.490-1-wangzhiqiang.bj@bytedance.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201202_001644_143070_FDEEA193 X-CRM114-Status: GOOD ( 18.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "moderated list:ARM/ASPEED MACHINE SUPPORT" , Andrew Jeffery , Vernon Mauery , open list , Jae Hyun Yoo , Joel Stanley , "moderated list:ARM/ASPEED MACHINE SUPPORT" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Jae Hyun Yoo If LPC SNOOP driver is registered ahead of lpc-ctrl module, LPC SNOOP block will be enabled without heart beating of LCLK until lpc-ctrl enables the LCLK. This issue causes improper handling on host interrupts when the host sends interrupt in that time frame. Then kernel eventually forcibly disables the interrupt with dumping stack and printing a 'nobody cared this irq' message out. To prevent this issue, all LPC sub-nodes should enable LCLK individually so this patch adds clock control logic into the LPC SNOOP driver. Signed-off-by: Jae Hyun Yoo Signed-off-by: Vernon Mauery Signed-off-by: John Wang Reviewed-by: Joel Stanley --- drivers/soc/aspeed/aspeed-lpc-snoop.c | 30 ++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/soc/aspeed/aspeed-lpc-snoop.c b/drivers/soc/aspeed/aspeed-lpc-snoop.c index 682ba0eb4eba..20acac6342ef 100644 --- a/drivers/soc/aspeed/aspeed-lpc-snoop.c +++ b/drivers/soc/aspeed/aspeed-lpc-snoop.c @@ -11,6 +11,7 @@ */ #include +#include #include #include #include @@ -67,6 +68,7 @@ struct aspeed_lpc_snoop_channel { struct aspeed_lpc_snoop { struct regmap *regmap; int irq; + struct clk *clk; struct aspeed_lpc_snoop_channel chan[NUM_SNOOP_CHANNELS]; }; @@ -282,22 +284,42 @@ static int aspeed_lpc_snoop_probe(struct platform_device *pdev) return -ENODEV; } + lpc_snoop->clk = devm_clk_get(dev, NULL); + if (IS_ERR(lpc_snoop->clk)) { + rc = PTR_ERR(lpc_snoop->clk); + if (rc != -EPROBE_DEFER) + dev_err(dev, "couldn't get clock\n"); + return rc; + } + rc = clk_prepare_enable(lpc_snoop->clk); + if (rc) { + dev_err(dev, "couldn't enable clock\n"); + return rc; + } + rc = aspeed_lpc_snoop_config_irq(lpc_snoop, pdev); if (rc) - return rc; + goto err; rc = aspeed_lpc_enable_snoop(lpc_snoop, dev, 0, port); if (rc) - return rc; + goto err; /* Configuration of 2nd snoop channel port is optional */ if (of_property_read_u32_index(dev->of_node, "snoop-ports", 1, &port) == 0) { rc = aspeed_lpc_enable_snoop(lpc_snoop, dev, 1, port); - if (rc) + if (rc) { aspeed_lpc_disable_snoop(lpc_snoop, 0); + goto err; + } } + return 0; + +err: + clk_disable_unprepare(lpc_snoop->clk); + return rc; } @@ -309,6 +331,8 @@ static int aspeed_lpc_snoop_remove(struct platform_device *pdev) aspeed_lpc_disable_snoop(lpc_snoop, 0); aspeed_lpc_disable_snoop(lpc_snoop, 1); + clk_disable_unprepare(lpc_snoop->clk); + return 0; } From patchwork Wed Dec 2 05:16:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Wang X-Patchwork-Id: 11944723 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 51569C64E8A for ; Wed, 2 Dec 2020 05:18:11 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E726320872 for ; Wed, 2 Dec 2020 05:18:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E726320872 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=n54PXFQTNVSCGRxXJJzCzIBbGJBQbK02kfgEBL1vy4g=; b=p/NuM8K9B5x/8xJyTRYJG9jY6 nM/6z0zO9t63uWkKoAnvkYqv3VsKXq72yG6qNiog/4QCGncvXtlcsXqxSobSLhbMWTokdrJNUnACz RIBGiL0b7Kw5VqLKxYh5qXIsZgBf4i2Pr82dh8RxNe0evEm/4W8EyTXbu3TL4L3UgVdHFxcGBV9hS KJFIw+0mY8dBZMdsuwv1laRP+jxWxOJs9bzSHDbAJTzDXqOWndaBjDuqWisHEl3p2vY9a1p4sHqcd UC5BXNKz6eHQ+BDrKhwDhp77VFbJMStKdg8L6rYxqt4EY3wwgFzMHg4kzrhIXvDh2eKYGSME0E6QD l8nw4Hdwg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kkKVU-0008Mh-LT; Wed, 02 Dec 2020 05:16:48 +0000 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kkKVR-0008Lo-1v for linux-arm-kernel@lists.infradead.org; Wed, 02 Dec 2020 05:16:45 +0000 Received: by mail-pl1-x636.google.com with SMTP id bj5so482210plb.4 for ; Tue, 01 Dec 2020 21:16:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mMf+qfonJLf7vMl0DnttrDvVmDvqtmkJr/AXdH4GU4s=; b=hrM1U8VbENPacYn1U4AEgrTpRajM5sT3t43YDQBM/Mhiz3nSNes8G8wM0MLqhGSgiI bQgsY/YW273VGAxqtuGompMiSNz8t6rLxXFP6i7L0LljLK9T/rY3hJgncGo/Zx4Q40Na OwKm/I1rn6L7NplNlomaG5C13Shg+GMrDrAH95FxeVv57cBjGP/SFp4y0JOrmAfYzYcw 7VCDemlO7NH6HG6TIeLtqK70mKT7u1N0m5ig+xdvIrpTxG295LrLqnqyJVP4t0aOnXfz jpYC80w2pJvJtJhstNbv603DQuYlbnLUj7oPigSIb3arvi0kymjxfBzo1YEJ1tmGyCtN 7X3A== 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=mMf+qfonJLf7vMl0DnttrDvVmDvqtmkJr/AXdH4GU4s=; b=nanOo+KgWJoyJjBlO8SFHthjVHmpyR+UzA7eYTYkSipV9jvn2/iodQfArC/F6VFez7 6qah4LL+lOj/9doV9Vv2aAkgVQ94EvRg1q6+HbSROPXZdfVZcuu/7CiVZErWr15IOl89 zFPAteotlgDvbKTuo2fg5m4DjoQezz4EUB1JkA2qvT1h1OGwJZbFZIoJdpITGrG/XCbZ VGeq7bb5R6mXWqgXOs5CXyrSF0+W+OHBd3/zKuowPy0bY2dEBnjMpJDmjy+r5Lgr8FMZ yUnzFJ/EFdHSSHiP7oE3gWv05xqwSCBRb95uUwRWUYiTnDJPFUM8QchqEiewneO1+B4X SPGQ== X-Gm-Message-State: AOAM531PHlm6d36PfRQda26A7F0uLoyFYJMx/aN+t+IS5Q2kiARX7YU4 e7lKS5zt1QZXPoHvGZH+9J3daw== X-Google-Smtp-Source: ABdhPJxuNTwTCv2D3U6L3rbi3cQrrCSLTTNwlSwTJWS+yvZfGvkhW5AL6ItOg8ULKPp2ctl9IZCOgQ== X-Received: by 2002:a17:902:469:b029:da:17d0:e755 with SMTP id 96-20020a1709020469b02900da17d0e755mr1149263ple.53.1606886202007; Tue, 01 Dec 2020 21:16:42 -0800 (PST) Received: from localhost ([61.120.150.72]) by smtp.gmail.com with ESMTPSA id c20sm582116pgc.25.2020.12.01.21.16.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Dec 2020 21:16:41 -0800 (PST) From: John Wang To: xuxiaohan@bytedance.com, yulei.sh@bytedance.com Subject: [PATCH 2/2] ARM: dts: aspeed: Add LCLK to lpc-snoop Date: Wed, 2 Dec 2020 13:16:34 +0800 Message-Id: <20201202051634.490-2-wangzhiqiang.bj@bytedance.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201202051634.490-1-wangzhiqiang.bj@bytedance.com> References: <20201202051634.490-1-wangzhiqiang.bj@bytedance.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201202_001645_125676_E5F48151 X-CRM114-Status: GOOD ( 12.91 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "moderated list:ARM/ASPEED MACHINE SUPPORT" , Andrew Jeffery , open list , Rob Herring , Joel Stanley , "moderated list:ARM/ASPEED MACHINE SUPPORT" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Signed-off-by: John Wang Reviewed-by: Joel Stanley --- arch/arm/boot/dts/aspeed-g4.dtsi | 1 + arch/arm/boot/dts/aspeed-g5.dtsi | 1 + arch/arm/boot/dts/aspeed-g6.dtsi | 1 + 3 files changed, 3 insertions(+) diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi index f606fc01ff13..2364b660f2e4 100644 --- a/arch/arm/boot/dts/aspeed-g4.dtsi +++ b/arch/arm/boot/dts/aspeed-g4.dtsi @@ -370,6 +370,7 @@ lpc_snoop: lpc-snoop@10 { compatible = "aspeed,ast2400-lpc-snoop"; reg = <0x10 0x8>; interrupts = <8>; + clocks = <&syscon ASPEED_CLK_GATE_LCLK>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi index 19288495f41a..30bbf7452b90 100644 --- a/arch/arm/boot/dts/aspeed-g5.dtsi +++ b/arch/arm/boot/dts/aspeed-g5.dtsi @@ -496,6 +496,7 @@ lpc_snoop: lpc-snoop@10 { compatible = "aspeed,ast2500-lpc-snoop"; reg = <0x10 0x8>; interrupts = <8>; + clocks = <&syscon ASPEED_CLK_GATE_LCLK>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed-g6.dtsi index 97ca743363d7..4b1013870fb1 100644 --- a/arch/arm/boot/dts/aspeed-g6.dtsi +++ b/arch/arm/boot/dts/aspeed-g6.dtsi @@ -520,6 +520,7 @@ lpc_snoop: lpc-snoop@0 { compatible = "aspeed,ast2600-lpc-snoop"; reg = <0x0 0x80>; interrupts = ; + clocks = <&syscon ASPEED_CLK_GATE_LCLK>; status = "disabled"; };