From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A8F65C4332F for ; Tue, 8 Nov 2022 17:37:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=1cHgullutkrR2zBM+UCAmJYXiH G97kXBRCe+x1vDaAtvWZxPSEF5WdfgT3ME+9KVb5eGThyfGFnreM/qNw9rqUowqcqwmxenB4BSkUT iNHFEJfjoE3ob3s9YRtqyGhkbp7GVd6zfu/Q4Fl2Wqr577jqcUmQzuO9TiyY3i3TP3snpPk6ampGh CJ7gAGyxpfUESi5w/5bk8OF80+1p1aJYCCm1IgeHQ+7h+PXdIYDoK2hOULgpOHVf6NkQpMTiLB8Ay huSSQqnM+SKLxDcBu4FR99PN+enaBE7V3a/CCA6nwWNVJqCD/UzTVWGam0he2p8e2O6hemfU/5JiZ 4rdpD/4A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1osSXa-0073FR-6G; Tue, 08 Nov 2022 17:37:38 +0000 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1osSXN-0073C9-Pc; Tue, 08 Nov 2022 17:37:27 +0000 Received: by mail-wm1-x32f.google.com with SMTP id v7so9294765wmn.0; Tue, 08 Nov 2022 09:37:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=YT8bDUSuYGlX0nSv0Gmye3eRq5y7UbhWrZlTinDOm2D4cvZMf0uBi7FXOD/RD83xQD ftEA8Oy9SJ2khn9xHaudJCfy0C5C8+J1XVTe/TZJqrUQboYjz9T+6Auu5BcqxQMiJCk9 UdOU0NgLAak/vV5X9oK8gPFcxQyRDiTPOq0WF1zieFiXoksfSP6SM7MuznRRMKFDeSTs vr4uFMd5goEZAPH8EnCKiqptmLyIk0JdgcQYHSmHAS5ZLUJ+8z37Ot2CbG4HKOMt1Rje 80KqeqTvSDNFxAUoK0/7qt428CD+a2206fRXAs2pSszQXryGl280+QJPRi/VyEnH3o53 /AXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=Jk+gHvF66pnaTfNxzMbNJ3GL3FEIZAOXzJikatWgBH5FbKUjDQnDRS7MgXisA3MDAZ dG9hyExmWSbnRzQdjUZTZ2dWv0dH4f+9ewODmwqw6LERyROkeVHtDoho4lHcTvStqCT7 7qPuptK24l2vfJ6VICX2FuViNrkbS5Z7719l65tKvNl+vBnyq+HPqkfhYExZ+hLysbyT j/LIZwBgaS1quWbtb0q9ta4iXIWYxJq317PGS90vTtqa+1Ja5Mwp8kvqxiUdH7j0uaNM Lj0j82j9AVKAUSijtmCnqYcsviaOxy1f7m8PM7gSPFkqlOuq2Vdvh2jT9VkDn7EJXwON ebLg== X-Gm-Message-State: ACrzQf2Zgsry7srOdW4WlX9TfuLlgKbM8X0lssbzkJED1BB4v5u4IoXu 5fUu8pTUi+vSal9vBdgC+I0= X-Google-Smtp-Source: AMsMyM4ZRxL1bJwjZOpkyyyJeMjJb4TNMK6d9bQf6wA8GOKPj1utSTr6/nojgUJfPKlu3A5LPUB2tA== X-Received: by 2002:a05:600c:4ecf:b0:3cf:8762:1a67 with SMTP id g15-20020a05600c4ecf00b003cf87621a67mr24970726wmq.41.1667929042011; Tue, 08 Nov 2022 09:37:22 -0800 (PST) Received: from [192.168.0.25] ([37.222.251.204]) by smtp.gmail.com with ESMTPSA id v18-20020a5d4b12000000b002365f326037sm13165230wrq.63.2022.11.08.09.37.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Nov 2022 09:37:20 -0800 (PST) Message-ID: <58d55016-afc7-e560-32cf-8228794b5752@gmail.com> Date: Tue, 8 Nov 2022 18:37:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH v28 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Content-Language: en-US To: "Nancy.Lin" , Rob Herring , Chun-Kuang Hu , Philipp Zabel , wim@linux-watchdog.org, AngeloGioacchino Del Regno , linux@roeck-us.net, nfraprado@collabora.com Cc: David Airlie , Daniel Vetter , Nathan Chancellor , Nick Desaulniers , "jason-jh . lin" , Yongqiang Niu , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, dri-devel@lists.freedesktop.org, llvm@lists.linux.dev, singo.chang@mediatek.com, Project_Global_Chrome_Upstream_Group@mediatek.com References: <20221107072243.15748-1-nancy.lin@mediatek.com> <20221107072243.15748-6-nancy.lin@mediatek.com> From: Matthias Brugger In-Reply-To: <20221107072243.15748-6-nancy.lin@mediatek.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221108_093725_859737_98367E45 X-CRM114-Status: GOOD ( 23.14 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On 07/11/2022 08:22, Nancy.Lin wrote: > Simplify code for update mmsys reg. > > Signed-off-by: Nancy.Lin > Reviewed-by: AngeloGioacchino Del Regno > Reviewed-by: CK Hu > Tested-by: AngeloGioacchino Del Regno > Tested-by: Bo-Chen Chen > Reviewed-by: NĂ­colas F. R. A. Prado > --- > drivers/soc/mediatek/mtk-mmsys.c | 45 ++++++++++++-------------------- > 1 file changed, 16 insertions(+), 29 deletions(-) > > diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c > index 9a327eb5d9d7..73c8bd27e6ae 100644 > --- a/drivers/soc/mediatek/mtk-mmsys.c > +++ b/drivers/soc/mediatek/mtk-mmsys.c > @@ -99,22 +99,27 @@ struct mtk_mmsys { > struct reset_controller_dev rcdev; > }; > > +static void mtk_mmsys_update_bits(struct mtk_mmsys *mmsys, u32 offset, u32 mask, u32 val) > +{ > + u32 tmp; > + > + tmp = readl_relaxed(mmsys->regs + offset); > + tmp = (tmp & ~mask) | (val & mask); I'm not sure about the change in the implementation of mtk_mmsys_update_bits(). Nicolas tried to explain it to me on IRC but I wasn't totally convincing. As we have to go for at least another round of this patches, I'd like to get a clear understanding while it is needed that val bits are set to 1 in the mask. Regards, Matthias > + writel_relaxed(tmp, mmsys->regs + offset); > +} > + > void mtk_mmsys_ddp_connect(struct device *dev, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > struct mtk_mmsys *mmsys = dev_get_drvdata(dev); > const struct mtk_mmsys_routes *routes = mmsys->data->routes; > - u32 reg; > int i; > > for (i = 0; i < mmsys->data->num_routes; i++) > - if (cur == routes[i].from_comp && next == routes[i].to_comp) { > - reg = readl_relaxed(mmsys->regs + routes[i].addr); > - reg &= ~routes[i].mask; > - reg |= routes[i].val; > - writel_relaxed(reg, mmsys->regs + routes[i].addr); > - } > + if (cur == routes[i].from_comp && next == routes[i].to_comp) > + mtk_mmsys_update_bits(mmsys, routes[i].addr, routes[i].mask, > + routes[i].val); > } > EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_connect); > > @@ -124,27 +129,14 @@ void mtk_mmsys_ddp_disconnect(struct device *dev, > { > struct mtk_mmsys *mmsys = dev_get_drvdata(dev); > const struct mtk_mmsys_routes *routes = mmsys->data->routes; > - u32 reg; > int i; > > for (i = 0; i < mmsys->data->num_routes; i++) > - if (cur == routes[i].from_comp && next == routes[i].to_comp) { > - reg = readl_relaxed(mmsys->regs + routes[i].addr); > - reg &= ~routes[i].mask; > - writel_relaxed(reg, mmsys->regs + routes[i].addr); > - } > + if (cur == routes[i].from_comp && next == routes[i].to_comp) > + mtk_mmsys_update_bits(mmsys, routes[i].addr, routes[i].mask, 0); > } > EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_disconnect); > > -static void mtk_mmsys_update_bits(struct mtk_mmsys *mmsys, u32 offset, u32 mask, u32 val) > -{ > - u32 tmp; > - > - tmp = readl_relaxed(mmsys->regs + offset); > - tmp = (tmp & ~mask) | val; > - writel_relaxed(tmp, mmsys->regs + offset); > -} > - > void mtk_mmsys_ddp_dpi_fmt_config(struct device *dev, u32 val) > { > if (val) > @@ -161,18 +153,13 @@ static int mtk_mmsys_reset_update(struct reset_controller_dev *rcdev, unsigned l > { > struct mtk_mmsys *mmsys = container_of(rcdev, struct mtk_mmsys, rcdev); > unsigned long flags; > - u32 reg; > > spin_lock_irqsave(&mmsys->lock, flags); > > - reg = readl_relaxed(mmsys->regs + mmsys->data->sw0_rst_offset); > - > if (assert) > - reg &= ~BIT(id); > + mtk_mmsys_update_bits(mmsys, mmsys->data->sw0_rst_offset, BIT(id), 0); > else > - reg |= BIT(id); > - > - writel_relaxed(reg, mmsys->regs + mmsys->data->sw0_rst_offset); > + mtk_mmsys_update_bits(mmsys, mmsys->data->sw0_rst_offset, BIT(id), BIT(id)); > > spin_unlock_irqrestore(&mmsys->lock, flags); > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3A0EAC433FE for ; Tue, 8 Nov 2022 17:38:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=wGX6RPEDPTB8A5sN4orce1qZWDmNtmxKNgnEyU6Zvgg=; b=wr7NCWIPqY7H/c EEtr7J12p2Qghk6bgjekbF+f8nXapkMk3iv5VFpJVpRRIO97JWLxoCBOmxj1s8Ahooxjmml1Pcys4 8CnrfaMyPUZwaGLLL+y59jsnTYk3vzLNNh8Yx/wxWqOmTkNcLErmUZa2CU7YbWCHr402ljEDmaJ0v 7F90YZOelCG4FumpAGFZxNOAkp3LIV5aT91k6NMZ77mNIx1rbkzWYi73ITxrMunV0KNwS8BcUaH27 4vbgdbCYsvZosoBuhgdjn9FYrFKyZPSyKmzFQcpUasv+c9Fywdp1QJ6m3xRvDF0HEas5jk77X94iF JjCm7E8FO82LkK7H/Ecw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1osSXR-0073Df-KI; Tue, 08 Nov 2022 17:37:29 +0000 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1osSXN-0073C9-Pc; Tue, 08 Nov 2022 17:37:27 +0000 Received: by mail-wm1-x32f.google.com with SMTP id v7so9294765wmn.0; Tue, 08 Nov 2022 09:37:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=YT8bDUSuYGlX0nSv0Gmye3eRq5y7UbhWrZlTinDOm2D4cvZMf0uBi7FXOD/RD83xQD ftEA8Oy9SJ2khn9xHaudJCfy0C5C8+J1XVTe/TZJqrUQboYjz9T+6Auu5BcqxQMiJCk9 UdOU0NgLAak/vV5X9oK8gPFcxQyRDiTPOq0WF1zieFiXoksfSP6SM7MuznRRMKFDeSTs vr4uFMd5goEZAPH8EnCKiqptmLyIk0JdgcQYHSmHAS5ZLUJ+8z37Ot2CbG4HKOMt1Rje 80KqeqTvSDNFxAUoK0/7qt428CD+a2206fRXAs2pSszQXryGl280+QJPRi/VyEnH3o53 /AXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=Jk+gHvF66pnaTfNxzMbNJ3GL3FEIZAOXzJikatWgBH5FbKUjDQnDRS7MgXisA3MDAZ dG9hyExmWSbnRzQdjUZTZ2dWv0dH4f+9ewODmwqw6LERyROkeVHtDoho4lHcTvStqCT7 7qPuptK24l2vfJ6VICX2FuViNrkbS5Z7719l65tKvNl+vBnyq+HPqkfhYExZ+hLysbyT j/LIZwBgaS1quWbtb0q9ta4iXIWYxJq317PGS90vTtqa+1Ja5Mwp8kvqxiUdH7j0uaNM Lj0j82j9AVKAUSijtmCnqYcsviaOxy1f7m8PM7gSPFkqlOuq2Vdvh2jT9VkDn7EJXwON ebLg== X-Gm-Message-State: ACrzQf2Zgsry7srOdW4WlX9TfuLlgKbM8X0lssbzkJED1BB4v5u4IoXu 5fUu8pTUi+vSal9vBdgC+I0= X-Google-Smtp-Source: AMsMyM4ZRxL1bJwjZOpkyyyJeMjJb4TNMK6d9bQf6wA8GOKPj1utSTr6/nojgUJfPKlu3A5LPUB2tA== X-Received: by 2002:a05:600c:4ecf:b0:3cf:8762:1a67 with SMTP id g15-20020a05600c4ecf00b003cf87621a67mr24970726wmq.41.1667929042011; Tue, 08 Nov 2022 09:37:22 -0800 (PST) Received: from [192.168.0.25] ([37.222.251.204]) by smtp.gmail.com with ESMTPSA id v18-20020a5d4b12000000b002365f326037sm13165230wrq.63.2022.11.08.09.37.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Nov 2022 09:37:20 -0800 (PST) Message-ID: <58d55016-afc7-e560-32cf-8228794b5752@gmail.com> Date: Tue, 8 Nov 2022 18:37:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH v28 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Content-Language: en-US To: "Nancy.Lin" , Rob Herring , Chun-Kuang Hu , Philipp Zabel , wim@linux-watchdog.org, AngeloGioacchino Del Regno , linux@roeck-us.net, nfraprado@collabora.com Cc: David Airlie , Daniel Vetter , Nathan Chancellor , Nick Desaulniers , "jason-jh . lin" , Yongqiang Niu , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, dri-devel@lists.freedesktop.org, llvm@lists.linux.dev, singo.chang@mediatek.com, Project_Global_Chrome_Upstream_Group@mediatek.com References: <20221107072243.15748-1-nancy.lin@mediatek.com> <20221107072243.15748-6-nancy.lin@mediatek.com> From: Matthias Brugger In-Reply-To: <20221107072243.15748-6-nancy.lin@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221108_093725_859737_98367E45 X-CRM114-Status: GOOD ( 23.14 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAwNy8xMS8yMDIyIDA4OjIyLCBOYW5jeS5MaW4gd3JvdGU6Cj4gU2ltcGxpZnkgY29kZSBm b3IgdXBkYXRlICBtbXN5cyByZWcuCj4gCj4gU2lnbmVkLW9mZi1ieTogTmFuY3kuTGluIDxuYW5j eS5saW5AbWVkaWF0ZWsuY29tPgo+IFJldmlld2VkLWJ5OiBBbmdlbG9HaW9hY2NoaW5vIERlbCBS ZWdubyA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPgo+IFJldmlld2Vk LWJ5OiBDSyBIdSA8Y2suaHVAbWVkaWF0ZWsuY29tPgo+IFRlc3RlZC1ieTogQW5nZWxvR2lvYWNj aGlubyBEZWwgUmVnbm8gPGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29sbGFib3JhLmNvbT4K PiBUZXN0ZWQtYnk6IEJvLUNoZW4gQ2hlbiA8cmV4LWJjLmNoZW5AbWVkaWF0ZWsuY29tPgo+IFJl dmlld2VkLWJ5OiBOw61jb2xhcyBGLiBSLiBBLiBQcmFkbyA8bmZyYXByYWRvQGNvbGxhYm9yYS5j b20+Cj4gLS0tCj4gICBkcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstbW1zeXMuYyB8IDQ1ICsrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc29jL21l ZGlhdGVrL210ay1tbXN5cy5jIGIvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbXRrLW1tc3lzLmMKPiBp bmRleCA5YTMyN2ViNWQ5ZDcuLjczYzhiZDI3ZTZhZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9tdGstbW1zeXMuYwo+ICsrKyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1t bXN5cy5jCj4gQEAgLTk5LDIyICs5OSwyNyBAQCBzdHJ1Y3QgbXRrX21tc3lzIHsKPiAgIAlzdHJ1 Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgcmNkZXY7Cj4gICB9Owo+ICAgCj4gK3N0YXRpYyB2b2lk IG10a19tbXN5c191cGRhdGVfYml0cyhzdHJ1Y3QgbXRrX21tc3lzICptbXN5cywgdTMyIG9mZnNl dCwgdTMyIG1hc2ssIHUzMiB2YWwpCj4gK3sKPiArCXUzMiB0bXA7Cj4gKwo+ICsJdG1wID0gcmVh ZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIG9mZnNldCk7Cj4gKwl0bXAgPSAodG1wICYgfm1hc2sp IHwgKHZhbCAmIG1hc2spOwoKSSdtIG5vdCBzdXJlIGFib3V0IHRoZSBjaGFuZ2UgaW4gdGhlIGlt cGxlbWVudGF0aW9uIG9mIG10a19tbXN5c191cGRhdGVfYml0cygpLiAKTmljb2xhcyB0cmllZCB0 byBleHBsYWluIGl0IHRvIG1lIG9uIElSQyBidXQgSSB3YXNuJ3QgdG90YWxseSBjb252aW5jaW5n LiBBcyB3ZSAKaGF2ZSB0byBnbyBmb3IgYXQgbGVhc3QgYW5vdGhlciByb3VuZCBvZiB0aGlzIHBh dGNoZXMsIEknZCBsaWtlIHRvIGdldCBhIGNsZWFyIAp1bmRlcnN0YW5kaW5nIHdoaWxlIGl0IGlz IG5lZWRlZCB0aGF0IHZhbCBiaXRzIGFyZSBzZXQgdG8gMSBpbiB0aGUgbWFzay4KClJlZ2FyZHMs Ck1hdHRoaWFzCgo+ICsJd3JpdGVsX3JlbGF4ZWQodG1wLCBtbXN5cy0+cmVncyArIG9mZnNldCk7 Cj4gK30KPiArCj4gICB2b2lkIG10a19tbXN5c19kZHBfY29ubmVjdChzdHJ1Y3QgZGV2aWNlICpk ZXYsCj4gICAJCQkgICBlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsCj4gICAJCQkgICBlbnVtIG10 a19kZHBfY29tcF9pZCBuZXh0KQo+ICAgewo+ICAgCXN0cnVjdCBtdGtfbW1zeXMgKm1tc3lzID0g ZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gICAJY29uc3Qgc3RydWN0IG10a19tbXN5c19yb3V0ZXMg KnJvdXRlcyA9IG1tc3lzLT5kYXRhLT5yb3V0ZXM7Cj4gLQl1MzIgcmVnOwo+ICAgCWludCBpOwo+ ICAgCj4gICAJZm9yIChpID0gMDsgaSA8IG1tc3lzLT5kYXRhLT5udW1fcm91dGVzOyBpKyspCj4g LQkJaWYgKGN1ciA9PSByb3V0ZXNbaV0uZnJvbV9jb21wICYmIG5leHQgPT0gcm91dGVzW2ldLnRv X2NvbXApIHsKPiAtCQkJcmVnID0gcmVhZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIHJvdXRlc1tp XS5hZGRyKTsKPiAtCQkJcmVnICY9IH5yb3V0ZXNbaV0ubWFzazsKPiAtCQkJcmVnIHw9IHJvdXRl c1tpXS52YWw7Cj4gLQkJCXdyaXRlbF9yZWxheGVkKHJlZywgbW1zeXMtPnJlZ3MgKyByb3V0ZXNb aV0uYWRkcik7Cj4gLQkJfQo+ICsJCWlmIChjdXIgPT0gcm91dGVzW2ldLmZyb21fY29tcCAmJiBu ZXh0ID09IHJvdXRlc1tpXS50b19jb21wKQo+ICsJCQltdGtfbW1zeXNfdXBkYXRlX2JpdHMobW1z eXMsIHJvdXRlc1tpXS5hZGRyLCByb3V0ZXNbaV0ubWFzaywKPiArCQkJCQkgICAgICByb3V0ZXNb aV0udmFsKTsKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0xfR1BMKG10a19tbXN5c19kZHBfY29ubmVj dCk7Cj4gICAKPiBAQCAtMTI0LDI3ICsxMjksMTQgQEAgdm9pZCBtdGtfbW1zeXNfZGRwX2Rpc2Nv bm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LAo+ICAgewo+ICAgCXN0cnVjdCBtdGtfbW1zeXMgKm1t c3lzID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gICAJY29uc3Qgc3RydWN0IG10a19tbXN5c19y b3V0ZXMgKnJvdXRlcyA9IG1tc3lzLT5kYXRhLT5yb3V0ZXM7Cj4gLQl1MzIgcmVnOwo+ICAgCWlu dCBpOwo+ICAgCj4gICAJZm9yIChpID0gMDsgaSA8IG1tc3lzLT5kYXRhLT5udW1fcm91dGVzOyBp KyspCj4gLQkJaWYgKGN1ciA9PSByb3V0ZXNbaV0uZnJvbV9jb21wICYmIG5leHQgPT0gcm91dGVz W2ldLnRvX2NvbXApIHsKPiAtCQkJcmVnID0gcmVhZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIHJv dXRlc1tpXS5hZGRyKTsKPiAtCQkJcmVnICY9IH5yb3V0ZXNbaV0ubWFzazsKPiAtCQkJd3JpdGVs X3JlbGF4ZWQocmVnLCBtbXN5cy0+cmVncyArIHJvdXRlc1tpXS5hZGRyKTsKPiAtCQl9Cj4gKwkJ aWYgKGN1ciA9PSByb3V0ZXNbaV0uZnJvbV9jb21wICYmIG5leHQgPT0gcm91dGVzW2ldLnRvX2Nv bXApCj4gKwkJCW10a19tbXN5c191cGRhdGVfYml0cyhtbXN5cywgcm91dGVzW2ldLmFkZHIsIHJv dXRlc1tpXS5tYXNrLCAwKTsKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0xfR1BMKG10a19tbXN5c19k ZHBfZGlzY29ubmVjdCk7Cj4gICAKPiAtc3RhdGljIHZvaWQgbXRrX21tc3lzX3VwZGF0ZV9iaXRz KHN0cnVjdCBtdGtfbW1zeXMgKm1tc3lzLCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbCkK PiAtewo+IC0JdTMyIHRtcDsKPiAtCj4gLQl0bXAgPSByZWFkbF9yZWxheGVkKG1tc3lzLT5yZWdz ICsgb2Zmc2V0KTsKPiAtCXRtcCA9ICh0bXAgJiB+bWFzaykgfCB2YWw7Cj4gLQl3cml0ZWxfcmVs YXhlZCh0bXAsIG1tc3lzLT5yZWdzICsgb2Zmc2V0KTsKPiAtfQo+IC0KPiAgIHZvaWQgbXRrX21t c3lzX2RkcF9kcGlfZm10X2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiB2YWwpCj4gICB7 Cj4gICAJaWYgKHZhbCkKPiBAQCAtMTYxLDE4ICsxNTMsMTMgQEAgc3RhdGljIGludCBtdGtfbW1z eXNfcmVzZXRfdXBkYXRlKHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsIHVuc2ln bmVkIGwKPiAgIHsKPiAgIAlzdHJ1Y3QgbXRrX21tc3lzICptbXN5cyA9IGNvbnRhaW5lcl9vZihy Y2Rldiwgc3RydWN0IG10a19tbXN5cywgcmNkZXYpOwo+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 Cj4gLQl1MzIgcmVnOwo+ICAgCj4gICAJc3Bpbl9sb2NrX2lycXNhdmUoJm1tc3lzLT5sb2NrLCBm bGFncyk7Cj4gICAKPiAtCXJlZyA9IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyBtbXN5cy0+ ZGF0YS0+c3cwX3JzdF9vZmZzZXQpOwo+IC0KPiAgIAlpZiAoYXNzZXJ0KQo+IC0JCXJlZyAmPSB+ QklUKGlkKTsKPiArCQltdGtfbW1zeXNfdXBkYXRlX2JpdHMobW1zeXMsIG1tc3lzLT5kYXRhLT5z dzBfcnN0X29mZnNldCwgQklUKGlkKSwgMCk7Cj4gICAJZWxzZQo+IC0JCXJlZyB8PSBCSVQoaWQp Owo+IC0KPiAtCXdyaXRlbF9yZWxheGVkKHJlZywgbW1zeXMtPnJlZ3MgKyBtbXN5cy0+ZGF0YS0+ c3cwX3JzdF9vZmZzZXQpOwo+ICsJCW10a19tbXN5c191cGRhdGVfYml0cyhtbXN5cywgbW1zeXMt PmRhdGEtPnN3MF9yc3Rfb2Zmc2V0LCBCSVQoaWQpLCBCSVQoaWQpKTsKPiAgIAo+ICAgCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJm1tc3lzLT5sb2NrLCBmbGFncyk7Cj4gICAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DFCD5C4332F for ; Tue, 8 Nov 2022 17:37:38 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AEC6110E4DB; Tue, 8 Nov 2022 17:37:28 +0000 (UTC) Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by gabe.freedesktop.org (Postfix) with ESMTPS id AABEB10E4D0 for ; Tue, 8 Nov 2022 17:37:23 +0000 (UTC) Received: by mail-wm1-x329.google.com with SMTP id t1so9268818wmi.4 for ; Tue, 08 Nov 2022 09:37:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=YT8bDUSuYGlX0nSv0Gmye3eRq5y7UbhWrZlTinDOm2D4cvZMf0uBi7FXOD/RD83xQD ftEA8Oy9SJ2khn9xHaudJCfy0C5C8+J1XVTe/TZJqrUQboYjz9T+6Auu5BcqxQMiJCk9 UdOU0NgLAak/vV5X9oK8gPFcxQyRDiTPOq0WF1zieFiXoksfSP6SM7MuznRRMKFDeSTs vr4uFMd5goEZAPH8EnCKiqptmLyIk0JdgcQYHSmHAS5ZLUJ+8z37Ot2CbG4HKOMt1Rje 80KqeqTvSDNFxAUoK0/7qt428CD+a2206fRXAs2pSszQXryGl280+QJPRi/VyEnH3o53 /AXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=lL7ib0fQfHAIVHKNMEUfuV2w/rUMbmu/eMiez+EADGc=; b=SW64dMmMuima5U5OGr2dNc4jO1mm43gaRhJvtm43ndVe4UwE1DMDbW2cUMr4TaKVaa Z1jAfBj1PZa+M3sjD7cqzNI2kmyTp9mQhhcVp74441mZuSD+NJBB1UXW33wbKEoWKj3B t9aOLgJT+iS6NOuXTqGIqRoPjDStMVIucLcFG+e0+LzLrdewfAnunDuCzzKVWibFa2Mr cJDHspMaTDKw4OFBUakywDBhO1RlEKOVPJsuOo9sTPhkkNUN7RFIHFSUouwgiaNjh2sp nHVZvjk5OCBYgPCQNWhouCmeccyBZjhiXZDeAgbzjjw9t90fGUFMVMaTQrax4lbt8ecp 0ocA== X-Gm-Message-State: ACrzQf2sCj+4PyfBha5DzZE5tX8KdsAlAu2TXmhrE1on9FbQp0WsIHlV bmu5dqw+Knw9DhKDvUMp0BI= X-Google-Smtp-Source: AMsMyM4ZRxL1bJwjZOpkyyyJeMjJb4TNMK6d9bQf6wA8GOKPj1utSTr6/nojgUJfPKlu3A5LPUB2tA== X-Received: by 2002:a05:600c:4ecf:b0:3cf:8762:1a67 with SMTP id g15-20020a05600c4ecf00b003cf87621a67mr24970726wmq.41.1667929042011; Tue, 08 Nov 2022 09:37:22 -0800 (PST) Received: from [192.168.0.25] ([37.222.251.204]) by smtp.gmail.com with ESMTPSA id v18-20020a5d4b12000000b002365f326037sm13165230wrq.63.2022.11.08.09.37.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Nov 2022 09:37:20 -0800 (PST) Message-ID: <58d55016-afc7-e560-32cf-8228794b5752@gmail.com> Date: Tue, 8 Nov 2022 18:37:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: [PATCH v28 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Content-Language: en-US To: "Nancy.Lin" , Rob Herring , Chun-Kuang Hu , Philipp Zabel , wim@linux-watchdog.org, AngeloGioacchino Del Regno , linux@roeck-us.net, nfraprado@collabora.com References: <20221107072243.15748-1-nancy.lin@mediatek.com> <20221107072243.15748-6-nancy.lin@mediatek.com> From: Matthias Brugger In-Reply-To: <20221107072243.15748-6-nancy.lin@mediatek.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Project_Global_Chrome_Upstream_Group@mediatek.com, David Airlie , "jason-jh . lin" , singo.chang@mediatek.com, llvm@lists.linux.dev, Nick Desaulniers , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Nathan Chancellor , linux-mediatek@lists.infradead.org, Yongqiang Niu , linux-arm-kernel@lists.infradead.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 07/11/2022 08:22, Nancy.Lin wrote: > Simplify code for update mmsys reg. > > Signed-off-by: Nancy.Lin > Reviewed-by: AngeloGioacchino Del Regno > Reviewed-by: CK Hu > Tested-by: AngeloGioacchino Del Regno > Tested-by: Bo-Chen Chen > Reviewed-by: NĂ­colas F. R. A. Prado > --- > drivers/soc/mediatek/mtk-mmsys.c | 45 ++++++++++++-------------------- > 1 file changed, 16 insertions(+), 29 deletions(-) > > diff --git a/drivers/soc/mediatek/mtk-mmsys.c b/drivers/soc/mediatek/mtk-mmsys.c > index 9a327eb5d9d7..73c8bd27e6ae 100644 > --- a/drivers/soc/mediatek/mtk-mmsys.c > +++ b/drivers/soc/mediatek/mtk-mmsys.c > @@ -99,22 +99,27 @@ struct mtk_mmsys { > struct reset_controller_dev rcdev; > }; > > +static void mtk_mmsys_update_bits(struct mtk_mmsys *mmsys, u32 offset, u32 mask, u32 val) > +{ > + u32 tmp; > + > + tmp = readl_relaxed(mmsys->regs + offset); > + tmp = (tmp & ~mask) | (val & mask); I'm not sure about the change in the implementation of mtk_mmsys_update_bits(). Nicolas tried to explain it to me on IRC but I wasn't totally convincing. As we have to go for at least another round of this patches, I'd like to get a clear understanding while it is needed that val bits are set to 1 in the mask. Regards, Matthias > + writel_relaxed(tmp, mmsys->regs + offset); > +} > + > void mtk_mmsys_ddp_connect(struct device *dev, > enum mtk_ddp_comp_id cur, > enum mtk_ddp_comp_id next) > { > struct mtk_mmsys *mmsys = dev_get_drvdata(dev); > const struct mtk_mmsys_routes *routes = mmsys->data->routes; > - u32 reg; > int i; > > for (i = 0; i < mmsys->data->num_routes; i++) > - if (cur == routes[i].from_comp && next == routes[i].to_comp) { > - reg = readl_relaxed(mmsys->regs + routes[i].addr); > - reg &= ~routes[i].mask; > - reg |= routes[i].val; > - writel_relaxed(reg, mmsys->regs + routes[i].addr); > - } > + if (cur == routes[i].from_comp && next == routes[i].to_comp) > + mtk_mmsys_update_bits(mmsys, routes[i].addr, routes[i].mask, > + routes[i].val); > } > EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_connect); > > @@ -124,27 +129,14 @@ void mtk_mmsys_ddp_disconnect(struct device *dev, > { > struct mtk_mmsys *mmsys = dev_get_drvdata(dev); > const struct mtk_mmsys_routes *routes = mmsys->data->routes; > - u32 reg; > int i; > > for (i = 0; i < mmsys->data->num_routes; i++) > - if (cur == routes[i].from_comp && next == routes[i].to_comp) { > - reg = readl_relaxed(mmsys->regs + routes[i].addr); > - reg &= ~routes[i].mask; > - writel_relaxed(reg, mmsys->regs + routes[i].addr); > - } > + if (cur == routes[i].from_comp && next == routes[i].to_comp) > + mtk_mmsys_update_bits(mmsys, routes[i].addr, routes[i].mask, 0); > } > EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_disconnect); > > -static void mtk_mmsys_update_bits(struct mtk_mmsys *mmsys, u32 offset, u32 mask, u32 val) > -{ > - u32 tmp; > - > - tmp = readl_relaxed(mmsys->regs + offset); > - tmp = (tmp & ~mask) | val; > - writel_relaxed(tmp, mmsys->regs + offset); > -} > - > void mtk_mmsys_ddp_dpi_fmt_config(struct device *dev, u32 val) > { > if (val) > @@ -161,18 +153,13 @@ static int mtk_mmsys_reset_update(struct reset_controller_dev *rcdev, unsigned l > { > struct mtk_mmsys *mmsys = container_of(rcdev, struct mtk_mmsys, rcdev); > unsigned long flags; > - u32 reg; > > spin_lock_irqsave(&mmsys->lock, flags); > > - reg = readl_relaxed(mmsys->regs + mmsys->data->sw0_rst_offset); > - > if (assert) > - reg &= ~BIT(id); > + mtk_mmsys_update_bits(mmsys, mmsys->data->sw0_rst_offset, BIT(id), 0); > else > - reg |= BIT(id); > - > - writel_relaxed(reg, mmsys->regs + mmsys->data->sw0_rst_offset); > + mtk_mmsys_update_bits(mmsys, mmsys->data->sw0_rst_offset, BIT(id), BIT(id)); > > spin_unlock_irqrestore(&mmsys->lock, flags); >