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 0B960C433EF for ; Fri, 11 Mar 2022 14:46:56 +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=nk1ntpmeo4nDAE+nAxm35x7LYyj+ZZom6/7ojY7OIaI=; b=gGve5GSZHmFH+r 8Zb7isYrN5nK0sC4wjn+c1yNxUEw3vkEsn8nYVChco2vzAX5uixZoE/ISPkQqUGtDPRkDIi26O0e8 +pLd3+GMvH9VM3eTgz/hS/CuFGyC+a3Jv1XQtoi5xs8wpyILP00lmBmrIXmeyEKneGjiLX/avoZLr g0GhE930PMAev275e8ExWtiYB5u8kf/5+knRW1JlGQloQT7ZxHxulGlhmoZj+1Dfa0+y5IfFt6Wvg X/vlxoc+vSg/bmFLb3OlbjvjJPTc0n2y+pRVBpnZLXepZOwoGTY0cFZOh6QqWFodpFmmoacO9QL/Q Cxj3qQWU2lXpTv2idmBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nSgW3-00GsVo-GE; Fri, 11 Mar 2022 14:45:17 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nSgNO-00Go21-UD for linux-arm-kernel@lists.infradead.org; Fri, 11 Mar 2022 14:36:28 +0000 Received: (Authenticated sender: paul.kocialkowski@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 06649240002; Fri, 11 Mar 2022 14:36:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1647009377; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/XaOP5cfuMYE4MOsQkkGrTw9LUal67MMVnPcFv9G0F4=; b=i0Uezjawxy8LT70SFwFlR1FxHoeMcTAYjbrTDTvfTC1idry87ET4HHjpIR9mWkoo8KNUp5 eDs+ZK9C7+XE6YRSUYOYRWKvyrY1chhSj3S63bITBFJLL//kjH5HuU+yEbuuvHGKX8V1vq 0QUYCFZrQDOEK3gLXw3sUN+ix7HXLSty1eyqOKGj5HsWj1K4Z09bXd743p1b2lnhLCDwrL 1ynNK2mMdM3pGc+IvRkOOdfye+gX0L5fKllnce9X42YQegIuF7MdV1wH3T+GdNDmqv7I0O gxPK9Bio6MWOTsPQxjC/k0CnEqlQKzf3pJYDqnvPl1JprGrXm2h2RKFRap5OTw== From: Paul Kocialkowski To: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev Cc: Yong Deng , Paul Kocialkowski , Mauro Carvalho Chehab , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laurent Pinchart , Maxime Ripard , Thomas Petazzoni Subject: [PATCH v3 18/46] media: sun6i-csi: Add capture state using vsync for page flip Date: Fri, 11 Mar 2022 15:35:04 +0100 Message-Id: <20220311143532.265091-19-paul.kocialkowski@bootlin.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220311143532.265091-1-paul.kocialkowski@bootlin.com> References: <20220311143532.265091-1-paul.kocialkowski@bootlin.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220311_063619_312455_A121772F X-CRM114-Status: GOOD ( 34.04 ) 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 VGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gcmVxdWlyZXMgdXAgdG8gMyBidWZmZXJzIHRvIHBy b3Blcmx5CmltcGxlbWVudCBwYWdlIGZsaXBwaW5nIHdpdGhvdXQgbG9zaW5nIGZyYW1lczogb25l IGlzIGNvbmZpZ3VyZWQKYmVmb3JlIHRoZSB2aWRlbyBzdHJlYW0gaXMgc3RhcnRlZCwgb25lIGp1 c3QgYWZ0ZXIgdGhhdCBhbmQgcGFnZQpmbGlwcGluZyBpcyBzeW5jaHJvbml6ZWQgdG8gdGhlIGZy YW1lIGRvbmUgaW50ZXJydXB0LiBUaGUgY29tbWVudCBpbgp0aGUgY29kZSBtZW50aW9ucyB0aGF0 ICJDU0kgd2lsbCBsb29rdXAgdGhlIG5leHQgZG1hIGJ1ZmZlciBmb3IgbmV4dApmcmFtZSBiZWZv cmUgdGhlIGN1cnJlbnQgZnJhbWUgZG9uZSBJUlEgdHJpZ2dlcmVkIi4KCkJhc2VkIG9uIG9ic2Vy dmF0aW9ucyBvZiB0aGUgQ1NJIHVuaXQgYmVoYXZpb3IsIGl0IHNlZW1zIHRoYXQgdGhlCmJ1ZmZl ciBETUEgYWRkcmVzcyBpcyBzYW1wbGVkIHdoZW4gdGhlIGZyYW1lIHNjYW4gYmVnaW5zIChpbiBh ZGRpdGlvbgp0byBzdGFydGluZyB0aGUgc3RyZWFtKSwgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhl IHZibGFuayBpbnRlcnJ1cHQKdGhhdCBoaXRzIGp1c3QgYmVmb3JlIHRoZSBmcmFtZS1kb25lIGlu dGVycnVwdCBvZiB0aGUgcHJldmlvdXMgZnJhbWUuCgpBcyBhIHJlc3VsdCwgdGhlIGFkZHJlc3Mg Y29uZmlndXJlZCBhdCB0aGUgZnJhbWUgZG9uZSBpbnRlcnJ1cHQgaXMgbm90CmFjdHVhbGx5IHVz ZWQgZm9yIHRoZSBuZXh0IGZyYW1lIGJ1dCBmb3IgdGhlIG9uZSBhZnRlciB0aGF0LgoKVGhpcyBw cm9wb3NhbCBjaGFuZ2VzIHRoZSBwYWdlIGZsaXBwaW5nIHN5bmMgcG9pbnQgdG8gdGhlIHZzeW5j CmludGVycnVwdCwgd2hpY2ggYWxsb3dzIHRoZSBETUEgYWRkcmVzcyB0byBiZSBzYW1wbGVkIGZv ciB0aGUgbmV4dApmcmFtZSBpbnN0ZWFkIGFuZCBhbGxvd3Mgb3BlcmF0aW5nIHdpdGggb25seSB0 d28gYnVmZmVycy4KCkluIGFkZGl0aW9uIHRvIHRoZSBjaGFuZ2UgaW4gdGhlIHN5bmMgcG9pbnQs IHRoZSBjb2RlIGlzIHJlZmFjdG9yZWQKdG8gaW50cm9kdWNlIGEgbm90aW9uIG9mIHN0YXRlIHRo YXQgY2xhcmlmaWVzIHRyYWNraW5nIG9mIHRoZSBidWZmZXJzCndpdGggdGlkeSBmdW5jdGlvbnMu CgpTaWduZWQtb2ZmLWJ5OiBQYXVsIEtvY2lhbGtvd3NraSA8cGF1bC5rb2NpYWxrb3dza2lAYm9v dGxpbi5jb20+Ci0tLQogLi4uL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuYyAg ICAgIHwgICA0ICsKIC4uLi9wbGF0Zm9ybS9zdW54aS9zdW42aS1jc2kvc3VuNmlfY3NpLmggICAg ICB8ICAgMyAtCiAuLi4vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaV9jYXB0dXJlLmMgICAgICAg fCAyNTkgKysrKysrKysrKy0tLS0tLS0tCiAuLi4vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaV9j YXB0dXJlLmggICAgICAgfCAgMjMgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMo KyksIDEyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vc3Vu eGkvc3VuNmktY3NpL3N1bjZpX2NzaS5jCmluZGV4IDAyMTcwNWZiYjdlZC4uNjlhNTEwMDE0ZDQy IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42 aV9jc2kuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42 aV9jc2kuYwpAQCAtNTY2LDYgKzU2Niw3IEBAIHZvaWQgc3VuNmlfY3NpX3NldF9zdHJlYW0oc3Ry dWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYsIGJvb2wgZW5hYmxlKQogCiAJcmVnbWFwX3dy aXRlKHJlZ21hcCwgQ1NJX0NIX0lOVF9TVEFfUkVHLCAweEZGKTsKIAlyZWdtYXBfd3JpdGUocmVn bWFwLCBDU0lfQ0hfSU5UX0VOX1JFRywKKwkJICAgICBDU0lfQ0hfSU5UX0VOX1ZTX0lOVF9FTiB8 CiAJCSAgICAgQ1NJX0NIX0lOVF9FTl9IQl9PRl9JTlRfRU4gfAogCQkgICAgIENTSV9DSF9JTlRf RU5fRklGTzJfT0ZfSU5UX0VOIHwKIAkJICAgICBDU0lfQ0hfSU5UX0VOX0ZJRk8xX09GX0lOVF9F TiB8CkBAIC02NzksNiArNjgwLDkgQEAgc3RhdGljIGlycXJldHVybl90IHN1bjZpX2NzaV9pc3Io aW50IGlycSwgdm9pZCAqcHJpdmF0ZSkKIAlpZiAoc3RhdHVzICYgQ1NJX0NIX0lOVF9TVEFfRkRf UEQpCiAJCXN1bjZpX2NzaV9jYXB0dXJlX2ZyYW1lX2RvbmUoY3NpX2Rldik7CiAKKwlpZiAoc3Rh dHVzICYgQ1NJX0NIX0lOVF9TVEFfVlNfUEQpCisJCXN1bjZpX2NzaV9jYXB0dXJlX3N5bmMoY3Np X2Rldik7CisKIAlyZWdtYXBfd3JpdGUocmVnbWFwLCBDU0lfQ0hfSU5UX1NUQV9SRUcsIHN0YXR1 cyk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2kuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaS5oCmluZGV4IDJmOTBlNTBkNDU2ZC4uYjdlNTE0 NDdhY2NiIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNz aS9zdW42aV9jc2kuaAorKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1bnhpL3N1bjZpLWNz aS9zdW42aV9jc2kuaApAQCAtMjYsOSArMjYsNiBAQCBlbnVtIHN1bjZpX2NzaV9wb3J0IHsKIHN0 cnVjdCBzdW42aV9jc2lfYnVmZmVyIHsKIAlzdHJ1Y3QgdmIyX3Y0bDJfYnVmZmVyCQl2NGwyX2J1 ZmZlcjsKIAlzdHJ1Y3QgbGlzdF9oZWFkCQlsaXN0OwotCi0JZG1hX2FkZHJfdAkJCWRtYV9hZGRy OwotCWJvb2wJCQkJcXVldWVkX3RvX2NzaTsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9zdW54aS9zdW42aS1jc2kvc3VuNmlfY3NpX2NhcHR1cmUuYyBiL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaV9jYXB0dXJlLmMK aW5kZXggMWViYzJkODI1ODM4Li5iY2JiNGZmYmI1MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaV9jYXB0dXJlLmMKKysrIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9zdW54aS9zdW42aS1jc2kvc3VuNmlfY3NpX2NhcHR1cmUuYwpA QCAtOTAsOCArOTAsMTMgQEAgc3RhdGljIHZvaWQKIHN1bjZpX2NzaV9jYXB0dXJlX2J1ZmZlcl9j b25maWd1cmUoc3RydWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYsCiAJCQkJICAgc3RydWN0 IHN1bjZpX2NzaV9idWZmZXIgKmNzaV9idWZmZXIpCiB7Ci0JY3NpX2J1ZmZlci0+cXVldWVkX3Rv X2NzaSA9IHRydWU7Ci0Jc3VuNmlfY3NpX3VwZGF0ZV9idWZfYWRkcihjc2lfZGV2LCBjc2lfYnVm ZmVyLT5kbWFfYWRkcik7CisJc3RydWN0IHZiMl9idWZmZXIgKnZiMl9idWZmZXI7CisJZG1hX2Fk ZHJfdCBhZGRyZXNzOworCisJdmIyX2J1ZmZlciA9ICZjc2lfYnVmZmVyLT52NGwyX2J1ZmZlci52 YjJfYnVmOworCWFkZHJlc3MgPSB2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcih2YjJfYnVm ZmVyLCAwKTsKKworCXN1bjZpX2NzaV91cGRhdGVfYnVmX2FkZHIoY3NpX2RldiwgYWRkcmVzcyk7 CiB9CiAKIHN0YXRpYyB2b2lkIHN1bjZpX2NzaV9jYXB0dXJlX2NvbmZpZ3VyZShzdHJ1Y3Qgc3Vu NmlfY3NpX2RldmljZSAqY3NpX2RldikKQEAgLTEwOCw2ICsxMTMsMTE5IEBAIHN0YXRpYyB2b2lk IHN1bjZpX2NzaV9jYXB0dXJlX2NvbmZpZ3VyZShzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3Np X2RldikKIAlzdW42aV9jc2lfdXBkYXRlX2NvbmZpZyhjc2lfZGV2LCAmY29uZmlnKTsKIH0KIAor LyogU3RhdGUgKi8KKworc3RhdGljIHZvaWQgc3VuNmlfY3NpX2NhcHR1cmVfc3RhdGVfY2xlYW51 cChzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3NpX2RldiwKKwkJCQkJICAgIGJvb2wgZXJyb3Ip Cit7CisJc3RydWN0IHN1bjZpX2NzaV9jYXB0dXJlX3N0YXRlICpzdGF0ZSA9ICZjc2lfZGV2LT5j YXB0dXJlLnN0YXRlOworCXN0cnVjdCBzdW42aV9jc2lfYnVmZmVyICoqY3NpX2J1ZmZlcl9zdGF0 ZXNbXSA9IHsKKwkJJnN0YXRlLT5wZW5kaW5nLCAmc3RhdGUtPmN1cnJlbnQsICZzdGF0ZS0+Y29t cGxldGUsCisJfTsKKwlzdHJ1Y3Qgc3VuNmlfY3NpX2J1ZmZlciAqY3NpX2J1ZmZlcjsKKwlzdHJ1 Y3QgdmIyX2J1ZmZlciAqdmIyX2J1ZmZlcjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2ln bmVkIGludCBpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0YXRlLT5sb2NrLCBmbGFncyk7CisK Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjc2lfYnVmZmVyX3N0YXRlcyk7IGkrKykgewor CQljc2lfYnVmZmVyID0gKmNzaV9idWZmZXJfc3RhdGVzW2ldOworCQlpZiAoIWNzaV9idWZmZXIp CisJCQljb250aW51ZTsKKworCQl2YjJfYnVmZmVyID0gJmNzaV9idWZmZXItPnY0bDJfYnVmZmVy LnZiMl9idWY7CisJCXZiMl9idWZmZXJfZG9uZSh2YjJfYnVmZmVyLCBlcnJvciA/IFZCMl9CVUZf U1RBVEVfRVJST1IgOgorCQkJCVZCMl9CVUZfU1RBVEVfUVVFVUVEKTsKKworCQkqY3NpX2J1ZmZl cl9zdGF0ZXNbaV0gPSBOVUxMOworCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY3NpX2J1ZmZl ciwgJnN0YXRlLT5xdWV1ZSwgbGlzdCkgeworCQl2YjJfYnVmZmVyID0gJmNzaV9idWZmZXItPnY0 bDJfYnVmZmVyLnZiMl9idWY7CisJCXZiMl9idWZmZXJfZG9uZSh2YjJfYnVmZmVyLCBlcnJvciA/ IFZCMl9CVUZfU1RBVEVfRVJST1IgOgorCQkJCVZCMl9CVUZfU1RBVEVfUVVFVUVEKTsKKwl9CisK KwlJTklUX0xJU1RfSEVBRCgmc3RhdGUtPnF1ZXVlKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnN0YXRlLT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHN1bjZpX2NzaV9jYXB0 dXJlX3N0YXRlX3VwZGF0ZShzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3NpX2RldikKK3sKKwlz dHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmVfc3RhdGUgKnN0YXRlID0gJmNzaV9kZXYtPmNhcHR1cmUu c3RhdGU7CisJc3RydWN0IHN1bjZpX2NzaV9idWZmZXIgKmNzaV9idWZmZXI7CisJdW5zaWduZWQg bG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZzdGF0ZS0+bG9jaywgZmxhZ3MpOwor CisJaWYgKGxpc3RfZW1wdHkoJnN0YXRlLT5xdWV1ZSkpCisJCWdvdG8gY29tcGxldGU7CisKKwlp ZiAoc3RhdGUtPnBlbmRpbmcpCisJCWdvdG8gY29tcGxldGU7CisKKwljc2lfYnVmZmVyID0gbGlz dF9maXJzdF9lbnRyeSgmc3RhdGUtPnF1ZXVlLCBzdHJ1Y3Qgc3VuNmlfY3NpX2J1ZmZlciwKKwkJ CQkgICAgICBsaXN0KTsKKworCXN1bjZpX2NzaV9jYXB0dXJlX2J1ZmZlcl9jb25maWd1cmUoY3Np X2RldiwgY3NpX2J1ZmZlcik7CisKKwlsaXN0X2RlbCgmY3NpX2J1ZmZlci0+bGlzdCk7CisKKwlz dGF0ZS0+cGVuZGluZyA9IGNzaV9idWZmZXI7CisKK2NvbXBsZXRlOgorCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnN0YXRlLT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHN1bjZpX2Nz aV9jYXB0dXJlX3N0YXRlX2NvbXBsZXRlKHN0cnVjdCBzdW42aV9jc2lfZGV2aWNlICpjc2lfZGV2 KQoreworCXN0cnVjdCBzdW42aV9jc2lfY2FwdHVyZV9zdGF0ZSAqc3RhdGUgPSAmY3NpX2Rldi0+ Y2FwdHVyZS5zdGF0ZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNh dmUoJnN0YXRlLT5sb2NrLCBmbGFncyk7CisKKwlpZiAoIXN0YXRlLT5wZW5kaW5nKQorCQlnb3Rv IGNvbXBsZXRlOworCisJc3RhdGUtPmNvbXBsZXRlID0gc3RhdGUtPmN1cnJlbnQ7CisJc3RhdGUt PmN1cnJlbnQgPSBzdGF0ZS0+cGVuZGluZzsKKwlzdGF0ZS0+cGVuZGluZyA9IE5VTEw7CisKKwlp ZiAoc3RhdGUtPmNvbXBsZXRlKSB7CisJCXN0cnVjdCBzdW42aV9jc2lfYnVmZmVyICpjc2lfYnVm ZmVyID0gc3RhdGUtPmNvbXBsZXRlOworCQlzdHJ1Y3QgdmIyX2J1ZmZlciAqdmIyX2J1ZmZlciA9 CisJCQkmY3NpX2J1ZmZlci0+djRsMl9idWZmZXIudmIyX2J1ZjsKKworCQl2YjJfYnVmZmVyLT50 aW1lc3RhbXAgPSBrdGltZV9nZXRfbnMoKTsKKwkJY3NpX2J1ZmZlci0+djRsMl9idWZmZXIuc2Vx dWVuY2UgPSBzdGF0ZS0+c2VxdWVuY2U7CisKKwkJdmIyX2J1ZmZlcl9kb25lKHZiMl9idWZmZXIs IFZCMl9CVUZfU1RBVEVfRE9ORSk7CisKKwkJc3RhdGUtPmNvbXBsZXRlID0gTlVMTDsKKwl9CisK K2NvbXBsZXRlOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0YXRlLT5sb2NrLCBmbGFncyk7 Cit9CisKK3ZvaWQgc3VuNmlfY3NpX2NhcHR1cmVfZnJhbWVfZG9uZShzdHJ1Y3Qgc3VuNmlfY3Np X2RldmljZSAqY3NpX2RldikKK3sKKwlzdHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmVfc3RhdGUgKnN0 YXRlID0gJmNzaV9kZXYtPmNhcHR1cmUuc3RhdGU7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwor CXNwaW5fbG9ja19pcnFzYXZlKCZzdGF0ZS0+bG9jaywgZmxhZ3MpOworCXN0YXRlLT5zZXF1ZW5j ZSsrOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0YXRlLT5sb2NrLCBmbGFncyk7Cit9CisK K3ZvaWQgc3VuNmlfY3NpX2NhcHR1cmVfc3luYyhzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3Np X2RldikKK3sKKwlzdW42aV9jc2lfY2FwdHVyZV9zdGF0ZV9jb21wbGV0ZShjc2lfZGV2KTsKKwlz dW42aV9jc2lfY2FwdHVyZV9zdGF0ZV91cGRhdGUoY3NpX2Rldik7Cit9CisKIC8qIFF1ZXVlICov CiAKIHN0YXRpYyBpbnQgc3VuNmlfY3NpX2NhcHR1cmVfcXVldWVfc2V0dXAoc3RydWN0IHZiMl9x dWV1ZSAqcXVldWUsCkBAIC0xMTcsOCArMjM1LDcgQEAgc3RhdGljIGludCBzdW42aV9jc2lfY2Fw dHVyZV9xdWV1ZV9zZXR1cChzdHJ1Y3QgdmIyX3F1ZXVlICpxdWV1ZSwKIAkJCQkJIHN0cnVjdCBk ZXZpY2UgKmFsbG9jX2RldnNbXSkKIHsKIAlzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3NpX2Rl diA9IHZiMl9nZXRfZHJ2X3ByaXYocXVldWUpOwotCXN0cnVjdCBzdW42aV9jc2lfY2FwdHVyZSAq Y2FwdHVyZSA9ICZjc2lfZGV2LT5jYXB0dXJlOwotCXVuc2lnbmVkIGludCBzaXplID0gY2FwdHVy ZS0+Zm9ybWF0LmZtdC5waXguc2l6ZWltYWdlOworCXVuc2lnbmVkIGludCBzaXplID0gY3NpX2Rl di0+Y2FwdHVyZS5mb3JtYXQuZm10LnBpeC5zaXplaW1hZ2U7CiAKIAlpZiAoKnBsYW5lc19jb3Vu dCkKIAkJcmV0dXJuIHNpemVzWzBdIDwgc2l6ZSA/IC1FSU5WQUwgOiAwOwpAQCAtMTM1LDggKzI1 Miw2IEBAIHN0YXRpYyBpbnQgc3VuNmlfY3NpX2NhcHR1cmVfYnVmZmVyX3ByZXBhcmUoc3RydWN0 IHZiMl9idWZmZXIgKmJ1ZmZlcikKIAlzdHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmUgKmNhcHR1cmUg PSAmY3NpX2Rldi0+Y2FwdHVyZTsKIAlzdHJ1Y3QgdjRsMl9kZXZpY2UgKnY0bDJfZGV2ID0gJmNz aV9kZXYtPnY0bDIudjRsMl9kZXY7CiAJc3RydWN0IHZiMl92NGwyX2J1ZmZlciAqdjRsMl9idWZm ZXIgPSB0b192YjJfdjRsMl9idWZmZXIoYnVmZmVyKTsKLQlzdHJ1Y3Qgc3VuNmlfY3NpX2J1ZmZl ciAqY3NpX2J1ZmZlciA9Ci0JCWNvbnRhaW5lcl9vZih2NGwyX2J1ZmZlciwgc3RydWN0IHN1bjZp X2NzaV9idWZmZXIsIHY0bDJfYnVmZmVyKTsKIAl1bnNpZ25lZCBsb25nIHNpemUgPSBjYXB0dXJl LT5mb3JtYXQuZm10LnBpeC5zaXplaW1hZ2U7CiAKIAlpZiAodmIyX3BsYW5lX3NpemUoYnVmZmVy LCAwKSA8IHNpemUpIHsKQEAgLTE0Nyw3ICsyNjIsNiBAQCBzdGF0aWMgaW50IHN1bjZpX2NzaV9j YXB0dXJlX2J1ZmZlcl9wcmVwYXJlKHN0cnVjdCB2YjJfYnVmZmVyICpidWZmZXIpCiAKIAl2YjJf c2V0X3BsYW5lX3BheWxvYWQoYnVmZmVyLCAwLCBzaXplKTsKIAotCWNzaV9idWZmZXItPmRtYV9h ZGRyID0gdmIyX2RtYV9jb250aWdfcGxhbmVfZG1hX2FkZHIoYnVmZmVyLCAwKTsKIAl2NGwyX2J1 ZmZlci0+ZmllbGQgPSBjYXB0dXJlLT5mb3JtYXQuZm10LnBpeC5maWVsZDsKIAogCXJldHVybiAw OwpAQCAtMTU2LDE2ICsyNzAsMTUgQEAgc3RhdGljIGludCBzdW42aV9jc2lfY2FwdHVyZV9idWZm ZXJfcHJlcGFyZShzdHJ1Y3QgdmIyX2J1ZmZlciAqYnVmZmVyKQogc3RhdGljIHZvaWQgc3VuNmlf Y3NpX2NhcHR1cmVfYnVmZmVyX3F1ZXVlKHN0cnVjdCB2YjJfYnVmZmVyICpidWZmZXIpCiB7CiAJ c3RydWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYgPSB2YjJfZ2V0X2Rydl9wcml2KGJ1ZmZl ci0+dmIyX3F1ZXVlKTsKLQlzdHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmUgKmNhcHR1cmUgPSAmY3Np X2Rldi0+Y2FwdHVyZTsKKwlzdHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmVfc3RhdGUgKnN0YXRlID0g JmNzaV9kZXYtPmNhcHR1cmUuc3RhdGU7CiAJc3RydWN0IHZiMl92NGwyX2J1ZmZlciAqdjRsMl9i dWZmZXIgPSB0b192YjJfdjRsMl9idWZmZXIoYnVmZmVyKTsKIAlzdHJ1Y3Qgc3VuNmlfY3NpX2J1 ZmZlciAqY3NpX2J1ZmZlciA9CiAJCWNvbnRhaW5lcl9vZih2NGwyX2J1ZmZlciwgc3RydWN0IHN1 bjZpX2NzaV9idWZmZXIsIHY0bDJfYnVmZmVyKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0J c3Bpbl9sb2NrX2lycXNhdmUoJmNhcHR1cmUtPmRtYV9xdWV1ZV9sb2NrLCBmbGFncyk7Ci0JY3Np X2J1ZmZlci0+cXVldWVkX3RvX2NzaSA9IGZhbHNlOwotCWxpc3RfYWRkX3RhaWwoJmNzaV9idWZm ZXItPmxpc3QsICZjYXB0dXJlLT5kbWFfcXVldWUpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmNhcHR1cmUtPmRtYV9xdWV1ZV9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0 YXRlLT5sb2NrLCBmbGFncyk7CisJbGlzdF9hZGRfdGFpbCgmY3NpX2J1ZmZlci0+bGlzdCwgJnN0 YXRlLT5xdWV1ZSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RhdGUtPmxvY2ssIGZsYWdz KTsKIH0KIAogc3RhdGljIGludCBzdW42aV9jc2lfY2FwdHVyZV9zdGFydF9zdHJlYW1pbmcoc3Ry dWN0IHZiMl9xdWV1ZSAqcXVldWUsCkBAIC0xNzMsMTggKzI4NiwxNiBAQCBzdGF0aWMgaW50IHN1 bjZpX2NzaV9jYXB0dXJlX3N0YXJ0X3N0cmVhbWluZyhzdHJ1Y3QgdmIyX3F1ZXVlICpxdWV1ZSwK IHsKIAlzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3NpX2RldiA9IHZiMl9nZXRfZHJ2X3ByaXYo cXVldWUpOwogCXN0cnVjdCBzdW42aV9jc2lfY2FwdHVyZSAqY2FwdHVyZSA9ICZjc2lfZGV2LT5j YXB0dXJlOworCXN0cnVjdCBzdW42aV9jc2lfY2FwdHVyZV9zdGF0ZSAqc3RhdGUgPSAmY2FwdHVy ZS0+c3RhdGU7CiAJc3RydWN0IHZpZGVvX2RldmljZSAqdmlkZW9fZGV2ID0gJmNhcHR1cmUtPnZp ZGVvX2RldjsKLQlzdHJ1Y3Qgc3VuNmlfY3NpX2J1ZmZlciAqYnVmOwotCXN0cnVjdCBzdW42aV9j c2lfYnVmZmVyICpuZXh0X2J1ZjsKIAlzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldjsKLQl1bnNp Z25lZCBsb25nIGZsYWdzOwogCWludCByZXQ7CiAKLQljYXB0dXJlLT5zZXF1ZW5jZSA9IDA7CisJ c3RhdGUtPnNlcXVlbmNlID0gMDsKIAogCXJldCA9IG1lZGlhX3BpcGVsaW5lX3N0YXJ0KCZ2aWRl b19kZXYtPmVudGl0eSwgJnZpZGVvX2Rldi0+cGlwZSk7CiAJaWYgKHJldCA8IDApCi0JCWdvdG8g ZXJyb3JfZG1hX3F1ZXVlX2ZsdXNoOworCQlnb3RvIGVycm9yX3N0YXRlOwogCiAJaWYgKGNhcHR1 cmUtPm1idXNfY29kZSA9PSAwKSB7CiAJCXJldCA9IC1FSU5WQUw7CkBAIC0xOTcsMzcgKzMwOCwx NyBAQCBzdGF0aWMgaW50IHN1bjZpX2NzaV9jYXB0dXJlX3N0YXJ0X3N0cmVhbWluZyhzdHJ1Y3Qg dmIyX3F1ZXVlICpxdWV1ZSwKIAkJZ290byBlcnJvcl9tZWRpYV9waXBlbGluZTsKIAl9CiAKKwkv KiBDb25maWd1cmUgKi8KKwogCXN1bjZpX2NzaV9jYXB0dXJlX2NvbmZpZ3VyZShjc2lfZGV2KTsK IAotCXNwaW5fbG9ja19pcnFzYXZlKCZjYXB0dXJlLT5kbWFfcXVldWVfbG9jaywgZmxhZ3MpOwor CS8qIFN0YXRlIFVwZGF0ZSAqLwogCi0JYnVmID0gbGlzdF9maXJzdF9lbnRyeSgmY2FwdHVyZS0+ ZG1hX3F1ZXVlLAotCQkJICAgICAgIHN0cnVjdCBzdW42aV9jc2lfYnVmZmVyLCBsaXN0KTsKLQlz dW42aV9jc2lfY2FwdHVyZV9idWZmZXJfY29uZmlndXJlKGNzaV9kZXYsIGJ1Zik7CisJc3VuNmlf Y3NpX2NhcHR1cmVfc3RhdGVfdXBkYXRlKGNzaV9kZXYpOwogCi0Jc3VuNmlfY3NpX3NldF9zdHJl YW0oY3NpX2RldiwgdHJ1ZSk7CisJLyogRW5hYmxlICovCiAKLQkvKgotCSAqIENTSSB3aWxsIGxv b2t1cCB0aGUgbmV4dCBkbWEgYnVmZmVyIGZvciBuZXh0IGZyYW1lIGJlZm9yZSB0aGUKLQkgKiB0 aGUgY3VycmVudCBmcmFtZSBkb25lIElSUSB0cmlnZ2VyZWQuIFRoaXMgaXMgbm90IGRvY3VtZW50 ZWQKLQkgKiBidXQgcmVwb3J0ZWQgYnkgT25kxZllaiBKaXJtYW4uCi0JICogVGhlIEJTUCBjb2Rl IGhhcyB3b3JrYXJvdW5kIGZvciB0aGlzIHRvby4gSXQgc2tpcCB0byBtYXJrIHRoZQotCSAqIGZp cnN0IGJ1ZmZlciBhcyBmcmFtZSBkb25lIGZvciBWQjIgYW5kIHBhc3MgdGhlIHNlY29uZCBidWZm ZXIKLQkgKiB0byBDU0kgaW4gdGhlIGZpcnN0IGZyYW1lIGRvbmUgSVNSIGNhbGwuIFRoZW4gaW4g c2Vjb25kIGZyYW1lCi0JICogZG9uZSBJU1IgY2FsbCwgaXQgbWFyayB0aGUgZmlyc3QgYnVmZmVy IGFzIGZyYW1lIGRvbmUgZm9yIFZCMgotCSAqIGFuZCBwYXNzIHRoZSB0aGlyZCBidWZmZXIgdG8g Q1NJLiBBbmQgc28gb24uIFRoZSBiYWQgdGhpbmcgaXMKLQkgKiB0aGF0IHRoZSBmaXJzdCBidWZm ZXIgd2lsbCBiZSB3cml0dGVuIHR3aWNlIGFuZCB0aGUgZmlyc3QgZnJhbWUKLQkgKiBpcyBkcm9w cGVkIGV2ZW4gdGhlIHF1ZXVlZCBidWZmZXIgaXMgc3VmZmljaWVudC4KLQkgKiBTbywgSSBtYWtl IHNvbWUgaW1wcm92ZW1lbnQgaGVyZS4gUGFzcyB0aGUgbmV4dCBidWZmZXIgdG8gQ1NJCi0JICog anVzdCBmb2xsb3cgc3RhcnRpbmcgdGhlIENTSS4gSW4gdGhpcyBjYXNlLCB0aGUgZmlyc3QgZnJh bWUKLQkgKiB3aWxsIGJlIHN0b3JlZCBpbiBmaXJzdCBidWZmZXIsIHNlY29uZCBmcmFtZSBpbiBz ZWNvbmQgYnVmZmVyLgotCSAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gYXZvaWQgZHJvcHBpbmcg dGhlIGZpcnN0IGZyYW1lLCBpdAotCSAqIHdvdWxkIGFsc28gZHJvcCBmcmFtZSB3aGVuIGxhY2tp bmcgb2YgcXVldWVkIGJ1ZmZlci4KLQkgKi8KLQluZXh0X2J1ZiA9IGxpc3RfbmV4dF9lbnRyeShi dWYsIGxpc3QpOwotCXN1bjZpX2NzaV9jYXB0dXJlX2J1ZmZlcl9jb25maWd1cmUoY3NpX2Rldiwg bmV4dF9idWYpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2FwdHVyZS0+ZG1hX3F1ZXVl X2xvY2ssIGZsYWdzKTsKKwlzdW42aV9jc2lfc2V0X3N0cmVhbShjc2lfZGV2LCB0cnVlKTsKIAog CXJldCA9IHY0bDJfc3ViZGV2X2NhbGwoc3ViZGV2LCB2aWRlbywgc19zdHJlYW0sIDEpOwogCWlm IChyZXQgJiYgcmV0ICE9IC1FTk9JT0NUTENNRCkKQEAgLTI0MSwxMyArMzMyLDggQEAgc3RhdGlj IGludCBzdW42aV9jc2lfY2FwdHVyZV9zdGFydF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAq cXVldWUsCiBlcnJvcl9tZWRpYV9waXBlbGluZToKIAltZWRpYV9waXBlbGluZV9zdG9wKCZ2aWRl b19kZXYtPmVudGl0eSk7CiAKLWVycm9yX2RtYV9xdWV1ZV9mbHVzaDoKLQlzcGluX2xvY2tfaXJx c2F2ZSgmY2FwdHVyZS0+ZG1hX3F1ZXVlX2xvY2ssIGZsYWdzKTsKLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGJ1ZiwgJmNhcHR1cmUtPmRtYV9xdWV1ZSwgbGlzdCkKLQkJdmIyX2J1ZmZlcl9kb25lKCZi dWYtPnY0bDJfYnVmZmVyLnZiMl9idWYsCi0JCQkJVkIyX0JVRl9TVEFURV9RVUVVRUQpOwotCUlO SVRfTElTVF9IRUFEKCZjYXB0dXJlLT5kbWFfcXVldWUpOwotCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmNhcHR1cmUtPmRtYV9xdWV1ZV9sb2NrLCBmbGFncyk7CitlcnJvcl9zdGF0ZToKKwlzdW42 aV9jc2lfY2FwdHVyZV9zdGF0ZV9jbGVhbnVwKGNzaV9kZXYsIGZhbHNlKTsKIAogCXJldHVybiBy ZXQ7CiB9CkBAIC0yNTcsOCArMzQzLDYgQEAgc3RhdGljIHZvaWQgc3VuNmlfY3NpX2NhcHR1cmVf c3RvcF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqcXVldWUpCiAJc3RydWN0IHN1bjZpX2Nz aV9kZXZpY2UgKmNzaV9kZXYgPSB2YjJfZ2V0X2Rydl9wcml2KHF1ZXVlKTsKIAlzdHJ1Y3Qgc3Vu NmlfY3NpX2NhcHR1cmUgKmNhcHR1cmUgPSAmY3NpX2Rldi0+Y2FwdHVyZTsKIAlzdHJ1Y3QgdjRs Ml9zdWJkZXYgKnN1YmRldjsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXN0cnVjdCBzdW42aV9j c2lfYnVmZmVyICpidWY7CiAKIAlzdWJkZXYgPSBzdW42aV9jc2lfY2FwdHVyZV9yZW1vdGVfc3Vi ZGV2KGNhcHR1cmUsIE5VTEwpOwogCWlmIChzdWJkZXYpCkBAIC0yNjgsNTkgKzM1Miw3IEBAIHN0 YXRpYyB2b2lkIHN1bjZpX2NzaV9jYXB0dXJlX3N0b3Bfc3RyZWFtaW5nKHN0cnVjdCB2YjJfcXVl dWUgKnF1ZXVlKQogCiAJbWVkaWFfcGlwZWxpbmVfc3RvcCgmY2FwdHVyZS0+dmlkZW9fZGV2LmVu dGl0eSk7CiAKLQkvKiBSZWxlYXNlIGFsbCBhY3RpdmUgYnVmZmVycyAqLwotCXNwaW5fbG9ja19p cnFzYXZlKCZjYXB0dXJlLT5kbWFfcXVldWVfbG9jaywgZmxhZ3MpOwotCWxpc3RfZm9yX2VhY2hf ZW50cnkoYnVmLCAmY2FwdHVyZS0+ZG1hX3F1ZXVlLCBsaXN0KQotCQl2YjJfYnVmZmVyX2RvbmUo JmJ1Zi0+djRsMl9idWZmZXIudmIyX2J1ZiwgVkIyX0JVRl9TVEFURV9FUlJPUik7Ci0JSU5JVF9M SVNUX0hFQUQoJmNhcHR1cmUtPmRtYV9xdWV1ZSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm Y2FwdHVyZS0+ZG1hX3F1ZXVlX2xvY2ssIGZsYWdzKTsKLX0KLQotdm9pZCBzdW42aV9jc2lfY2Fw dHVyZV9mcmFtZV9kb25lKHN0cnVjdCBzdW42aV9jc2lfZGV2aWNlICpjc2lfZGV2KQotewotCXN0 cnVjdCBzdW42aV9jc2lfY2FwdHVyZSAqY2FwdHVyZSA9ICZjc2lfZGV2LT5jYXB0dXJlOwotCXN0 cnVjdCBzdW42aV9jc2lfYnVmZmVyICpidWY7Ci0Jc3RydWN0IHN1bjZpX2NzaV9idWZmZXIgKm5l eHRfYnVmOwotCXN0cnVjdCB2YjJfdjRsMl9idWZmZXIgKnY0bDJfYnVmZmVyOwotCi0Jc3Bpbl9s b2NrKCZjYXB0dXJlLT5kbWFfcXVldWVfbG9jayk7Ci0KLQlidWYgPSBsaXN0X2ZpcnN0X2VudHJ5 KCZjYXB0dXJlLT5kbWFfcXVldWUsCi0JCQkgICAgICAgc3RydWN0IHN1bjZpX2NzaV9idWZmZXIs IGxpc3QpOwotCWlmIChsaXN0X2lzX2xhc3QoJmJ1Zi0+bGlzdCwgJmNhcHR1cmUtPmRtYV9xdWV1 ZSkpIHsKLQkJZGV2X2RiZyhjc2lfZGV2LT5kZXYsICJGcmFtZSBkcm9wcGVkIVxuIik7Ci0JCWdv dG8gY29tcGxldGU7Ci0JfQotCi0JbmV4dF9idWYgPSBsaXN0X25leHRfZW50cnkoYnVmLCBsaXN0 KTsKLQkvKiBJZiBhIG5ldyBidWZmZXIgKCNuZXh0X2J1ZikgaGFkIG5vdCBiZWVuIHF1ZXVlZCB0 byBDU0ksIHRoZSBvbGQKLQkgKiBidWZmZXIgKCNidWYpIGlzIHN0aWxsIGhvbGRpbmcgYnkgQ1NJ IGZvciBzdG9yaW5nIHRoZSBuZXh0Ci0JICogZnJhbWUuIFNvLCB3ZSBxdWV1ZSBhIG5ldyBidWZm ZXIgKCNuZXh0X2J1ZikgdG8gQ1NJIHRoZW4gd2FpdAotCSAqIGZvciBuZXh0IElTUiBjYWxsLgot CSAqLwotCWlmICghbmV4dF9idWYtPnF1ZXVlZF90b19jc2kpIHsKLQkJc3VuNmlfY3NpX2NhcHR1 cmVfYnVmZmVyX2NvbmZpZ3VyZShjc2lfZGV2LCBuZXh0X2J1Zik7Ci0JCWRldl9kYmcoY3NpX2Rl di0+ZGV2LCAiRnJhbWUgZHJvcHBlZCFcbiIpOwotCQlnb3RvIGNvbXBsZXRlOwotCX0KLQotCWxp c3RfZGVsKCZidWYtPmxpc3QpOwotCXY0bDJfYnVmZmVyID0gJmJ1Zi0+djRsMl9idWZmZXI7Ci0J djRsMl9idWZmZXItPnZiMl9idWYudGltZXN0YW1wID0ga3RpbWVfZ2V0X25zKCk7Ci0JdjRsMl9i dWZmZXItPnNlcXVlbmNlID0gY2FwdHVyZS0+c2VxdWVuY2U7Ci0JdmIyX2J1ZmZlcl9kb25lKCZ2 NGwyX2J1ZmZlci0+dmIyX2J1ZiwgVkIyX0JVRl9TVEFURV9ET05FKTsKLQotCS8qIFByZXBhcmUg YnVmZmVyIGZvciBuZXh0IGZyYW1lIGJ1dCBvbmUuICAqLwotCWlmICghbGlzdF9pc19sYXN0KCZu ZXh0X2J1Zi0+bGlzdCwgJmNhcHR1cmUtPmRtYV9xdWV1ZSkpIHsKLQkJbmV4dF9idWYgPSBsaXN0 X25leHRfZW50cnkobmV4dF9idWYsIGxpc3QpOwotCQlzdW42aV9jc2lfY2FwdHVyZV9idWZmZXJf Y29uZmlndXJlKGNzaV9kZXYsIG5leHRfYnVmKTsKLQl9IGVsc2UgewotCQlkZXZfZGJnKGNzaV9k ZXYtPmRldiwgIk5leHQgZnJhbWUgd2lsbCBiZSBkcm9wcGVkIVxuIik7Ci0JfQotCi1jb21wbGV0 ZToKLQljYXB0dXJlLT5zZXF1ZW5jZSsrOwotCXNwaW5fdW5sb2NrKCZjYXB0dXJlLT5kbWFfcXVl dWVfbG9jayk7CisJc3VuNmlfY3NpX2NhcHR1cmVfc3RhdGVfY2xlYW51cChjc2lfZGV2LCB0cnVl KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB2YjJfb3BzIHN1bjZpX2NzaV9jYXB0dXJlX3F1 ZXVlX29wcyA9IHsKQEAgLTYzNSw2ICs2NjcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlh X2VudGl0eV9vcGVyYXRpb25zIHN1bjZpX2NzaV9jYXB0dXJlX21lZGlhX29wcyA9IHsKIGludCBz dW42aV9jc2lfY2FwdHVyZV9zZXR1cChzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAqY3NpX2RldikK IHsKIAlzdHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmUgKmNhcHR1cmUgPSAmY3NpX2Rldi0+Y2FwdHVy ZTsKKwlzdHJ1Y3Qgc3VuNmlfY3NpX2NhcHR1cmVfc3RhdGUgKnN0YXRlID0gJmNhcHR1cmUtPnN0 YXRlOwogCXN0cnVjdCB2NGwyX2RldmljZSAqdjRsMl9kZXYgPSAmY3NpX2Rldi0+djRsMi52NGwy X2RldjsKIAlzdHJ1Y3QgdjRsMl9zdWJkZXYgKmJyaWRnZV9zdWJkZXYgPSAmY3NpX2Rldi0+YnJp ZGdlLnN1YmRldjsKIAlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2aWRlb19kZXYgPSAmY2FwdHVyZS0+ dmlkZW9fZGV2OwpAQCAtNjQ0LDYgKzY3NywxMSBAQCBpbnQgc3VuNmlfY3NpX2NhcHR1cmVfc2V0 dXAoc3RydWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYpCiAJc3RydWN0IHY0bDJfcGl4X2Zv cm1hdCAqcGl4X2Zvcm1hdCA9ICZmb3JtYXQuZm10LnBpeDsKIAlpbnQgcmV0OwogCisJLyogU3Rh dGUgKi8KKworCUlOSVRfTElTVF9IRUFEKCZzdGF0ZS0+cXVldWUpOworCXNwaW5fbG9ja19pbml0 KCZzdGF0ZS0+bG9jayk7CisKIAkvKiBNZWRpYSBFbnRpdHkgKi8KIAogCXZpZGVvX2Rldi0+ZW50 aXR5Lm9wcyA9ICZzdW42aV9jc2lfY2FwdHVyZV9tZWRpYV9vcHM7CkBAIC02NTYsMTMgKzY5NCw2 IEBAIGludCBzdW42aV9jc2lfY2FwdHVyZV9zZXR1cChzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZSAq Y3NpX2RldikKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAotCS8qIERNQSBxdWV1ZSAq LwotCi0JSU5JVF9MSVNUX0hFQUQoJmNhcHR1cmUtPmRtYV9xdWV1ZSk7Ci0Jc3Bpbl9sb2NrX2lu aXQoJmNhcHR1cmUtPmRtYV9xdWV1ZV9sb2NrKTsKLQotCWNhcHR1cmUtPnNlcXVlbmNlID0gMDsK LQogCS8qIFF1ZXVlICovCiAKIAltdXRleF9pbml0KCZjYXB0dXJlLT5sb2NrKTsKQEAgLTY3Miwx NCArNzAzLDEyIEBAIGludCBzdW42aV9jc2lfY2FwdHVyZV9zZXR1cChzdHJ1Y3Qgc3VuNmlfY3Np X2RldmljZSAqY3NpX2RldikKIAlxdWV1ZS0+YnVmX3N0cnVjdF9zaXplID0gc2l6ZW9mKHN0cnVj dCBzdW42aV9jc2lfYnVmZmVyKTsKIAlxdWV1ZS0+b3BzID0gJnN1bjZpX2NzaV9jYXB0dXJlX3F1 ZXVlX29wczsKIAlxdWV1ZS0+bWVtX29wcyA9ICZ2YjJfZG1hX2NvbnRpZ19tZW1vcHM7CisJcXVl dWUtPm1pbl9idWZmZXJzX25lZWRlZCA9IDI7CiAJcXVldWUtPnRpbWVzdGFtcF9mbGFncyA9IFY0 TDJfQlVGX0ZMQUdfVElNRVNUQU1QX01PTk9UT05JQzsKIAlxdWV1ZS0+bG9jayA9ICZjYXB0dXJl LT5sb2NrOwogCXF1ZXVlLT5kZXYgPSBjc2lfZGV2LT5kZXY7CiAJcXVldWUtPmRydl9wcml2ID0g Y3NpX2RldjsKIAotCS8qIE1ha2Ugc3VyZSBub24tZHJvcHBlZCBmcmFtZS4gKi8KLQlxdWV1ZS0+ bWluX2J1ZmZlcnNfbmVlZGVkID0gMzsKLQogCXJldCA9IHZiMl9xdWV1ZV9pbml0KHF1ZXVlKTsK IAlpZiAocmV0KSB7CiAJCXY0bDJfZXJyKHY0bDJfZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUg dmIyIHF1ZXVlOiAlZFxuIiwgcmV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaV9jYXB0dXJlLmggYi9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3N1bnhpL3N1bjZpLWNzaS9zdW42aV9jc2lfY2FwdHVyZS5oCmluZGV4IDM2YmJhMzFm Y2I0OC4uN2ZhNjZhMmFmNWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N1 bnhpL3N1bjZpLWNzaS9zdW42aV9jc2lfY2FwdHVyZS5oCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxh dGZvcm0vc3VueGkvc3VuNmktY3NpL3N1bjZpX2NzaV9jYXB0dXJlLmgKQEAgLTEzLDIzICsxMywz NCBAQAogCiBzdHJ1Y3Qgc3VuNmlfY3NpX2RldmljZTsKIAorI3VuZGVmIGN1cnJlbnQKK3N0cnVj dCBzdW42aV9jc2lfY2FwdHVyZV9zdGF0ZSB7CisJc3RydWN0IGxpc3RfaGVhZAkJcXVldWU7CisJ c3BpbmxvY2tfdAkJCWxvY2s7IC8qIFF1ZXVlIGFuZCBidWZmZXJzIGxvY2suICovCisKKwlzdHJ1 Y3Qgc3VuNmlfY3NpX2J1ZmZlcgkJKnBlbmRpbmc7CisJc3RydWN0IHN1bjZpX2NzaV9idWZmZXIJ CSpjdXJyZW50OworCXN0cnVjdCBzdW42aV9jc2lfYnVmZmVyCQkqY29tcGxldGU7CisKKwl1bnNp Z25lZCBpbnQJCQlzZXF1ZW5jZTsKK307CisKIHN0cnVjdCBzdW42aV9jc2lfY2FwdHVyZSB7CisJ c3RydWN0IHN1bjZpX2NzaV9jYXB0dXJlX3N0YXRlCXN0YXRlOworCiAJc3RydWN0IHZpZGVvX2Rl dmljZQkJdmlkZW9fZGV2OwogCXN0cnVjdCB2YjJfcXVldWUJCXF1ZXVlOwogCXN0cnVjdCBtdXRl eAkJCWxvY2s7IC8qIFF1ZXVlIGxvY2suICovCiAJc3RydWN0IG1lZGlhX3BhZAkJcGFkOwogCi0J c3RydWN0IGxpc3RfaGVhZAkJZG1hX3F1ZXVlOwotCXNwaW5sb2NrX3QJCQlkbWFfcXVldWVfbG9j azsgLyogRE1BIHF1ZXVlIGxvY2suICovCi0KIAlzdHJ1Y3QgdjRsMl9mb3JtYXQJCWZvcm1hdDsK IAl1MzIJCQkJbWJ1c19jb2RlOwotCXVuc2lnbmVkIGludAkJCXNlcXVlbmNlOwogfTsKIAordm9p ZCBzdW42aV9jc2lfY2FwdHVyZV9zeW5jKHN0cnVjdCBzdW42aV9jc2lfZGV2aWNlICpjc2lfZGV2 KTsKK3ZvaWQgc3VuNmlfY3NpX2NhcHR1cmVfZnJhbWVfZG9uZShzdHJ1Y3Qgc3VuNmlfY3NpX2Rl dmljZSAqY3NpX2Rldik7CisKIGludCBzdW42aV9jc2lfY2FwdHVyZV9zZXR1cChzdHJ1Y3Qgc3Vu NmlfY3NpX2RldmljZSAqY3NpX2Rldik7CiB2b2lkIHN1bjZpX2NzaV9jYXB0dXJlX2NsZWFudXAo c3RydWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYpOwogCi12b2lkIHN1bjZpX2NzaV9jYXB0 dXJlX2ZyYW1lX2RvbmUoc3RydWN0IHN1bjZpX2NzaV9kZXZpY2UgKmNzaV9kZXYpOwotCiAjZW5k aWYgLyogX19TVU42SV9DQVBUVVJFX0hfXyAqLwotLSAKMi4zNS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=