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 56709C4332F for ; Mon, 7 Nov 2022 07:28:23 +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:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mHhD6MTL7kQ4bw5R6GY3/VesbL7KrPmV5W6K5k34Ns0=; b=4l6SLdKvWwjD6Z5k4J3dHpspqh d4F8tnnJV0lrSxOelGmU690zfEAZibMN/wdEvOeeaLCGWGO7S3S35AEHgH5a860MXsQTV4lbJUDVB RQU8IKcBFrrVfL4OnkT8pRZXj4LNqXP3Aet3hmhO+hCjBsIKsha7LGu8UUTJBCdyDKNu+VGotWz+z xiHf6Q5Edyj3s+5B3TzPVw1W7tNBpQ4qQDezJ4GnZC2knyKPdcG1ax0ElupFdLSzsmljH7u0eTKmr E88XhqBSsCh1/f/WjP2kGjLaPj/WkKZPugwOfkY6PXFWSCrafh1A0aDD+4ZEI9njZ4Ud3nMVFcskU TRH8W/rg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1orwYJ-00CNLa-Vz; Mon, 07 Nov 2022 07:28:16 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1orwTf-00CKLU-QS; Mon, 07 Nov 2022 07:23:30 +0000 X-UUID: 4f444cd6a6ae45e9ba146f38b3f9d1ea-20221107 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=mHhD6MTL7kQ4bw5R6GY3/VesbL7KrPmV5W6K5k34Ns0=; b=D12oBi7fJ6nPHZ2Xa5K8U8fAwsCHMOAyi0hwoEX9EGtCyH5rnP9B9W4SM5P+UglvPJN1ycVt7YGZ4pMxp2tIL67OpP95vE8SmUj+GLxNvTTEKqGToIP9VlYJTXdBVD2g9pLwlEgYYSG9AWXJkiLZy3UgSDG2IkzIKt/issvRXV8=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.12,REQID:52a72cc6-33cb-496c-b8e7-3da2de97ec50,IP:0,U RL:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:25 X-CID-META: VersionHash:62cd327,CLOUDID:846ea4eb-84ac-4628-a416-bc50d5503da6,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:5,IP:nil,UR L:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: 4f444cd6a6ae45e9ba146f38b3f9d1ea-20221107 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1270289063; Mon, 07 Nov 2022 00:23:21 -0700 Received: from mtkmbs11n2.mediatek.inc (172.21.101.187) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Mon, 7 Nov 2022 15:22:47 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs11n2.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Mon, 7 Nov 2022 15:22:46 +0800 From: Nancy.Lin To: Rob Herring , Matthias Brugger , Chun-Kuang Hu , "Philipp Zabel" , , "AngeloGioacchino Del Regno" , , CC: David Airlie , Daniel Vetter , "Nathan Chancellor" , Nick Desaulniers , "Nancy . Lin" , "jason-jh . lin" , Yongqiang Niu , , , , , , , , Subject: [PATCH v28 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Date: Mon, 7 Nov 2022 15:22:37 +0800 Message-ID: <20221107072243.15748-6-nancy.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20221107072243.15748-1-nancy.lin@mediatek.com> References: <20221107072243.15748-1-nancy.lin@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221106_232327_952208_E82747FC X-CRM114-Status: GOOD ( 12.71 ) 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 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); + 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); -- 2.18.0 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 75763C43217 for ; Mon, 7 Nov 2022 07:27:48 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ERhrmrdkZUS+pxJbeorvSboS+/0puMFgMk75YHAWr9g=; b=bN01QLFbue91Xq PSMuvgayIiVZUyE04Eo79SN9HRKeRCsiguJPkdbscHq1AEgHEZFB1tuE1Fc1Aih2fFLg5DyM+kAB5 MZFVGLVlvL13SJxbcTAOdY8M7nCxKgJkjc2IyjwjXAumBRzghkWh0ei7MbMnqD5jqugnsj3vS1nRX VSgsjFwEe1fXoBpTxTXx2xscQgievbHEpSw+NvXZJHu65SC1yHrEbtHsy+7QBVwv2D0ZMZ9jcJrD7 VXAt7OhIHJ7QWeonhkWAucPMsG1RukPspJ+w5M7YWHnFZL4K9L5H3xmiPKZeJthw/UYb+422W/hHT whiuXJkahzWcEaRbEkAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1orwWn-00CMEo-QI; Mon, 07 Nov 2022 07:26:42 +0000 Received: from mailgw02.mediatek.com ([216.200.240.185]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1orwTf-00CKLU-QS; Mon, 07 Nov 2022 07:23:30 +0000 X-UUID: 4f444cd6a6ae45e9ba146f38b3f9d1ea-20221107 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=mHhD6MTL7kQ4bw5R6GY3/VesbL7KrPmV5W6K5k34Ns0=; b=D12oBi7fJ6nPHZ2Xa5K8U8fAwsCHMOAyi0hwoEX9EGtCyH5rnP9B9W4SM5P+UglvPJN1ycVt7YGZ4pMxp2tIL67OpP95vE8SmUj+GLxNvTTEKqGToIP9VlYJTXdBVD2g9pLwlEgYYSG9AWXJkiLZy3UgSDG2IkzIKt/issvRXV8=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.12,REQID:52a72cc6-33cb-496c-b8e7-3da2de97ec50,IP:0,U RL:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:25 X-CID-META: VersionHash:62cd327,CLOUDID:846ea4eb-84ac-4628-a416-bc50d5503da6,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:5,IP:nil,UR L:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: 4f444cd6a6ae45e9ba146f38b3f9d1ea-20221107 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1270289063; Mon, 07 Nov 2022 00:23:21 -0700 Received: from mtkmbs11n2.mediatek.inc (172.21.101.187) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Mon, 7 Nov 2022 15:22:47 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs11n2.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Mon, 7 Nov 2022 15:22:46 +0800 From: Nancy.Lin To: Rob Herring , Matthias Brugger , Chun-Kuang Hu , "Philipp Zabel" , , "AngeloGioacchino Del Regno" , , CC: David Airlie , Daniel Vetter , "Nathan Chancellor" , Nick Desaulniers , "Nancy . Lin" , "jason-jh . lin" , Yongqiang Niu , , , , , , , , Subject: [PATCH v28 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Date: Mon, 7 Nov 2022 15:22:37 +0800 Message-ID: <20221107072243.15748-6-nancy.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20221107072243.15748-1-nancy.lin@mediatek.com> References: <20221107072243.15748-1-nancy.lin@mediatek.com> MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221106_232327_952208_E82747FC X-CRM114-Status: GOOD ( 12.71 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org U2ltcGxpZnkgY29kZSBmb3IgdXBkYXRlICBtbXN5cyByZWcuCgpTaWduZWQtb2ZmLWJ5OiBOYW5j eS5MaW4gPG5hbmN5LmxpbkBtZWRpYXRlay5jb20+ClJldmlld2VkLWJ5OiBBbmdlbG9HaW9hY2No aW5vIERlbCBSZWdubyA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tPgpS ZXZpZXdlZC1ieTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4KVGVzdGVkLWJ5OiBBbmdlbG9H aW9hY2NoaW5vIERlbCBSZWdubyA8YW5nZWxvZ2lvYWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEu Y29tPgpUZXN0ZWQtYnk6IEJvLUNoZW4gQ2hlbiA8cmV4LWJjLmNoZW5AbWVkaWF0ZWsuY29tPgpS ZXZpZXdlZC1ieTogTsOtY29sYXMgRi4gUi4gQS4gUHJhZG8gPG5mcmFwcmFkb0Bjb2xsYWJvcmEu Y29tPgotLS0KIGRyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jIHwgNDUgKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGst bW1zeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jCmluZGV4IDlhMzI3ZWI1 ZDlkNy4uNzNjOGJkMjdlNmFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGst bW1zeXMuYworKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstbW1zeXMuYwpAQCAtOTksMjIg Kzk5LDI3IEBAIHN0cnVjdCBtdGtfbW1zeXMgewogCXN0cnVjdCByZXNldF9jb250cm9sbGVyX2Rl diByY2RldjsKIH07CiAKK3N0YXRpYyB2b2lkIG10a19tbXN5c191cGRhdGVfYml0cyhzdHJ1Y3Qg bXRrX21tc3lzICptbXN5cywgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpCit7CisJdTMy IHRtcDsKKworCXRtcCA9IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyBvZmZzZXQpOworCXRt cCA9ICh0bXAgJiB+bWFzaykgfCAodmFsICYgbWFzayk7CisJd3JpdGVsX3JlbGF4ZWQodG1wLCBt bXN5cy0+cmVncyArIG9mZnNldCk7Cit9CisKIHZvaWQgbXRrX21tc3lzX2RkcF9jb25uZWN0KHN0 cnVjdCBkZXZpY2UgKmRldiwKIAkJCSAgIGVudW0gbXRrX2RkcF9jb21wX2lkIGN1ciwKIAkJCSAg IGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpCiB7CiAJc3RydWN0IG10a19tbXN5cyAqbW1zeXMg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAljb25zdCBzdHJ1Y3QgbXRrX21tc3lzX3JvdXRlcyAq cm91dGVzID0gbW1zeXMtPmRhdGEtPnJvdXRlczsKLQl1MzIgcmVnOwogCWludCBpOwogCiAJZm9y IChpID0gMDsgaSA8IG1tc3lzLT5kYXRhLT5udW1fcm91dGVzOyBpKyspCi0JCWlmIChjdXIgPT0g cm91dGVzW2ldLmZyb21fY29tcCAmJiBuZXh0ID09IHJvdXRlc1tpXS50b19jb21wKSB7Ci0JCQly ZWcgPSByZWFkbF9yZWxheGVkKG1tc3lzLT5yZWdzICsgcm91dGVzW2ldLmFkZHIpOwotCQkJcmVn ICY9IH5yb3V0ZXNbaV0ubWFzazsKLQkJCXJlZyB8PSByb3V0ZXNbaV0udmFsOwotCQkJd3JpdGVs X3JlbGF4ZWQocmVnLCBtbXN5cy0+cmVncyArIHJvdXRlc1tpXS5hZGRyKTsKLQkJfQorCQlpZiAo Y3VyID09IHJvdXRlc1tpXS5mcm9tX2NvbXAgJiYgbmV4dCA9PSByb3V0ZXNbaV0udG9fY29tcCkK KwkJCW10a19tbXN5c191cGRhdGVfYml0cyhtbXN5cywgcm91dGVzW2ldLmFkZHIsIHJvdXRlc1tp XS5tYXNrLAorCQkJCQkgICAgICByb3V0ZXNbaV0udmFsKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BM KG10a19tbXN5c19kZHBfY29ubmVjdCk7CiAKQEAgLTEyNCwyNyArMTI5LDE0IEBAIHZvaWQgbXRr X21tc3lzX2RkcF9kaXNjb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3QgbXRr X21tc3lzICptbXN5cyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCWNvbnN0IHN0cnVjdCBtdGtf bW1zeXNfcm91dGVzICpyb3V0ZXMgPSBtbXN5cy0+ZGF0YS0+cm91dGVzOwotCXUzMiByZWc7CiAJ aW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbW1zeXMtPmRhdGEtPm51bV9yb3V0ZXM7IGkrKykK LQkJaWYgKGN1ciA9PSByb3V0ZXNbaV0uZnJvbV9jb21wICYmIG5leHQgPT0gcm91dGVzW2ldLnRv X2NvbXApIHsKLQkJCXJlZyA9IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyByb3V0ZXNbaV0u YWRkcik7Ci0JCQlyZWcgJj0gfnJvdXRlc1tpXS5tYXNrOwotCQkJd3JpdGVsX3JlbGF4ZWQocmVn LCBtbXN5cy0+cmVncyArIHJvdXRlc1tpXS5hZGRyKTsKLQkJfQorCQlpZiAoY3VyID09IHJvdXRl c1tpXS5mcm9tX2NvbXAgJiYgbmV4dCA9PSByb3V0ZXNbaV0udG9fY29tcCkKKwkJCW10a19tbXN5 c191cGRhdGVfYml0cyhtbXN5cywgcm91dGVzW2ldLmFkZHIsIHJvdXRlc1tpXS5tYXNrLCAwKTsK IH0KIEVYUE9SVF9TWU1CT0xfR1BMKG10a19tbXN5c19kZHBfZGlzY29ubmVjdCk7CiAKLXN0YXRp YyB2b2lkIG10a19tbXN5c191cGRhdGVfYml0cyhzdHJ1Y3QgbXRrX21tc3lzICptbXN5cywgdTMy IG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpCi17Ci0JdTMyIHRtcDsKLQotCXRtcCA9IHJlYWRs X3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyBvZmZzZXQpOwotCXRtcCA9ICh0bXAgJiB+bWFzaykgfCB2 YWw7Ci0Jd3JpdGVsX3JlbGF4ZWQodG1wLCBtbXN5cy0+cmVncyArIG9mZnNldCk7Ci19Ci0KIHZv aWQgbXRrX21tc3lzX2RkcF9kcGlfZm10X2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiB2 YWwpCiB7CiAJaWYgKHZhbCkKQEAgLTE2MSwxOCArMTUzLDEzIEBAIHN0YXRpYyBpbnQgbXRrX21t c3lzX3Jlc2V0X3VwZGF0ZShzdHJ1Y3QgcmVzZXRfY29udHJvbGxlcl9kZXYgKnJjZGV2LCB1bnNp Z25lZCBsCiB7CiAJc3RydWN0IG10a19tbXN5cyAqbW1zeXMgPSBjb250YWluZXJfb2YocmNkZXYs IHN0cnVjdCBtdGtfbW1zeXMsIHJjZGV2KTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXUzMiBy ZWc7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmbW1zeXMtPmxvY2ssIGZsYWdzKTsKIAotCXJlZyA9 IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyBtbXN5cy0+ZGF0YS0+c3cwX3JzdF9vZmZzZXQp OwotCiAJaWYgKGFzc2VydCkKLQkJcmVnICY9IH5CSVQoaWQpOworCQltdGtfbW1zeXNfdXBkYXRl X2JpdHMobW1zeXMsIG1tc3lzLT5kYXRhLT5zdzBfcnN0X29mZnNldCwgQklUKGlkKSwgMCk7CiAJ ZWxzZQotCQlyZWcgfD0gQklUKGlkKTsKLQotCXdyaXRlbF9yZWxheGVkKHJlZywgbW1zeXMtPnJl Z3MgKyBtbXN5cy0+ZGF0YS0+c3cwX3JzdF9vZmZzZXQpOworCQltdGtfbW1zeXNfdXBkYXRlX2Jp dHMobW1zeXMsIG1tc3lzLT5kYXRhLT5zdzBfcnN0X29mZnNldCwgQklUKGlkKSwgQklUKGlkKSk7 CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtbXN5cy0+bG9jaywgZmxhZ3MpOwogCi0tIAoy LjE4LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg== 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 DB684C43217 for ; Mon, 7 Nov 2022 07:23:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0EF8D10E228; Mon, 7 Nov 2022 07:23:09 +0000 (UTC) Received: from mailgw01.mediatek.com (unknown [60.244.123.138]) by gabe.freedesktop.org (Postfix) with ESMTPS id 25F4410E200 for ; Mon, 7 Nov 2022 07:22:54 +0000 (UTC) X-UUID: 6c9aa084046c4490a4b784336c97a73c-20221107 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=mHhD6MTL7kQ4bw5R6GY3/VesbL7KrPmV5W6K5k34Ns0=; b=D12oBi7fJ6nPHZ2Xa5K8U8fAwsCHMOAyi0hwoEX9EGtCyH5rnP9B9W4SM5P+UglvPJN1ycVt7YGZ4pMxp2tIL67OpP95vE8SmUj+GLxNvTTEKqGToIP9VlYJTXdBVD2g9pLwlEgYYSG9AWXJkiLZy3UgSDG2IkzIKt/issvRXV8=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.12, REQID:952645c2-119e-4486-8b32-d4f7b6aa2752, IP:0, U RL:0,TC:0,Content:0,EDM:25,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:25 X-CID-META: VersionHash:62cd327, CLOUDID:8c69a4eb-84ac-4628-a416-bc50d5503da6, B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:5,IP:nil,UR L:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0 X-UUID: 6c9aa084046c4490a4b784336c97a73c-20221107 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 271953603; Mon, 07 Nov 2022 15:22:48 +0800 Received: from mtkmbs11n2.mediatek.inc (172.21.101.187) by mtkmbs10n1.mediatek.inc (172.21.101.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.15; Mon, 7 Nov 2022 15:22:47 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs11n2.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Mon, 7 Nov 2022 15:22:46 +0800 From: Nancy.Lin To: Rob Herring , Matthias Brugger , Chun-Kuang Hu , "Philipp Zabel" , , "AngeloGioacchino Del Regno" , , Subject: [PATCH v28 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Date: Mon, 7 Nov 2022 15:22:37 +0800 Message-ID: <20221107072243.15748-6-nancy.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20221107072243.15748-1-nancy.lin@mediatek.com> References: <20221107072243.15748-1-nancy.lin@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-MTK: N 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, Yongqiang Niu , 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 , "Nancy . Lin" , linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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); + 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); -- 2.18.0