From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) (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 01D802F4B for ; Fri, 13 Jan 2023 10:44:47 +0000 (UTC) X-UUID: 46781430932f11ed945fc101203acc17-20230113 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=U2nqXgahfm2xivwCYRf9vnqovu+xLLpuGd7dG7iX2wc=; b=omCFdoHPcDvzzTQN8BUmDl28/iY8b69favPCtKwlitEkSCUTxeVUtLaMQ2FgyRw1itfvPiYtRwy3B/o6Auoxx7UbQ7ISSvQkL+Ln2fuf+a5BD/fOwKxh7S54+L0V6EbeWQic6ZV+hHi91CezJZuh3NcE+n7eU7DWUvbXcBkP52Q=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.17,REQID:9bccce26-1c95-423b-aacf-7db53578c66a,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:95,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:95 X-CID-INFO: VERSION:1.1.17,REQID:9bccce26-1c95-423b-aacf-7db53578c66a,IP:0,URL :0,TC:0,Content:0,EDM:0,RT:0,SF:95,FILE:0,BULK:0,RULE:Spam_GS981B3D,ACTION :quarantine,TS:95 X-CID-META: VersionHash:543e81c,CLOUDID:5b509354-dd49-462e-a4be-2143a3ddc739,B ulkID:230113184439ND5P38E8,BulkQuantity:1,Recheck:0,SF:38|28|17|19|48,TC:n il,Content:0,EDM:-3,IP:nil,URL:11|1,File:nil,Bulk:40,QS:nil,BEC:nil,COL:0, OSI:0,OSA:0 X-CID-APTURL: Status:success,Category:nil,Trust:0,Unknown:0,Malicious:0 X-CID-BVR: 0 X-UUID: 46781430932f11ed945fc101203acc17-20230113 Received: from mtkmbs10n1.mediatek.inc [(172.21.101.34)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 421822005; Fri, 13 Jan 2023 18:44:37 +0800 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Fri, 13 Jan 2023 18:44:36 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Fri, 13 Jan 2023 18:44:36 +0800 From: Nancy.Lin To: Rob Herring , Krzysztof Kozlowski , Matthias Brugger , Philipp Zabel , CK Hu CC: Nathan Chancellor , Nick Desaulniers , Tom Rix , "AngeloGioacchino Del Regno" , "Jason-JH . Lin" , "Nancy . Lin" , "Nathan Lu" , Rex-BC Chen , "Xinlei Lee" , , , , , , , Subject: [PATCH v30 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Date: Fri, 13 Jan 2023 18:44:28 +0800 Message-ID: <20230113104434.28023-6-nancy.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20230113104434.28023-1-nancy.lin@mediatek.com> References: <20230113104434.28023-1-nancy.lin@mediatek.com> Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-MTK: N 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 e75ac7f5aa3c..602197e95f67 100644 --- a/drivers/soc/mediatek/mtk-mmsys.c +++ b/drivers/soc/mediatek/mtk-mmsys.c @@ -107,22 +107,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); @@ -132,27 +137,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) { struct mtk_mmsys *mmsys = dev_get_drvdata(dev); @@ -184,18 +176,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 4AB0FC54EBD for ; Fri, 13 Jan 2023 11:06:03 +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=d0FuZflFUFKYffugQxI0s2e7JquSPoCSrmE8PTbU718=; b=mQL6+a64iYybLS 6p29/oianJk1TigM/rEFUTXF4z3moPk2bYxldK+M2hPCWG7oWQr5JKMOtwt9GElxipPKpAI+OVqiH IPriqaHwH28OlcJVLqJoAZGSxADqZGQMp/SqRI2V622IXTG/SGVHme5Zyam4SOgFRC7RetIrU7w5g sbmgiPd4sfgtEjctQEmFgQYyHwn7YkLCtvHjB2hnY6tZa0jPYH2JGdpW+qMX8m2WmfBw/GYLzJ/Eg hNfWGb/+THtjdQW1c8XpbJBfhlt0yt4lOs+Wxb1cziWz4rAUpZc8ySaRiNO223eGBS04IPOQ6ocRa VtucA/LBejIwVlA3JTtQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pGHr8-001zNT-TQ; Fri, 13 Jan 2023 11:04:20 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pGHjW-001w4z-IX; Fri, 13 Jan 2023 10:56:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=U2nqXgahfm2xivwCYRf9vnqovu+xLLpuGd7dG7iX2wc=; b=NwWqowpUPOiDp2E1dKrC1XjLYX IjwYtjeo0/2eXY5EutovJg7q9Q9h/ihMRW6QJBQEkOUk72u/FwyTSmxGGufemryhWdiSMQ96mJB1R x4dyZbq3KdGUR9h2CfXVcqADHUMqJnfWQO6Kbf5nhLb/W8ZxN7XUBfSihWuuByvkt0s+iPrvGbOeF uwB7cz/SOWYkB8nLA73IvkDE2Khon+o9LvsGmLZUIIDytklIMHOIVAeiNRc4yKJz7FZOxSKrBSj+i ylkafRy5HBR7aFF17p3+Ko2IodKiqdJ8f/ub+3UyPzTphITaPxeN97iHuMXCwrYYSyZaJ5LK0EtYf vUNDkxDQ==; Received: from mailgw02.mediatek.com ([216.200.240.185]) by desiato.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pGHjJ-004KGb-0C; Fri, 13 Jan 2023 10:56:16 +0000 X-UUID: e4359fac933011eda08d4d6090ec5a5c-20230113 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=U2nqXgahfm2xivwCYRf9vnqovu+xLLpuGd7dG7iX2wc=; b=omCFdoHPcDvzzTQN8BUmDl28/iY8b69favPCtKwlitEkSCUTxeVUtLaMQ2FgyRw1itfvPiYtRwy3B/o6Auoxx7UbQ7ISSvQkL+Ln2fuf+a5BD/fOwKxh7S54+L0V6EbeWQic6ZV+hHi91CezJZuh3NcE+n7eU7DWUvbXcBkP52Q=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.17,REQID:6b612333-1a39-4150-bfd4-8f38d12da08a,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:543e81c,CLOUDID:847fbdf5-ff42-4fb0-b929-626456a83c14,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:11|1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0 X-CID-BVR: 0 X-UUID: e4359fac933011eda08d4d6090ec5a5c-20230113 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1529213348; Fri, 13 Jan 2023 03:56:11 -0700 Received: from mtkmbs13n1.mediatek.inc (172.21.101.193) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.792.3; Fri, 13 Jan 2023 18:44:36 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n1.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.792.15 via Frontend Transport; Fri, 13 Jan 2023 18:44:36 +0800 From: Nancy.Lin To: Rob Herring , Krzysztof Kozlowski , Matthias Brugger , Philipp Zabel , CK Hu CC: Nathan Chancellor , Nick Desaulniers , Tom Rix , "AngeloGioacchino Del Regno" , "Jason-JH . Lin" , "Nancy . Lin" , "Nathan Lu" , Rex-BC Chen , "Xinlei Lee" , , , , , , , Subject: [PATCH v30 05/11] soc: mediatek: refine code to use mtk_mmsys_update_bits API Date: Fri, 13 Jan 2023 18:44:28 +0800 Message-ID: <20230113104434.28023-6-nancy.lin@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20230113104434.28023-1-nancy.lin@mediatek.com> References: <20230113104434.28023-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-20230113_105614_018341_1826A4E9 X-CRM114-Status: GOOD ( 13.09 ) 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 bW1zeXMuYyBiL2RyaXZlcnMvc29jL21lZGlhdGVrL210ay1tbXN5cy5jCmluZGV4IGU3NWFjN2Y1 YWEzYy4uNjAyMTk3ZTk1ZjY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGst bW1zeXMuYworKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tdGstbW1zeXMuYwpAQCAtMTA3LDIy ICsxMDcsMjcgQEAgc3RydWN0IG10a19tbXN5cyB7CiAJc3RydWN0IHJlc2V0X2NvbnRyb2xsZXJf ZGV2IHJjZGV2OwogfTsKIAorc3RhdGljIHZvaWQgbXRrX21tc3lzX3VwZGF0ZV9iaXRzKHN0cnVj dCBtdGtfbW1zeXMgKm1tc3lzLCB1MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbCkKK3sKKwl1 MzIgdG1wOworCisJdG1wID0gcmVhZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIG9mZnNldCk7CisJ dG1wID0gKHRtcCAmIH5tYXNrKSB8ICh2YWwgJiBtYXNrKTsKKwl3cml0ZWxfcmVsYXhlZCh0bXAs IG1tc3lzLT5yZWdzICsgb2Zmc2V0KTsKK30KKwogdm9pZCBtdGtfbW1zeXNfZGRwX2Nvbm5lY3Qo c3RydWN0IGRldmljZSAqZGV2LAogCQkJICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgY3VyLAogCQkJ ICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCkKIHsKIAlzdHJ1Y3QgbXRrX21tc3lzICptbXN5 cyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwogCWNvbnN0IHN0cnVjdCBtdGtfbW1zeXNfcm91dGVz ICpyb3V0ZXMgPSBtbXN5cy0+ZGF0YS0+cm91dGVzOwotCXUzMiByZWc7CiAJaW50IGk7CiAKIAlm b3IgKGkgPSAwOyBpIDwgbW1zeXMtPmRhdGEtPm51bV9yb3V0ZXM7IGkrKykKLQkJaWYgKGN1ciA9 PSByb3V0ZXNbaV0uZnJvbV9jb21wICYmIG5leHQgPT0gcm91dGVzW2ldLnRvX2NvbXApIHsKLQkJ CXJlZyA9IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyByb3V0ZXNbaV0uYWRkcik7Ci0JCQly ZWcgJj0gfnJvdXRlc1tpXS5tYXNrOwotCQkJcmVnIHw9IHJvdXRlc1tpXS52YWw7Ci0JCQl3cml0 ZWxfcmVsYXhlZChyZWcsIG1tc3lzLT5yZWdzICsgcm91dGVzW2ldLmFkZHIpOwotCQl9CisJCWlm IChjdXIgPT0gcm91dGVzW2ldLmZyb21fY29tcCAmJiBuZXh0ID09IHJvdXRlc1tpXS50b19jb21w KQorCQkJbXRrX21tc3lzX3VwZGF0ZV9iaXRzKG1tc3lzLCByb3V0ZXNbaV0uYWRkciwgcm91dGVz W2ldLm1hc2ssCisJCQkJCSAgICAgIHJvdXRlc1tpXS52YWwpOwogfQogRVhQT1JUX1NZTUJPTF9H UEwobXRrX21tc3lzX2RkcF9jb25uZWN0KTsKIApAQCAtMTMyLDI3ICsxMzcsMTQgQEAgdm9pZCBt dGtfbW1zeXNfZGRwX2Rpc2Nvbm5lY3Qoc3RydWN0IGRldmljZSAqZGV2LAogewogCXN0cnVjdCBt dGtfbW1zeXMgKm1tc3lzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAJY29uc3Qgc3RydWN0IG10 a19tbXN5c19yb3V0ZXMgKnJvdXRlcyA9IG1tc3lzLT5kYXRhLT5yb3V0ZXM7Ci0JdTMyIHJlZzsK IAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBtbXN5cy0+ZGF0YS0+bnVtX3JvdXRlczsgaSsr KQotCQlpZiAoY3VyID09IHJvdXRlc1tpXS5mcm9tX2NvbXAgJiYgbmV4dCA9PSByb3V0ZXNbaV0u dG9fY29tcCkgewotCQkJcmVnID0gcmVhZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIHJvdXRlc1tp XS5hZGRyKTsKLQkJCXJlZyAmPSB+cm91dGVzW2ldLm1hc2s7Ci0JCQl3cml0ZWxfcmVsYXhlZChy ZWcsIG1tc3lzLT5yZWdzICsgcm91dGVzW2ldLmFkZHIpOwotCQl9CisJCWlmIChjdXIgPT0gcm91 dGVzW2ldLmZyb21fY29tcCAmJiBuZXh0ID09IHJvdXRlc1tpXS50b19jb21wKQorCQkJbXRrX21t c3lzX3VwZGF0ZV9iaXRzKG1tc3lzLCByb3V0ZXNbaV0uYWRkciwgcm91dGVzW2ldLm1hc2ssIDAp OwogfQogRVhQT1JUX1NZTUJPTF9HUEwobXRrX21tc3lzX2RkcF9kaXNjb25uZWN0KTsKIAotc3Rh dGljIHZvaWQgbXRrX21tc3lzX3VwZGF0ZV9iaXRzKHN0cnVjdCBtdGtfbW1zeXMgKm1tc3lzLCB1 MzIgb2Zmc2V0LCB1MzIgbWFzaywgdTMyIHZhbCkKLXsKLQl1MzIgdG1wOwotCi0JdG1wID0gcmVh ZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIG9mZnNldCk7Ci0JdG1wID0gKHRtcCAmIH5tYXNrKSB8 IHZhbDsKLQl3cml0ZWxfcmVsYXhlZCh0bXAsIG1tc3lzLT5yZWdzICsgb2Zmc2V0KTsKLX0KLQog dm9pZCBtdGtfbW1zeXNfZGRwX2RwaV9mbXRfY29uZmlnKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMy IHZhbCkKIHsKIAlzdHJ1Y3QgbXRrX21tc3lzICptbXN5cyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp OwpAQCAtMTg0LDE4ICsxNzYsMTMgQEAgc3RhdGljIGludCBtdGtfbW1zeXNfcmVzZXRfdXBkYXRl KHN0cnVjdCByZXNldF9jb250cm9sbGVyX2RldiAqcmNkZXYsIHVuc2lnbmVkIGwKIHsKIAlzdHJ1 Y3QgbXRrX21tc3lzICptbXN5cyA9IGNvbnRhaW5lcl9vZihyY2Rldiwgc3RydWN0IG10a19tbXN5 cywgcmNkZXYpOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdTMyIHJlZzsKIAogCXNwaW5fbG9j a19pcnFzYXZlKCZtbXN5cy0+bG9jaywgZmxhZ3MpOwogCi0JcmVnID0gcmVhZGxfcmVsYXhlZCht bXN5cy0+cmVncyArIG1tc3lzLT5kYXRhLT5zdzBfcnN0X29mZnNldCk7Ci0KIAlpZiAoYXNzZXJ0 KQotCQlyZWcgJj0gfkJJVChpZCk7CisJCW10a19tbXN5c191cGRhdGVfYml0cyhtbXN5cywgbW1z eXMtPmRhdGEtPnN3MF9yc3Rfb2Zmc2V0LCBCSVQoaWQpLCAwKTsKIAllbHNlCi0JCXJlZyB8PSBC SVQoaWQpOwotCi0Jd3JpdGVsX3JlbGF4ZWQocmVnLCBtbXN5cy0+cmVncyArIG1tc3lzLT5kYXRh LT5zdzBfcnN0X29mZnNldCk7CisJCW10a19tbXN5c191cGRhdGVfYml0cyhtbXN5cywgbW1zeXMt PmRhdGEtPnN3MF9yc3Rfb2Zmc2V0LCBCSVQoaWQpLCBCSVQoaWQpKTsKIAogCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJm1tc3lzLT5sb2NrLCBmbGFncyk7CiAKLS0gCjIuMTguMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK