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 6CE63CD37AC for ; Mon, 11 May 2026 15:05:24 +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:Message-ID:Subject:Cc:From :To:Date: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=YG5QtuAU1pRG9EorZN9EQHDCa8PbfmPD8z27U0nv1Vk=; b=AsvHcVkGjUZNOy KSzjsOAMNt+mpSUMmHXdMhCa9tuN6ZmXsQk/DH58rRZzZVkXLo+KXRnGm217cd/3n7nSE7mFHiqWQ SfXDzLjJNfuCZ1OWmQ8SXRtzSIAXfh3v6JFc9ux9d5IXfDGXy3J4yYkLP+nsYMcxpvVFNyyUljNpp BBEpvF1yLC99gYJ1LD0B6HZL6cYwFcttZCnTq70U7zajIeZ6CrYDzn7+/k0hvJWyvlto0id9JbbgJ RSUf0PHpEDht2Xe6jyilkQIaehp0JTbUBxwfcNY1kjAakXbgnot52ttohX8R595khH7GHThV33l8k Y68CSBGALb7BkuCW4XNA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMSC8-0000000E0Gb-2y7O; Mon, 11 May 2026 15:05:20 +0000 Received: from mail-10629.protonmail.ch ([79.135.106.29]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wMSC4-0000000E0D2-3ND8 for linux-rockchip@lists.infradead.org; Mon, 11 May 2026 15:05:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1778511902; x=1778771102; bh=3DfboyVxuZK2gODaAqfQXyjlDoIw13bkPKqoPWksTcY=; h=Date:To:From:Cc:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=dQ4/1/vr0i86wPxSroJfUMv5UU7o254xRqQnOKT3WTDQJ9hDPDXYkeYrl3xBhvoE3 UzFsHM3XKddv42bfxjLRNqfG+5y/pYPLjCt8HJv2OhRiBoJlnU5fSLCoEMU0sTmGAw lfZ01DdOO1sIXBgCKeAnDsFNVWNjy90PdeRlOk0IEGj259/DQLGn+ug79vghr509qQ aYg1v3jw5WUQVvNnUlDKVbQ7PpKYAiArvHcu51R7nQus6RId2yk8tnJBopLROqPyEq 2q4MVyQdOynoCvbDTgPJFzE3tnQgoTxvLpkC/uuQVT7gzg80MbsV/Z9lRlxCkhda/A IvZsjE+GhVnpQ== Date: Mon, 11 May 2026 15:04:52 +0000 To: Dafna Hirschfeld , Laurent Pinchart , Mauro Carvalho Chehab , Heiko Stuebner From: =?utf-8?Q?Barnab=C3=A1s_P=C5=91cze?= Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, =?utf-8?Q?Barnab=C3=A1s_P=C5=91cze?= , Jacopo Mondi Subject: [PATCH v2] media: rkisp1: Add support for CAC Message-ID: <20260511150439.577758-1-pobrn@protonmail.com> Feedback-ID: 20568564:user:proton X-Pm-Message-ID: c266f4c420a2207e0cec3190776fae3260365978 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260511_080517_161842_C3049BCF X-CRM114-Status: GOOD ( 14.55 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org RnJvbTogQmFybmFiw6FzIFDFkWN6ZSA8YmFybmFiYXMucG9jemVAaWRlYXNvbmJvYXJkLmNvbT4K ClRoZSBDQUMgYmxvY2sgaW1wbGVtZW50cyBjaHJvbWF0aWMgYWJlcnJhdGlvbiBjb3JyZWN0aW9u LiBFeHBvc2UgaXQgdG8KdXNlcnNwYWNlIHVzaW5nIHRoZSBleHRlbnNpYmxlIHBhcmFtZXRlcnMg Zm9ybWF0LiBUaGlzIHdhcyB0ZXN0ZWQgb24gdGhlCmkuTVg4TVAgcGxhdGZvcm0sIGJ1dCBiYXNl ZCBvbiBhdmFpbGFibGUgZG9jdW1lbnRhdGlvbiBpdCBpcyBhbHNvIHByZXNlbnQKaW4gdGhlIFJL MzM5OSB2YXJpYW50IChWMTApLiBUaHVzIHByZXN1bWFibHkgYWxzbyBpbiBsYXRlciB2ZXJzaW9u cywKc28gbm8gZmVhdHVyZSBmbGFnIGlzIGludHJvZHVjZWQuCgpTaWduZWQtb2ZmLWJ5OiBCYXJu YWLDoXMgUMWRY3plIDxiYXJuYWJhcy5wb2N6ZUBpZGVhc29uYm9hcmQuY29tPgpSZXZpZXdlZC1i eTogSmFjb3BvIE1vbmRpIDxqYWNvcG8ubW9uZGlAaWRlYXNvbmJvYXJkLmNvbT4KUmV2aWV3ZWQt Ynk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4K LS0tCmNoYW5nZXMgaW4gdjI6CiAgKiBhZGRyZXNzIHJldmlldyBjb21tZW50cwoKdjE6IGh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1lZGlhLzIwMjYwMzIzMTQwMjE2LjE0ODYxNjEtMS1i YXJuYWJhcy5wb2N6ZUBpZGVhc29uYm9hcmQuY29tLwotLS0KIC4uLi9wbGF0Zm9ybS9yb2NrY2hp cC9ya2lzcDEvcmtpc3AxLXBhcmFtcy5jICB8ICA2OCArKysrKysrKysrKwogLi4uL3BsYXRmb3Jt L3JvY2tjaGlwL3JraXNwMS9ya2lzcDEtcmVncy5oICAgIHwgIDE1ICsrLQogaW5jbHVkZS91YXBp L2xpbnV4L3JraXNwMS1jb25maWcuaCAgICAgICAgICAgIHwgMTA3ICsrKysrKysrKysrKysrKysr LQogMyBmaWxlcyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JraXNwMS9ya2lzcDEt cGFyYW1zLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JraXNwMS9ya2lzcDEt cGFyYW1zLmMKaW5kZXggNjQ0MjQzNmE1ZTQyLi4wNDJiNzU5ZWJhNjIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vcm9ja2NoaXAvcmtpc3AxL3JraXNwMS1wYXJhbXMuYworKysg Yi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JraXNwMS9ya2lzcDEtcGFyYW1zLmMK QEAgLTY0LDYgKzY0LDcgQEAgdW5pb24gcmtpc3AxX2V4dF9wYXJhbXNfY29uZmlnIHsKIAlzdHJ1 Y3Qgcmtpc3AxX2V4dF9wYXJhbXNfY29tcGFuZF9ibHNfY29uZmlnIGNvbXBhbmRfYmxzOwogCXN0 cnVjdCBya2lzcDFfZXh0X3BhcmFtc19jb21wYW5kX2N1cnZlX2NvbmZpZyBjb21wYW5kX2N1cnZl OwogCXN0cnVjdCBya2lzcDFfZXh0X3BhcmFtc193ZHJfY29uZmlnIHdkcjsKKwlzdHJ1Y3Qgcmtp c3AxX2V4dF9wYXJhbXNfY2FjX2NvbmZpZyBjYWM7CiB9OwogCiBlbnVtIHJraXNwMV9wYXJhbXNf Zm9ybWF0cyB7CkBAIC0xNDEzLDYgKzE0MTQsNDcgQEAgc3RhdGljIHZvaWQgcmtpc3AxX3dkcl9j b25maWcoc3RydWN0IHJraXNwMV9wYXJhbXMgKnBhcmFtcywKIAkJCQkgICAgIFJLSVNQMV9DSUZf SVNQX1dEUl9UT05FX0NVUlZFX1lNX01BU0spOwogfQogCitzdGF0aWMgdm9pZCBya2lzcDFfY2Fj X2NvbmZpZyhzdHJ1Y3Qgcmtpc3AxX3BhcmFtcyAqcGFyYW1zLAorCQkJICAgICAgY29uc3Qgc3Ry dWN0IHJraXNwMV9jaWZfaXNwX2NhY19jb25maWcgKmFyZykKK3sKKwl1MzIgdmFsOworCisJLyoK KwkgKiBUaGUgZW5hYmxlIGJpdCBpcyBpbiB0aGUgc2FtZSByZWdpc3RlciAoUktJU1AxX0NJRl9J U1BfQ0FDX0NUUkwpLAorCSAqIHNvIG9ubHkgc2V0IHRoZSBjbGlwcGluZyBtb2RlLCBhbmQgZG8g bm90IG1vZGlmeSB0aGUgb3RoZXIgYml0cy4KKwkgKi8KKwl2YWwgPSBya2lzcDFfcmVhZChwYXJh bXMtPnJraXNwMSwgUktJU1AxX0NJRl9JU1BfQ0FDX0NUUkwpOworCXZhbCAmPSB+KFJLSVNQMV9D SUZfSVNQX0NBQ19DVFJMX0hfQ0xJUF9NT0RFIHwKKwkJIFJLSVNQMV9DSUZfSVNQX0NBQ19DVFJM X1ZfQ0xJUF9NT0RFKTsKKwl2YWwgfD0gRklFTERfUFJFUChSS0lTUDFfQ0lGX0lTUF9DQUNfQ1RS TF9IX0NMSVBfTU9ERSwgYXJnLT5oX2NsaXBfbW9kZSkgfAorCSAgICAgICBGSUVMRF9QUkVQKFJL SVNQMV9DSUZfSVNQX0NBQ19DVFJMX1ZfQ0xJUF9NT0RFLCBhcmctPnZfY2xpcF9tb2RlKTsKKwly a2lzcDFfd3JpdGUocGFyYW1zLT5ya2lzcDEsIFJLSVNQMV9DSUZfSVNQX0NBQ19DVFJMLCB2YWwp OworCisJdmFsID0gRklFTERfUFJFUChSS0lTUDFfQ0lGX0lTUF9DQUNfQ09VTlRfU1RBUlRfSF9N QVNLLCBhcmctPmhfY291bnRfc3RhcnQpIHwKKwkgICAgICBGSUVMRF9QUkVQKFJLSVNQMV9DSUZf SVNQX0NBQ19DT1VOVF9TVEFSVF9WX01BU0ssIGFyZy0+dl9jb3VudF9zdGFydCk7CisJcmtpc3Ax X3dyaXRlKHBhcmFtcy0+cmtpc3AxLCBSS0lTUDFfQ0lGX0lTUF9DQUNfQ09VTlRfU1RBUlQsIHZh bCk7CisKKwl2YWwgPSBGSUVMRF9QUkVQKFJLSVNQMV9DSUZfSVNQX0NBQ19SRURfTUFTSywgYXJn LT5yZWRbMF0pIHwKKwkgICAgICBGSUVMRF9QUkVQKFJLSVNQMV9DSUZfSVNQX0NBQ19CTFVFX01B U0ssIGFyZy0+Ymx1ZVswXSk7CisJcmtpc3AxX3dyaXRlKHBhcmFtcy0+cmtpc3AxLCBSS0lTUDFf Q0lGX0lTUF9DQUNfQSwgdmFsKTsKKworCXZhbCA9IEZJRUxEX1BSRVAoUktJU1AxX0NJRl9JU1Bf Q0FDX1JFRF9NQVNLLCBhcmctPnJlZFsxXSkgfAorCSAgICAgIEZJRUxEX1BSRVAoUktJU1AxX0NJ Rl9JU1BfQ0FDX0JMVUVfTUFTSywgYXJnLT5ibHVlWzFdKTsKKwlya2lzcDFfd3JpdGUocGFyYW1z LT5ya2lzcDEsIFJLSVNQMV9DSUZfSVNQX0NBQ19CLCB2YWwpOworCisJdmFsID0gRklFTERfUFJF UChSS0lTUDFfQ0lGX0lTUF9DQUNfUkVEX01BU0ssIGFyZy0+cmVkWzJdKSB8CisJICAgICAgRklF TERfUFJFUChSS0lTUDFfQ0lGX0lTUF9DQUNfQkxVRV9NQVNLLCBhcmctPmJsdWVbMl0pOworCXJr aXNwMV93cml0ZShwYXJhbXMtPnJraXNwMSwgUktJU1AxX0NJRl9JU1BfQ0FDX0MsIHZhbCk7CisK Kwl2YWwgPSBGSUVMRF9QUkVQKFJLSVNQMV9DSUZfSVNQX0NBQ19ORl9NQVNLLCBhcmctPnhfbmYp IHwKKwkgICAgICBGSUVMRF9QUkVQKFJLSVNQMV9DSUZfSVNQX0NBQ19OU19NQVNLLCBhcmctPnhf bnMpOworCXJraXNwMV93cml0ZShwYXJhbXMtPnJraXNwMSwgUktJU1AxX0NJRl9JU1BfQ0FDX1hf Tk9STSwgdmFsKTsKKworCXZhbCA9IEZJRUxEX1BSRVAoUktJU1AxX0NJRl9JU1BfQ0FDX05GX01B U0ssIGFyZy0+eV9uZikgfAorCSAgICAgIEZJRUxEX1BSRVAoUktJU1AxX0NJRl9JU1BfQ0FDX05T X01BU0ssIGFyZy0+eV9ucyk7CisJcmtpc3AxX3dyaXRlKHBhcmFtcy0+cmtpc3AxLCBSS0lTUDFf Q0lGX0lTUF9DQUNfWV9OT1JNLCB2YWwpOworfQorCiBzdGF0aWMgdm9pZAogcmtpc3AxX2lzcF9p c3Jfb3RoZXJfY29uZmlnKHN0cnVjdCBya2lzcDFfcGFyYW1zICpwYXJhbXMsCiAJCQkgICAgY29u c3Qgc3RydWN0IHJraXNwMV9wYXJhbXNfY2ZnICpuZXdfcGFyYW1zKQpAQCAtMjA4OSw2ICsyMTMx LDI1IEBAIHN0YXRpYyB2b2lkIHJraXNwMV9leHRfcGFyYW1zX3dkcihzdHJ1Y3Qgcmtpc3AxX3Bh cmFtcyAqcGFyYW1zLAogCQkJCSAgICAgIFJLSVNQMV9DSUZfSVNQX1dEUl9DVFJMX0VOQUJMRSk7 CiB9CiAKK3N0YXRpYyB2b2lkIHJraXNwMV9leHRfcGFyYW1zX2NhYyhzdHJ1Y3Qgcmtpc3AxX3Bh cmFtcyAqcGFyYW1zLAorCQkJCSAgY29uc3QgdW5pb24gcmtpc3AxX2V4dF9wYXJhbXNfY29uZmln ICpibG9jaykKK3sKKwljb25zdCBzdHJ1Y3Qgcmtpc3AxX2V4dF9wYXJhbXNfY2FjX2NvbmZpZyAq Y2FjID0gJmJsb2NrLT5jYWM7CisKKwlpZiAoY2FjLT5oZWFkZXIuZmxhZ3MgJiBSS0lTUDFfRVhU X1BBUkFNU19GTF9CTE9DS19ESVNBQkxFKSB7CisJCXJraXNwMV9wYXJhbV9jbGVhcl9iaXRzKHBh cmFtcywgUktJU1AxX0NJRl9JU1BfQ0FDX0NUUkwsCisJCQkJCVJLSVNQMV9DSUZfSVNQX0NBQ19D VFJMX0VOQUJMRSk7CisJCXJldHVybjsKKwl9CisKKwlya2lzcDFfY2FjX2NvbmZpZyhwYXJhbXMs ICZjYWMtPmNvbmZpZyk7CisKKwlpZiAoKGNhYy0+aGVhZGVyLmZsYWdzICYgUktJU1AxX0VYVF9Q QVJBTVNfRkxfQkxPQ0tfRU5BQkxFKSAmJgorCSAgICAhKHBhcmFtcy0+ZW5hYmxlZF9ibG9ja3Mg JiBCSVQoY2FjLT5oZWFkZXIudHlwZSkpKQorCQlya2lzcDFfcGFyYW1fc2V0X2JpdHMocGFyYW1z LCBSS0lTUDFfQ0lGX0lTUF9DQUNfQ1RSTCwKKwkJCQkgICAgICBSS0lTUDFfQ0lGX0lTUF9DQUNf Q1RSTF9FTkFCTEUpOworfQorCiB0eXBlZGVmIHZvaWQgKCpya2lzcDFfYmxvY2tfaGFuZGxlciko c3RydWN0IHJraXNwMV9wYXJhbXMgKnBhcmFtcywKIAkJCSAgICAgY29uc3QgdW5pb24gcmtpc3Ax X2V4dF9wYXJhbXNfY29uZmlnICpjb25maWcpOwogCkBAIC0yMTg1LDYgKzIyNDYsMTAgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBya2lzcDFfZXh0X3BhcmFtc19oYW5kbGVyIHsKIAkJLmhhbmRsZXIJ PSBya2lzcDFfZXh0X3BhcmFtc193ZHIsCiAJCS5ncm91cAkJPSBSS0lTUDFfRVhUX1BBUkFNU19C TE9DS19HUk9VUF9PVEhFUlMsCiAJfSwKKwlbUktJU1AxX0VYVF9QQVJBTVNfQkxPQ0tfVFlQRV9D QUNdID0geworCQkuaGFuZGxlcgk9IHJraXNwMV9leHRfcGFyYW1zX2NhYywKKwkJLmdyb3VwCQk9 IFJLSVNQMV9FWFRfUEFSQU1TX0JMT0NLX0dST1VQX09USEVSUywKKwl9LAogfTsKIAogI2RlZmlu ZSBSS0lTUDFfUEFSQU1TX0JMT0NLX0lORk8oYmxvY2ssIGRhdGEpIFwKQEAgLTIyMTUsNiArMjI4 MCw3IEBAIHJraXNwMV9leHRfcGFyYW1zX2Jsb2NrX3R5cGVzX2luZm9bXSA9IHsKIAlSS0lTUDFf UEFSQU1TX0JMT0NLX0lORk8oQ09NUEFORF9FWFBBTkQsIGNvbXBhbmRfY3VydmUpLAogCVJLSVNQ MV9QQVJBTVNfQkxPQ0tfSU5GTyhDT01QQU5EX0NPTVBSRVNTLCBjb21wYW5kX2N1cnZlKSwKIAlS S0lTUDFfUEFSQU1TX0JMT0NLX0lORk8oV0RSLCB3ZHIpLAorCVJLSVNQMV9QQVJBTVNfQkxPQ0tf SU5GTyhDQUMsIGNhYyksCiB9OwogCiBzdGF0aWNfYXNzZXJ0KEFSUkFZX1NJWkUocmtpc3AxX2V4 dF9wYXJhbXNfaGFuZGxlcnMpID09CkBAIC0yNDc0LDYgKzI1NDAsOCBAQCB2b2lkIHJraXNwMV9w YXJhbXNfZGlzYWJsZShzdHJ1Y3Qgcmtpc3AxX3BhcmFtcyAqcGFyYW1zKQogCXJraXNwMV9pZV9l bmFibGUocGFyYW1zLCBmYWxzZSk7CiAJcmtpc3AxX3BhcmFtX2NsZWFyX2JpdHMocGFyYW1zLCBS S0lTUDFfQ0lGX0lTUF9EUEZfTU9ERSwKIAkJCQlSS0lTUDFfQ0lGX0lTUF9EUEZfTU9ERV9FTik7 CisJcmtpc3AxX3BhcmFtX2NsZWFyX2JpdHMocGFyYW1zLCBSS0lTUDFfQ0lGX0lTUF9DQUNfQ1RS TCwKKwkJCQlSS0lTUDFfQ0lGX0lTUF9DQUNfQ1RSTF9FTkFCTEUpOwogfQogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHJraXNwMV9wYXJhbXNfb3BzIHJraXNwMV92MTBfcGFyYW1zX29wcyA9IHsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcm9ja2NoaXAvcmtpc3AxL3JraXNwMS1y ZWdzLmggYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JraXNwMS9ya2lzcDEtcmVn cy5oCmluZGV4IGZiZWIxODZjZGUwZC4uMmI4NDIxOTRkZThmIDEwMDY0NAotLS0gYS9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL3JvY2tjaGlwL3JraXNwMS9ya2lzcDEtcmVncy5oCisrKyBiL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vcm9ja2NoaXAvcmtpc3AxL3JraXNwMS1yZWdzLmgKQEAgLTcyNCw2 ICs3MjQsMTcgQEAKICNkZWZpbmUgUktJU1AxX0NJRl9JU1BfV0RSX0RNSU5fU1RSRU5HVEhfTUFT SwkJR0VOTUFTSygyMCwgMTYpCiAjZGVmaW5lIFJLSVNQMV9DSUZfSVNQX1dEUl9ETUlOX1NUUkVO R1RIX01BWAkJMTZVCiAKKy8qIENBQyAqLworI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9DQUNfQ1RS TF9FTkFCTEUJCUJJVCgwKQorI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9DQUNfQ1RSTF9WX0NMSVBf TU9ERQlHRU5NQVNLKDIsIDEpCisjZGVmaW5lIFJLSVNQMV9DSUZfSVNQX0NBQ19DVFJMX0hfQ0xJ UF9NT0RFCUJJVCgzKQorI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9DQUNfQ09VTlRfU1RBUlRfSF9N QVNLCUdFTk1BU0soMTIsIDApCisjZGVmaW5lIFJLSVNQMV9DSUZfSVNQX0NBQ19DT1VOVF9TVEFS VF9WX01BU0sJR0VOTUFTSygyOCwgMTYpCisjZGVmaW5lIFJLSVNQMV9DSUZfSVNQX0NBQ19SRURf TUFTSwkJR0VOTUFTSyg4LCAwKQorI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9DQUNfQkxVRV9NQVNL CQlHRU5NQVNLKDI0LCAxNikKKyNkZWZpbmUgUktJU1AxX0NJRl9JU1BfQ0FDX05GX01BU0sJCUdF Tk1BU0soNCwgMCkKKyNkZWZpbmUgUktJU1AxX0NJRl9JU1BfQ0FDX05TX01BU0sJCUdFTk1BU0so MTksIDE2KQorCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBDSUYgUmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ICovCkBAIC0xMTk2LDggKzEyMDcsOCBAQAogI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9DQUNf QQkJCShSS0lTUDFfQ0lGX0lTUF9DQUNfQkFTRSArIDB4MDAwMDAwMDgpCiAjZGVmaW5lIFJLSVNQ MV9DSUZfSVNQX0NBQ19CCQkJKFJLSVNQMV9DSUZfSVNQX0NBQ19CQVNFICsgMHgwMDAwMDAwYykK ICNkZWZpbmUgUktJU1AxX0NJRl9JU1BfQ0FDX0MJCQkoUktJU1AxX0NJRl9JU1BfQ0FDX0JBU0Ug KyAweDAwMDAwMDEwKQotI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9YX05PUk0JCQkoUktJU1AxX0NJ Rl9JU1BfQ0FDX0JBU0UgKyAweDAwMDAwMDE0KQotI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9ZX05P Uk0JCQkoUktJU1AxX0NJRl9JU1BfQ0FDX0JBU0UgKyAweDAwMDAwMDE4KQorI2RlZmluZSBSS0lT UDFfQ0lGX0lTUF9DQUNfWF9OT1JNCQkoUktJU1AxX0NJRl9JU1BfQ0FDX0JBU0UgKyAweDAwMDAw MDE0KQorI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9DQUNfWV9OT1JNCQkoUktJU1AxX0NJRl9JU1Bf Q0FDX0JBU0UgKyAweDAwMDAwMDE4KQogCiAjZGVmaW5lIFJLSVNQMV9DSUZfSVNQX0VYUF9CQVNF CQkJMHgwMDAwMjYwMAogI2RlZmluZSBSS0lTUDFfQ0lGX0lTUF9FWFBfQ1RSTAkJCShSS0lTUDFf Q0lGX0lTUF9FWFBfQkFTRSArIDB4MDAwMDAwMDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv bGludXgvcmtpc3AxLWNvbmZpZy5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L3JraXNwMS1jb25maWcu aAppbmRleCBiMmQyYTcxZjdiYWYuLmM2YmE0OTYyMTcyNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91 YXBpL2xpbnV4L3JraXNwMS1jb25maWcuaAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvcmtpc3Ax LWNvbmZpZy5oCkBAIC05NjcsNiArOTY3LDkyIEBAIHN0cnVjdCBya2lzcDFfY2lmX2lzcF93ZHJf Y29uZmlnIHsKIAlfX3U4IHVzZV9pcmVmOwogfTsKIAorLyoKKyAqIGVudW0gcmtpc3AxX2NpZl9p c3BfY2FjX2hfY2xpcF9tb2RlIC0gaG9yaXpvbnRhbCBjbGlwcGluZyBtb2RlCisgKgorICogQFJL SVNQMV9DSUZfSVNQX0NBQ19IX0NMSVBfTU9ERV80UFg6ICsvLSA0IHBpeGVscworICogQFJLSVNQ MV9DSUZfSVNQX0NBQ19IX0NMSVBfTU9ERV80XzVQWDogKy8tIDQvNSBwaXhlbHMgZGVwZW5kaW5n IG9uIGJheWVyIHBvc2l0aW9uCisgKi8KK2VudW0gcmtpc3AxX2NpZl9pc3BfY2FjX2hfY2xpcF9t b2RlIHsKKwlSS0lTUDFfQ0lGX0lTUF9DQUNfSF9DTElQX01PREVfNFBYID0gMCwKKwlSS0lTUDFf Q0lGX0lTUF9DQUNfSF9DTElQX01PREVfNF81UFggPSAxLAorfTsKKworLyoqCisgKiBlbnVtIHJr aXNwMV9jaWZfaXNwX2NhY192X2NsaXBfbW9kZSAtIHZlcnRpY2FsIGNsaXBwaW5nIG1vZGUKKyAq CisgKiBAUktJU1AxX0NJRl9JU1BfQ0FDX1ZfQ0xJUF9NT0RFXzJQWDogKy8tIDIgcGl4ZWxzCisg KiBAUktJU1AxX0NJRl9JU1BfQ0FDX1ZfQ0xJUF9NT0RFXzNQWDogKy8tIDMgcGl4ZWxzCisgKiBA UktJU1AxX0NJRl9JU1BfQ0FDX1ZfQ0xJUF9NT0RFXzNfNFBYOiArLy0gMy80IHBpeGVscyBkZXBl bmRpbmcgb24gYmF5ZXIgcG9zaXRpb24KKyAqLworZW51bSBya2lzcDFfY2lmX2lzcF9jYWNfdl9j bGlwX21vZGUgeworCVJLSVNQMV9DSUZfSVNQX0NBQ19WX0NMSVBfTU9ERV8yUFggPSAwLAorCVJL SVNQMV9DSUZfSVNQX0NBQ19WX0NMSVBfTU9ERV8zUFggPSAxLAorCVJLSVNQMV9DSUZfSVNQX0NB Q19WX0NMSVBfTU9ERV8zXzRQWCA9IDIsCit9OworCisvKioKKyAqIHN0cnVjdCBya2lzcDFfY2lm X2lzcF9jYWNfY29uZmlnIC0gY2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbiBjb25maWd1 cmF0aW9uCisgKgorICogVGhlIGNvcnJlY3Rpb24gaXMgY2FycmllZCBvdXQgYnkgc2hpZnRpbmcg dGhlIHJlZCBhbmQgYmx1ZSBwaXhlbHMgcmVsYXRpdmUKKyAqIHRvIHRoZSBncmVlbiBvbmVzLCBk ZXBlbmRpbmcgb24gdGhlIGRpc3RhbmNlIGZyb20gdGhlIG9wdGljYWwgY2VudGVyOgorICoKKyAq IEBoX2NvdW50X3N0YXJ0OiBob3Jpem9udGFsIGNvb3JkaW5hdGUgb2YgdGhlIG9wdGljYWwgY2Vu dGVyICgxMy1iaXQgdW5zaWduZWQgaW50ZWdlcjsgWzEsODE5MV0pCisgKiBAdl9jb3VudF9zdGFy dDogdmVydGljYWwgY29vcmRpbmF0ZSBvZiB0aGUgb3B0aWNhbCBjZW50ZXIgKDEzLWJpdCB1bnNp Z25lZCBpbnRlZ2VyOyBbMSw4MTkxXSkKKyAqCisgKiBGb3IgZWFjaCBwaXhlbCwgdGhlIHgveSBk aXN0YW5jZXMgZnJvbSB0aGUgb3B0aWNhbCBjZW50ZXIgYXJlIGNhbGN1bGF0ZWQgYW5kCisgKiB0 aGVuIHRyYW5zZm9ybWVkIGludG8gdGhlIFswLDI1NV0gcmFuZ2UgYmFzZWQgb24gdGhlIGZvbGxv d2luZyBmb3JtdWxhOgorICoKKyAqICAgKCgoZCA8PCA0KSA+PiBucykgKiBuZikgPj4gNQorICoK KyAqIHdoZXJlIGBkYCBpcyB0aGUgZGlzdGFuY2UsIGBuc2AgYW5kIGBuZmAgYXJlIHRoZSBub3Jt YWxpemF0aW9uIHBhcmFtZXRlcnM6CisgKgorICogQHhfbmY6IGhvcml6b250YWwgbm9ybWFsaXph dGlvbiBzY2FsZSBwYXJhbWV0ZXIgKDUtYml0IHVuc2lnbmVkIGludGVnZXI7IFswLDMxXSkKKyAq IEB4X25zOiBob3Jpem9udGFsIG5vcm1hbGl6YXRpb24gc2hpZnQgcGFyYW1ldGVyICg0LWJpdCB1 bnNpZ25lZCBpbnRlZ2VyOyBbMCwxNV0pCisgKgorICogQHlfbmY6IHZlcnRpY2FsIG5vcm1hbGl6 YXRpb24gc2NhbGUgcGFyYW1ldGVyICg1LWJpdCB1bnNpZ25lZCBpbnRlZ2VyOyBbMCwzMV0pCisg KiBAeV9uczogdmVydGljYWwgbm9ybWFsaXphdGlvbiBzaGlmdCBwYXJhbWV0ZXIgKDQtYml0IHVu c2lnbmVkIGludGVnZXI7IFswLDE1XSkKKyAqCisgKiBUaGVzZSBwYXJhbWV0ZXJzIHNob3VsZCBi ZSBjaG9zZW4gYmFzZWQgb24gdGhlIGltYWdlIHJlc29sdXRpb24sIHRoZSBwb3NpdGlvbgorICog b2YgdGhlIG9wdGljYWwgY2VudGVyLCBhbmQgdGhlIHNoYXBlIG9mIHBpeGVscywgc28gdGhhdCBu byBub3JtYWxpemVkIGRpc3RhbmNlCisgKiBpcyBsYXJnZXIgdGhhbiAyNTUuIElmIHRoZSBwaXhl bHMgaGF2ZSBzcXVhcmUgc2hhcGUsIHRoZSB0d28gc2V0cyBvZiBwYXJhbWV0ZXJzCisgKiBzaG91 bGQgYmUgZXF1YWwuCisgKgorICogVGhlIGFjdHVhbCBhbW91bnQgb2YgY29ycmVjdGlvbiBpcyBj YWxjdWxhdGVkIHdpdGggYSB0aGlyZCBkZWdyZWUgcG9seW5vbWlhbDoKKyAqCisgKiAgIGNbMF0g KiByICsgY1sxXSAqIHJeMiArIGNbMl0gKiByXjMKKyAqCisgKiB3aGVyZSBgY2AgaXMgdGhlIHNl dCBvZiBjb2VmZmljaWVudHMgZm9yIHRoZSBnaXZlbiBjb2xvciwgYW5kIGByYCBpcyBkaXN0YW5j ZToKKyAqCisgKiBAcmVkOiByZWQgY29lZmZpY2llbnRzICg1LjQgdHdvJ3MgY29tcGxlbWVudDsg Wy0xNiwxNS45Mzc1XSkKKyAqIEBibHVlOiBibHVlIGNvZWZmaWNpZW50cyAoNS40IHR3bydzIGNv bXBsZW1lbnQ7IFstMTYsMTUuOTM3NV0pCisgKgorICogRmluYWxseSwgdGhlIGFtb3VudCBpcyBj bGlwcGVkIGFzIHJlcXVlc3RlZDoKKyAqCisgKiBAaF9jbGlwX21vZGU6IG1heGltdW0gaG9yaXpv bnRhbCBzaGlmdCAoZnJvbSBlbnVtIHJraXNwMV9jaWZfaXNwX2NhY19oX2NsaXBfbW9kZSkKKyAq IEB2X2NsaXBfbW9kZTogbWF4aW11bSB2ZXJ0aWNhbCBzaGlmdCAoZnJvbSBlbnVtIHJraXNwMV9j aWZfaXNwX2NhY192X2NsaXBfbW9kZSkKKyAqCisgKiBBIHBvc2l0aXZlIHJlc3VsdCB3aWxsIHNo aWZ0IGF3YXkgZnJvbSB0aGUgb3B0aWNhbCBjZW50ZXIsIHdoaWxlIGEgbmVnYXRpdmUKKyAqIG9u ZSB3aWxsIHNoaWZ0IHRvd2FyZHMgdGhlIG9wdGljYWwgY2VudGVyLiBJbiB0aGUgbGF0dGVyIGNh c2UsIHRoZSBwaXhlbAorICogdmFsdWVzIGF0IHRoZSBlZGdlcyBhcmUgZHVwbGljYXRlZC4KKyAq Lworc3RydWN0IHJraXNwMV9jaWZfaXNwX2NhY19jb25maWcgeworCV9fdTggaF9jbGlwX21vZGU7 CisJX191OCB2X2NsaXBfbW9kZTsKKworCV9fdTE2IGhfY291bnRfc3RhcnQ7CisJX191MTYgdl9j b3VudF9zdGFydDsKKworCV9fdTE2IHJlZFszXTsKKwlfX3UxNiBibHVlWzNdOworCisJX191OCB4 X25mOworCV9fdTggeF9uczsKKworCV9fdTggeV9uZjsKKwlfX3U4IHlfbnM7Cit9OworCiAvKi0t LS0tLS0tLS0gUEFSVDI6IE1lYXN1cmVtZW50IFN0YXRpc3RpY3MgLS0tLS0tLS0tLS0tKi8KIAog LyoqCkBAIC0xMTM4LDYgKzEyMjQsNyBAQCBzdHJ1Y3Qgcmtpc3AxX3N0YXRfYnVmZmVyIHsKICAq IEBSS0lTUDFfRVhUX1BBUkFNU19CTE9DS19UWVBFX0NPTVBBTkRfRVhQQU5EOiBDb21wYW5kaW5n IGV4cGFuZCBjdXJ2ZQogICogQFJLSVNQMV9FWFRfUEFSQU1TX0JMT0NLX1RZUEVfQ09NUEFORF9D T01QUkVTUzogQ29tcGFuZGluZyBjb21wcmVzcyBjdXJ2ZQogICogQFJLSVNQMV9FWFRfUEFSQU1T X0JMT0NLX1RZUEVfV0RSOiBXaWRlIGR5bmFtaWMgcmFuZ2UKKyAqIEBSS0lTUDFfRVhUX1BBUkFN U19CTE9DS19UWVBFX0NBQzogQ2hyb21hdGljIGFiZXJyYXRpb24gY29ycmVjdGlvbgogICovCiBl bnVtIHJraXNwMV9leHRfcGFyYW1zX2Jsb2NrX3R5cGUgewogCVJLSVNQMV9FWFRfUEFSQU1TX0JM T0NLX1RZUEVfQkxTLApAQCAtMTE2MSw2ICsxMjQ4LDcgQEAgZW51bSBya2lzcDFfZXh0X3BhcmFt c19ibG9ja190eXBlIHsKIAlSS0lTUDFfRVhUX1BBUkFNU19CTE9DS19UWVBFX0NPTVBBTkRfRVhQ QU5ELAogCVJLSVNQMV9FWFRfUEFSQU1TX0JMT0NLX1RZUEVfQ09NUEFORF9DT01QUkVTUywKIAlS S0lTUDFfRVhUX1BBUkFNU19CTE9DS19UWVBFX1dEUiwKKwlSS0lTUDFfRVhUX1BBUkFNU19CTE9D S19UWVBFX0NBQywKIH07CiAKIC8qIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5ICovCkBAIC0x NTA3LDYgKzE1OTUsMjIgQEAgc3RydWN0IHJraXNwMV9leHRfcGFyYW1zX3dkcl9jb25maWcgewog CXN0cnVjdCBya2lzcDFfY2lmX2lzcF93ZHJfY29uZmlnIGNvbmZpZzsKIH0gX19hdHRyaWJ1dGVf XygoYWxpZ25lZCg4KSkpOwogCisvKioKKyAqIHN0cnVjdCBya2lzcDFfZXh0X3BhcmFtc19jYWNf Y29uZmlnIC0gUmtJU1AxIGV4dGVuc2libGUgcGFyYW1zIENBQyBjb25maWcKKyAqCisgKiBSa0lT UDEgZXh0ZW5zaWJsZSBwYXJhbWV0ZXJzIENBQyBibG9jay4KKyAqIElkZW50aWZpZWQgYnkgOmM6 dHlwZTpgUktJU1AxX0VYVF9QQVJBTVNfQkxPQ0tfVFlQRV9DQUNgLgorICoKKyAqIEBoZWFkZXI6 IFRoZSBSa0lTUDEgZXh0ZW5zaWJsZSBwYXJhbWV0ZXJzIGhlYWRlciwgc2VlCisgKgkgICAgOmM6 dHlwZTpgcmtpc3AxX2V4dF9wYXJhbXNfYmxvY2tfaGVhZGVyYAorICogQGNvbmZpZzogQ0FDIGNv bmZpZ3VyYXRpb24sIHNlZQorICoJICAgIDpjOnR5cGU6YHJraXNwMV9jaWZfaXNwX2NhY19jb25m aWdgCisgKi8KK3N0cnVjdCBya2lzcDFfZXh0X3BhcmFtc19jYWNfY29uZmlnIHsKKwlzdHJ1Y3Qg cmtpc3AxX2V4dF9wYXJhbXNfYmxvY2tfaGVhZGVyIGhlYWRlcjsKKwlzdHJ1Y3Qgcmtpc3AxX2Np Zl9pc3BfY2FjX2NvbmZpZyBjb25maWc7Cit9IF9fYXR0cmlidXRlX18oKGFsaWduZWQoOCkpKTsK KwogLyoKICAqIFRoZSBya2lzcDFfZXh0X3BhcmFtc19jb21wYW5kX2N1cnZlX2NvbmZpZyBzdHJ1 Y3R1cmUgaXMgY291bnRlZCB0d2ljZSBhcyBpdAogICogaXMgdXNlZCBmb3IgYm90aCB0aGUgQ09N UEFORF9FWFBBTkQgYW5kIENPTVBBTkRfQ09NUFJFU1MgYmxvY2sgdHlwZXMuCkBAIC0xNTMyLDcg KzE2MzYsOCBAQCBzdHJ1Y3Qgcmtpc3AxX2V4dF9wYXJhbXNfd2RyX2NvbmZpZyB7CiAJc2l6ZW9m KHN0cnVjdCBya2lzcDFfZXh0X3BhcmFtc19jb21wYW5kX2Jsc19jb25maWcpCQkrXAogCXNpemVv ZihzdHJ1Y3Qgcmtpc3AxX2V4dF9wYXJhbXNfY29tcGFuZF9jdXJ2ZV9jb25maWcpCQkrXAogCXNp emVvZihzdHJ1Y3Qgcmtpc3AxX2V4dF9wYXJhbXNfY29tcGFuZF9jdXJ2ZV9jb25maWcpCQkrXAot CXNpemVvZihzdHJ1Y3Qgcmtpc3AxX2V4dF9wYXJhbXNfd2RyX2NvbmZpZykpCisJc2l6ZW9mKHN0 cnVjdCBya2lzcDFfZXh0X3BhcmFtc193ZHJfY29uZmlnKQkJCStcCisJc2l6ZW9mKHN0cnVjdCBy a2lzcDFfZXh0X3BhcmFtc19jYWNfY29uZmlnKSkKIAogLyoqCiAgKiBlbnVtIHJrc2lwMV9leHRf cGFyYW1fYnVmZmVyX3ZlcnNpb24gLSBSa0lTUDEgZXh0ZW5zaWJsZSBwYXJhbWV0ZXJzIHZlcnNp b24KLS0gCjIuNTQuMAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJvY2tjaGlwCg==