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 A4735C433FE for ; Wed, 16 Feb 2022 11:24:40 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jRz7afIjz+R9NktzvKNievJ5pWkRcWiDJ11QWkZJg+0=; b=3Zi+j9WPfEysGq 3p+yddSwblMbiAXfwJmWMXnj/RPWUoVDpeLU/g3kxugNtabvP5BpJtimeHbg6at1KNbWLsvN0LDVi kU6DkLgVcuWaO25t5uxKmk8KXhI5YLPRFCla7AVgqRaJMN1S2x6O3usP6nCttDgj4cvTl8IHWj+eB 7+gjk/iHFFxWnrrPz67z3cS+8G9A6mbs3QE61B/P+mI+xUe6Fi1lSntPy75PvLxmyciYyvbroLIGN ATMJlmGxlm64cu+f9GO0YdfOs+JI7wim/hS+/vAO5GaQvJXHTMX8sInoWu3YM96Xk26YfgsHRqeAq uwuNDTchsrNrI/GKDsZA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nKIOt-006hyZ-0K; Wed, 16 Feb 2022 11:23:11 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nKIOo-006hvp-EV for linux-arm-kernel@lists.infradead.org; Wed, 16 Feb 2022 11:23:08 +0000 Received: from ptx.hi.pengutronix.de ([2001:67c:670:100:1d::c0]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nKIOd-0006BT-Ih; Wed, 16 Feb 2022 12:22:55 +0100 Received: from sha by ptx.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1nKIOY-0007G1-Le; Wed, 16 Feb 2022 12:22:50 +0100 Date: Wed, 16 Feb 2022 12:22:50 +0100 From: Sascha Hauer To: Dmitry Osipenko Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Benjamin Gaignard , Peter Geis , Sandy Huang , linux-rockchip@lists.infradead.org, Michael Riesch , kernel@pengutronix.de, Andy Yan , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 22/23] drm: rockchip: Add VOP2 driver Message-ID: <20220216112250.GN18637@pengutronix.de> References: <20220209095350.2104049-1-s.hauer@pengutronix.de> <20220209095350.2104049-23-s.hauer@pengutronix.de> <5917d180-de29-79cb-4d4d-e7340d2d88cb@collabora.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <5917d180-de29-79cb-4d4d-e7340d2d88cb@collabora.com> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 12:17:05 up 67 days, 20:02, 84 users, load average: 0.09, 0.14, 0.17 User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220216_032306_666483_A61B11EB X-CRM114-Status: GOOD ( 34.88 ) 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 T24gV2VkLCBGZWIgMTYsIDIwMjIgYXQgMDE6Mzk6MzNQTSArMDMwMCwgRG1pdHJ5IE9zaXBlbmtv IHdyb3RlOgo+IDA5LjAyLjIwMjIgMTI6NTMsIFNhc2NoYSBIYXVlciDQv9C40YjQtdGCOgo+ID4g K3N0YXRpYyB2b2lkIHZvcDJfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gK3sKPiA+ICsJc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlID0gcGxhbmUtPnN0YXRlOwo+ID4gKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBwc3RhdGUtPmNydGM7Cj4gPiArCXN0cnVjdCB2b3AyX3dpbiAqd2luID0g dG9fdm9wMl93aW4ocGxhbmUpOwo+ID4gKwlzdHJ1Y3Qgdm9wMl92aWRlb19wb3J0ICp2cCA9IHRv X3ZvcDJfdmlkZW9fcG9ydChjcnRjKTsKPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7Cj4gPiArCXN0cnVjdCB2 b3AyICp2b3AyID0gd2luLT52b3AyOwo+ID4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 IHBzdGF0ZS0+ZmI7Cj4gPiArCXVpbnQzMl90IGJwcCA9IGZiLT5mb3JtYXQtPmNwcFswXSAqIDg7 Cj4gPiArCXVpbnQzMl90IGFjdHVhbF93LCBhY3R1YWxfaCwgZHNwX3csIGRzcF9oOwo+ID4gKwl1 aW50MzJfdCBhY3RfaW5mbywgZHNwX2luZm87Cj4gPiArCXVpbnQzMl90IGZvcm1hdDsKPiA+ICsJ dWludDMyX3QgYWZiY19mb3JtYXQ7Cj4gPiArCXVpbnQzMl90IHJiX3N3YXA7Cj4gPiArCXVpbnQz Ml90IHV2X3N3YXA7Cj4gPiArCXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnBzdGF0ZS0+c3JjOwo+ ID4gKwlzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QgPSAmcHN0YXRlLT5kc3Q7Cj4gPiArCXVpbnQzMl90 IGFmYmNfdGlsZV9udW07Cj4gPiArCXVpbnQzMl90IHRyYW5zZm9ybV9vZmZzZXQ7Cj4gPiArCWJv b2wgZGl0aGVyX3VwOwo+ID4gKwlib29sIHhtaXJyb3IgPSBwc3RhdGUtPnJvdGF0aW9uICYgRFJN X01PREVfUkVGTEVDVF9YOwo+ID4gKwlib29sIHltaXJyb3IgPSBwc3RhdGUtPnJvdGF0aW9uICYg RFJNX01PREVfUkVGTEVDVF9ZOwo+ID4gKwlib29sIHJvdGF0ZV8yNzAgPSBwc3RhdGUtPnJvdGF0 aW9uICYgRFJNX01PREVfUk9UQVRFXzI3MDsKPiA+ICsJYm9vbCByb3RhdGVfOTAgPSBwc3RhdGUt PnJvdGF0aW9uICYgRFJNX01PREVfUk9UQVRFXzkwOwo+ID4gKwlzdHJ1Y3Qgcm9ja2NoaXBfZ2Vt X29iamVjdCAqcmtfb2JqOwo+ID4gKwl1bnNpZ25lZCBsb25nIG9mZnNldDsKPiA+ICsJYm9vbCBh ZmJjX2VuOwo+ID4gKwlkbWFfYWRkcl90IHlyZ2JfbXN0Owo+ID4gKwlkbWFfYWRkcl90IHV2X21z dDsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogY2FuJ3QgdXBkYXRlIHBsYW5lIHdoZW4gdm9wMiBp cyBkaXNhYmxlZC4KPiA+ICsJICovCj4gPiArCWlmIChXQVJOX09OKCFjcnRjKSkKPiA+ICsJCXJl dHVybjsKPiA+ICsKPiA+ICsJaWYgKCFwc3RhdGUtPnZpc2libGUpIHsKPiA+ICsJCXZvcDJfcGxh bmVfYXRvbWljX2Rpc2FibGUocGxhbmUsIHN0YXRlKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ ID4gKwo+ID4gKwlhZmJjX2VuID0gcm9ja2NoaXBfYWZiYyhwbGFuZSwgZmItPm1vZGlmaWVyKTsK PiA+ICsKPiA+ICsJb2Zmc2V0ID0gKHNyYy0+eDEgPj4gMTYpICogZmItPmZvcm1hdC0+Y3BwWzBd Owo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBBRkJDIEhEUl9QVFIgbXVzdCBzZXQgdG8gdGhlIHpl cm8gb2Zmc2V0IG9mIHRoZSBmcmFtZWJ1ZmZlci4KPiA+ICsJICovCj4gPiArCWlmIChhZmJjX2Vu KQo+ID4gKwkJb2Zmc2V0ID0gMDsKPiA+ICsJZWxzZSBpZiAocHN0YXRlLT5yb3RhdGlvbiAmIERS TV9NT0RFX1JFRkxFQ1RfWSkKPiA+ICsJCW9mZnNldCArPSAoKHNyYy0+eTIgPj4gMTYpIC0gMSkg KiBmYi0+cGl0Y2hlc1swXTsKPiA+ICsJZWxzZQo+ID4gKwkJb2Zmc2V0ICs9IChzcmMtPnkxID4+ IDE2KSAqIGZiLT5waXRjaGVzWzBdOwo+ID4gKwo+ID4gKwlya19vYmogPSB0b19yb2NrY2hpcF9v YmooZmItPm9ialswXSk7Cj4gPiArCj4gPiArCXlyZ2JfbXN0ID0gcmtfb2JqLT5kbWFfYWRkciAr IG9mZnNldCArIGZiLT5vZmZzZXRzWzBdOwo+ID4gKwlpZiAoZmItPmZvcm1hdC0+aXNfeXV2KSB7 Cj4gPiArCQlpbnQgaHN1YiA9IGZiLT5mb3JtYXQtPmhzdWI7Cj4gPiArCQlpbnQgdnN1YiA9IGZi LT5mb3JtYXQtPnZzdWI7Cj4gPiArCj4gPiArCQlvZmZzZXQgPSAoc3JjLT54MSA+PiAxNikgKiBm Yi0+Zm9ybWF0LT5jcHBbMV0gLyBoc3ViOwo+ID4gKwkJb2Zmc2V0ICs9IChzcmMtPnkxID4+IDE2 KSAqIGZiLT5waXRjaGVzWzFdIC8gdnN1YjsKPiA+ICsKPiA+ICsJCWlmICgocHN0YXRlLT5yb3Rh dGlvbiAmIERSTV9NT0RFX1JFRkxFQ1RfWSkgJiYgIWFmYmNfZW4pCj4gPiArCQkJb2Zmc2V0ICs9 IGZiLT5waXRjaGVzWzFdICogKChwc3RhdGUtPnNyY19oID4+IDE2KSAtIDIpICAvIHZzdWI7Cj4g PiArCj4gPiArCQlya19vYmogPSB0b19yb2NrY2hpcF9vYmooZmItPm9ialswXSk7Cj4gPiArCQl1 dl9tc3QgPSBya19vYmotPmRtYV9hZGRyICsgb2Zmc2V0ICsgZmItPm9mZnNldHNbMV07Cj4gPiAr CX0KPiA+ICsKPiA+ICsJYWN0dWFsX3cgPSBkcm1fcmVjdF93aWR0aChzcmMpID4+IDE2Owo+ID4g KwlhY3R1YWxfaCA9IGRybV9yZWN0X2hlaWdodChzcmMpID4+IDE2Owo+ID4gKwlkc3BfdyA9IGRy bV9yZWN0X3dpZHRoKGRlc3QpOwo+ID4gKwo+ID4gKwlpZiAoZGVzdC0+eDEgKyBkc3BfdyA+IGFk anVzdGVkX21vZGUtPmhkaXNwbGF5KSB7Cj4gPiArCQlkcm1fZXJyKHZvcDItPmRybSwgInZwJWQg JXMgZGVzdC0+eDFbJWRdICsgZHNwX3dbJWRdIGV4Y2VlZCBtb2RlIGhkaXNwbGF5WyVkXVxuIiwK PiA+ICsJCQkgIHZwLT5pZCwgd2luLT5kYXRhLT5uYW1lLCBkZXN0LT54MSwgZHNwX3csIGFkanVz dGVkX21vZGUtPmhkaXNwbGF5KTsKPiA+ICsJCWRzcF93ID0gYWRqdXN0ZWRfbW9kZS0+aGRpc3Bs YXkgLSBkZXN0LT54MTsKPiA+ICsJCWlmIChkc3BfdyA8IDQpCj4gPiArCQkJZHNwX3cgPSA0Owo+ ID4gKwkJYWN0dWFsX3cgPSBkc3BfdyAqIGFjdHVhbF93IC8gZHJtX3JlY3Rfd2lkdGgoZGVzdCk7 Cj4gPiArCX0KPiA+ICsKPiA+ICsJZHNwX2ggPSBkcm1fcmVjdF9oZWlnaHQoZGVzdCk7Cj4gPiAr Cj4gPiArCWlmIChkZXN0LT55MSArIGRzcF9oID4gYWRqdXN0ZWRfbW9kZS0+dmRpc3BsYXkpIHsK PiA+ICsJCWRybV9lcnIodm9wMi0+ZHJtLCAidnAlZCAlcyBkZXN0LT55MVslZF0gKyBkc3BfaFsl ZF0gZXhjZWVkIG1vZGUgdmRpc3BsYXlbJWRdXG4iLAo+ID4gKwkJCSAgdnAtPmlkLCB3aW4tPmRh dGEtPm5hbWUsIGRlc3QtPnkxLCBkc3BfaCwgYWRqdXN0ZWRfbW9kZS0+dmRpc3BsYXkpOwo+ID4g KwkJZHNwX2ggPSBhZGp1c3RlZF9tb2RlLT52ZGlzcGxheSAtIGRlc3QtPnkxOwo+ID4gKwkJaWYg KGRzcF9oIDwgNCkKPiA+ICsJCQlkc3BfaCA9IDQ7Cj4gPiArCQlhY3R1YWxfaCA9IGRzcF9oICog YWN0dWFsX2ggLyBkcm1fcmVjdF9oZWlnaHQoZGVzdCk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyoK PiA+ICsJICogVGhpcyBpcyB3b3JrYXJvdW5kIHNvbHV0aW9uIGZvciBJQyBkZXNpZ246Cj4gPiAr CSAqIGVzbWFydCBjYW4ndCBzdXBwb3J0IHNjYWxlIGRvd24gd2hlbiBhY3R1YWxfdyAlIDE2ID09 IDEuCj4gPiArCSAqLwo+ID4gKwlpZiAoISh3aW4tPmRhdGEtPmZlYXR1cmUgJiBXSU5fRkVBVFVS RV9BRkJEQykpIHsKPiA+ICsJCWlmIChhY3R1YWxfdyA+IGRzcF93ICYmIChhY3R1YWxfdyAmIDB4 ZikgPT0gMSkgewo+ID4gKwkJCWRybV9lcnIodm9wMi0+ZHJtLCAidnAlZCAlcyBhY3Rfd1slZF0g TU9ERSAxNiA9PSAxXG4iLCB2cC0+aWQsIHdpbi0+ZGF0YS0+bmFtZSwgYWN0dWFsX3cpOwo+ID4g KwkJCWFjdHVhbF93IC09IDE7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKGFmYmNf ZW4gJiYgYWN0dWFsX3cgJSA0KSB7Cj4gPiArCQlkcm1fZXJyKHZvcDItPmRybSwgInZwJWQgJXMg YWN0dWFsX3dbJWRdIHNob3VsZCBhbGlnbiBhcyA0IHBpeGVsIHdoZW4gZW5hYmxlIGFmYmNcbiIs Cj4gPiArCQkJICB2cC0+aWQsIHdpbi0+ZGF0YS0+bmFtZSwgYWN0dWFsX3cpOwo+ID4gKwkJYWN0 dWFsX3cgPSBBTElHTl9ET1dOKGFjdHVhbF93LCA0KTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlhY3Rf aW5mbyA9IChhY3R1YWxfaCAtIDEpIDw8IDE2IHwgKChhY3R1YWxfdyAtIDEpICYgMHhmZmZmKTsK PiA+ICsJZHNwX2luZm8gPSAoZHNwX2ggLSAxKSA8PCAxNiB8ICgoZHNwX3cgLSAxKSAmIDB4ZmZm Zik7Cj4gPiArCj4gPiArCWZvcm1hdCA9IHZvcDJfY29udmVydF9mb3JtYXQoZmItPmZvcm1hdC0+ Zm9ybWF0KTsKPiA+ICsKPiA+ICsJZHJtX2RiZyh2b3AyLT5kcm0sICJ2cCVkIHVwZGF0ZSAlc1sl ZHglZC0+JWR4JWRAJWR4JWRdIGZtdFslcDRjY18lc10gYWRkclslcGFkXVxuIiwKPiA+ICsJCSAg ICAgIHZwLT5pZCwgd2luLT5kYXRhLT5uYW1lLCBhY3R1YWxfdywgYWN0dWFsX2gsIGRzcF93LCBk c3BfaCwKPiA+ICsJCSAgICAgIGRlc3QtPngxLCBkZXN0LT55MSwKPiA+ICsJCSAgICAgICZmYi0+ Zm9ybWF0LT5mb3JtYXQsCj4gPiArCQkgICAgICBhZmJjX2VuID8gIkFGQkMiIDogIiIsICZ5cmdi X21zdCk7Cj4gPiArCj4gPiArCWlmIChhZmJjX2VuKSB7Cj4gPiArCQl1aW50MzJfdCBzdHJpZGU7 Cj4gPiArCj4gPiArCQkvKiB0aGUgYWZiYyBzdXBlcmJsb2NrIGlzIDE2IHggMTYgKi8KPiA+ICsJ CWFmYmNfZm9ybWF0ID0gdm9wMl9jb252ZXJ0X2FmYmNfZm9ybWF0KGZiLT5mb3JtYXQtPmZvcm1h dCk7Cj4gPiArCj4gPiArCQkvKiBFbmFibGUgY29sb3IgdHJhbnNmb3JtIGZvciBZVFIgKi8KPiA+ ICsJCWlmIChmYi0+bW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfWVRSKQo+ID4gKwkJCWFmYmNf Zm9ybWF0IHw9ICgxIDw8IDQpOwo+ID4gKwo+ID4gKwkJYWZiY190aWxlX251bSA9IEFMSUdOKGFj dHVhbF93LCAxNikgPj4gNDsKPiA+ICsKPiA+ICsJCS8qCj4gPiArCQkgKiBBRkJDIHBpY192aXJf d2lkdGggaXMgY291bnQgYnkgcGl4ZWwsIHRoaXMgaXMgZGlmZmVyZW50Cj4gPiArCQkgKiB3aXRo IFdJTl9WSVJfU1RSSURFLgo+ID4gKwkJICovCj4gPiArCQlzdHJpZGUgPSAoZmItPnBpdGNoZXNb MF0gPDwgMykgLyBicHA7Cj4gPiArCQlpZiAoKHN0cmlkZSAmIDB4M2YpICYmICh4bWlycm9yIHx8 IHJvdGF0ZV85MCB8fCByb3RhdGVfMjcwKSkKPiA+ICsJCQlkcm1fZXJyKHZvcDItPmRybSwgInZw JWQgJXMgc3RyaWRlWyVkXSBtdXN0IGFsaWduIGFzIDY0IHBpeGVsIHdoZW4gZW5hYmxlIHhtaXJy b3Ivcm90YXRlXzkwL3JvdGF0ZV8yNzBbMHgleF1cbiIsCj4gPiArCQkJCSAgdnAtPmlkLCB3aW4t PmRhdGEtPm5hbWUsIHN0cmlkZSwgcHN0YXRlLT5yb3RhdGlvbik7Cj4gPiArCj4gPiArCQlyYl9z d2FwID0gdm9wMl9hZmJjX3JiX3N3YXAoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiA+ICsJCXV2X3N3 YXAgPSB2b3AyX2FmYmNfdXZfc3dhcChmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ID4gKwkJLyoKPiA+ ICsJCSAqIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBjcmF6eSBJQyBkZXNpZ24sIENsdXN0ZXIK PiA+ICsJCSAqIGFuZCBFc21hcnQvU21hcnQgdXNlIGRpZmZlcmVudCBmb3JtYXQgY29uZmlndXJh dGlvbiBtYXA6Cj4gPiArCQkgKiBZVVY0MjBfMTBCSVQ6IDB4MTAgZm9yIENsdXN0ZXIsIDB4MTQg Zm9yIEVzbWFydC9TbWFydC4KPiA+ICsJCSAqCj4gPiArCQkgKiBUaGlzIGlzIG9uZSB0aGluZyB3 ZSBjYW4gbWFrZSB0aGUgY29udmVydCBzaW1wbGU6Cj4gPiArCQkgKiBBRkJDRCBkZWNvZGUgYWxs IHRoZSBZVVYgZGF0YSB0byBZVVY0NDQuIFNvIHdlIGp1c3QKPiA+ICsJCSAqIHNldCBhbGwgdGhl IHl1diAxMCBiaXQgdG8gWVVWNDQ0XzEwLgo+ID4gKwkJICovCj4gPiArCQlpZiAoZmItPmZvcm1h dC0+aXNfeXV2ICYmIChicHAgPT0gMTApKQo+ID4gKwkJCWZvcm1hdCA9IFZPUDJfQ0xVU1RFUl9Z VVY0NDRfMTA7Cj4gPiArCj4gPiArCQlpZiAodm9wMl9jbHVzdGVyX3dpbmRvdyh3aW4pKQo+ID4g KwkJCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19FTkFCTEUsIDEpOwo+ID4gKwkJ dm9wMl93aW5fd3JpdGUod2luLCBWT1AyX1dJTl9BRkJDX0ZPUk1BVCwgYWZiY19mb3JtYXQpOwo+ ID4gKwkJdm9wMl93aW5fd3JpdGUod2luLCBWT1AyX1dJTl9BRkJDX1JCX1NXQVAsIHJiX3N3YXAp Owo+ID4gKwkJdm9wMl93aW5fd3JpdGUod2luLCBWT1AyX1dJTl9BRkJDX1VWX1NXQVAsIHV2X3N3 YXApOwo+ID4gKwkJdm9wMl93aW5fd3JpdGUod2luLCBWT1AyX1dJTl9BRkJDX0FVVE9fR0FUSU5H X0VOLCAwKTsKPiA+ICsJCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19CTE9DS19T UExJVF9FTiwgMCk7Cj4gPiArCQlpZiAocHN0YXRlLT5yb3RhdGlvbiAmIChEUk1fTU9ERV9ST1RB VEVfMjcwIHwgRFJNX01PREVfUk9UQVRFXzkwKSkgewo+ID4gKwkJCXZvcDJfd2luX3dyaXRlKHdp biwgVk9QMl9XSU5fQUZCQ19IQUxGX0JMT0NLX0VOLCAwKTsKPiA+ICsJCQl0cmFuc2Zvcm1fb2Zm c2V0ID0gdm9wMl9hZmJjX3RyYW5zZm9ybV9vZmZzZXQocHN0YXRlLCBmYWxzZSk7Cj4gPiArCQl9 IGVsc2Ugewo+ID4gKwkJCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19IQUxGX0JM T0NLX0VOLCAxKTsKPiA+ICsJCQl0cmFuc2Zvcm1fb2Zmc2V0ID0gdm9wMl9hZmJjX3RyYW5zZm9y bV9vZmZzZXQocHN0YXRlLCB0cnVlKTsKPiA+ICsJCX0KPiA+ICsJCXZvcDJfd2luX3dyaXRlKHdp biwgVk9QMl9XSU5fQUZCQ19IRFJfUFRSLCB5cmdiX21zdCk7Cj4gPiArCQl2b3AyX3dpbl93cml0 ZSh3aW4sIFZPUDJfV0lOX0FGQkNfUElDX1NJWkUsIGFjdF9pbmZvKTsKPiA+ICsJCXZvcDJfd2lu X3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19UUkFOU0ZPUk1fT0ZGU0VULCB0cmFuc2Zvcm1fb2Zm c2V0KTsKPiA+ICsJCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19QSUNfT0ZGU0VU LCAoKHNyYy0+eDEgPj4gMTYpIHwgc3JjLT55MSkpOwo+ID4gKwkJdm9wMl93aW5fd3JpdGUod2lu LCBWT1AyX1dJTl9BRkJDX0RTUF9PRkZTRVQsIChkZXN0LT54MSB8IChkZXN0LT55MSA8PCAxNikp KTsKPiA+ICsJCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5fQUZCQ19QSUNfVklSX1dJRFRI LCBzdHJpZGUpOwo+ID4gKwkJdm9wMl93aW5fd3JpdGUod2luLCBWT1AyX1dJTl9BRkJDX1RJTEVf TlVNLCBhZmJjX3RpbGVfbnVtKTsKPiA+ICsJCXZvcDJfd2luX3dyaXRlKHdpbiwgVk9QMl9XSU5f WE1JUlJPUiwgeG1pcnJvcik7Cj4gCj4gVGhlIHhtaXJyb3IncyB2YXJpYWJsZSB0eXBlIGlzIHNw ZWNpZmllZCBhcyBib29sLCBidXQgaXQncyBub3QKPiB0cnVlL2ZhbHNlIGJlY2F1c2UgaW4gdGhl IGFib3ZlIGNvZGU6Cj4gCj4gYm9vbCB4bWlycm9yID0gcHN0YXRlLT5yb3RhdGlvbiAmIERSTV9N T0RFX1JFRkxFQ1RfWDsKPiAKPiBJIGRvbid0IHNlZSBob3cgdm9wMl93aW5fd3JpdGUoKSBjb3Vs ZCB3b3JrIHByb3Blcmx5LiBPciBhbSBJIG1pc3NpbmcKPiBzb21ldGhpbmc/CgpFdmVyeXRoaW5n ICE9IDAgaXMgdHJ1ZSwgc28gMHgxMCAmIDB4MTAgaXMgc3RpbGwgdHJ1ZS4KCkJ1dCBvaywKCgli b29sIHhtaXJyb3IgPSBwc3RhdGUtPnJvdGF0aW9uICYgRFJNX01PREVfUkVGTEVDVF9YID8gdHJ1 ZSA6IGZhbHNlOwoKbG9va3MgY2xlYW5lci4gSSdsbCBjaGFuZ2UgdGhhdC4KClRoYW5rcyBmb3Ig dGhlIHJldmlldyBzbyBmYXIuIENvdWxkIHlvdSBkcm9wIG1lIGEgc2hvcnQgbm90ZSB3aGVuIHlv dSdyZQpkb25lPyBJIHdhcyBhYm91dCB0byBzZW5kIHY2LgoKVGhhbmtzCiBTYXNjaGEKCi0tIApQ ZW5ndXRyb25peCBlLksuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfApTdGV1ZXJ3YWxkZXIgU3RyLiAyMSAgICAgICAgICAgICAgICAgICAg ICAgfCBodHRwOi8vd3d3LnBlbmd1dHJvbml4LmRlLyAgfAozMTEzNyBIaWxkZXNoZWltLCBHZXJt YW55ICAgICAgICAgICAgICAgICAgfCBQaG9uZTogKzQ5LTUxMjEtMjA2OTE3LTAgICAgfApBbXRz Z2VyaWNodCBIaWxkZXNoZWltLCBIUkEgMjY4NiAgICAgICAgICAgfCBGYXg6ICAgKzQ5LTUxMjEt MjA2OTE3LTU1NTUgfAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=