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 44948C531C9 for ; Sat, 25 Jul 2026 05:04:41 +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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=TKc8a361rJjwIOYynZqquAjByMNZt90xrD0y9FRwEK0=; b=GCIzWToCx64p/H sGC07S0thn8kx/LwIlMlAGD2Jtcto9lYfY5OTThL822jxxI2IPj3AVwq321/6NPvZidWQoEn9C3ww ff92q/gUb0MvnR+0ZOkE8QvQpxO7dHgrQR90Woqeveu+RxtLV8I6yyKdR1hK5I6ZLl8FJ/ZmWnZLQ Ob/xSl84iB+gmBeSFP4LeppgDfMI2n68G+bmM82P9sJ/2UlKcWdWnEigFO0Qfr8vi3mngefMS4OFY /HhGUOGyHqPfBs79VokTiOFhmIJW4FwHO8nCr9D/IxsIsIYn0wwgmO4yNZf60QHTNMcCOJnz8HpUR Iffy+KHfBHZO21p9bczA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wnUYz-000000002sB-01RR; Sat, 25 Jul 2026 05:04:41 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wnUYx-000000002rt-43Vs for linux-phy@lists.infradead.org; Sat, 25 Jul 2026 05:04:40 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id B5E7340AC4; Sat, 25 Jul 2026 05:04:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A4CB1F00A3A; Sat, 25 Jul 2026 05:04:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784955879; bh=5XEF+qAkWLuT5nSe/bguE8gYGpt4U9yK4reEWVi3igs=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=awMd5Abg8UavHKA/stIUBpgXUGPnMi3cgoP7b4Hzg0BxqAXk7CevaHQB6f7uPnSOg JlyXRr0Luxl19BxhG5MKtSDda7cWVnxcZVQsWUjF2KLfJCRcWZppM8Vc++0Eb6IWCe N5YGoR4EcHHai+n30Y/jQftugbzNZq4nvz3zGd/yDMOkWtiLCjgHCjrul9guyZA1He ZLPAUXSRNjN8lFNXGxmAsT0jrdX8W2kJrG+RI1bPz0UyW74YkG+xH42lfw7WUTOcZ1 SV/LZicOovhAol2woZzmuz64+Rw4frA7BpuJWuTMYY0XyrXPlv0ahcpDpRSdTCdQgs NIKhHyV68rGGQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH RESEND 08/17] drm/spacemit: add Saturn DPU core types, cmdlist and display MMU To: "Cody Kang" Cc: conor+dt@kernel.org, linux-phy@lists.infradead.org, vkoul@kernel.org, neil.armstrong@linaro.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, robh@kernel.org, olteanv@gmail.com In-Reply-To: <20260725-k3-display-v1-8-6de34d80e86c@gmail.com> References: <20260725-k3-display-v1-0-6de34d80e86c@gmail.com> <20260725-k3-display-v1-8-6de34d80e86c@gmail.com> Date: Sat, 25 Jul 2026 05:04:38 +0000 Message-Id: <20260725050439.2A4CB1F00A3A@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MTIgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtDcml0aWNhbF0gRE1NVSBwYWdl IHRhYmxlIHNpemUgY2FsY3VsYXRpb24gdW5kZXJmbG93IGFsbG93cyBhcmJpdHJhcnkgcGh5c2lj YWwgbWVtb3J5IGFjY2Vzcy4KLSBbQ3JpdGljYWxdIFNoYWxsb3cgY29weSBvZiBETUEgYnVmZmVy cyBpbiBhdG9taWMgc3RhdGUgY2F1c2VzIGFjdGl2ZSBkaXNwbGF5IGNvcnJ1cHRpb24uCi0gW0hp Z2hdIGNydGNfY21kbGlzdF9hdG9taWNfY29tbWl0KCkgcGFzc2VzIGEgZ3VhcmFudGVlZCBOVUxM IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIGNvbW1hbmQgbGlzdCBleGVjdXRpb24gY2FsbGJhY2su Ci0gW0hpZ2hdIEdsb2JhbCBgY21kbGlzdF9ncm91cHNgIGFycmF5IGNhdXNlcyBkYXRhIHJhY2Vz IGFjcm9zcyBjb25jdXJyZW50IGF0b21pYyBjb21taXRzLgotIFtIaWdoXSBVbmNvbmRpdGlvbmFs IGRlcmVmZXJlbmNlIG9mIGBmaXJzdF9jbGAgaW4gYGNtZGxpc3RfYXRvbWljX2NvbW1pdCgpYCBj YXVzZXMgYSBrZXJuZWwgcGFuaWMgaWYgdGhlIGNvbW1hbmQgbGlzdCBncm91cCBpcyBlbXB0eS4K LSBbSGlnaF0gRE1NVSBtYXBzIG9ubHkgdGhlIGZpcnN0IEdFTSBvYmplY3QsIGJyZWFraW5nIG11 bHRpLXBsYW5hciBmcmFtZWJ1ZmZlcnMuCi0gW0hpZ2hdIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5j ZSBpbiBgZHB1X3BsYW5lX2luZm9gIHRyYWNlcG9pbnQuCi0gW0hpZ2hdIFNsZWVwaW5nIGluIGF0 b21pYyBjb250ZXh0IHZpYSBgZHJtX2dlbV9zaG1lbV9nZXRfcGFnZXNfc2d0KClgLgotIFtIaWdo XSBNaXNzaW5nIGJvdW5kcyBjaGVjayBvbiBgbm9kX2xlbmAgY2F1c2VzIERNQSBidWZmZXIgb3Zl cmZsb3cuCi0gW01lZGl1bV0gVW5hbGlnbmVkIGJhc2UgdmlydHVhbCBhZGRyZXNzZXMgYXJlIHVz ZWQgZm9yIERNTVUgdHJhbnNsYXRpb24gcmVnaW9ucy4KLSBbTWVkaXVtXSBNZW1vcnkgbGVhayBv ZiBETUEgYnVmZmVycyB1cG9uIGF0b21pYyBzdGF0ZSBkZXN0cnVjdGlvbi4KLSBbTWVkaXVtXSBT cGVjdWxhdGl2ZSBhcnJheSBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbiBgY21kbGlzdF9zb3J0X2J5 X2dyb3VwKClgLgotLQoKLS0tIFBhdGNoIFs4XTogW1BBVENIIFJFU0VORCAwOC8xN10gZHJtL3Nw YWNlbWl0OiBhZGQgU2F0dXJuIERQVSBjb3JlIHR5cGVzLCBjbWRsaXN0IGFuZCBkaXNwbGF5IE1N VSAtLS0KY29tbWl0IGRjOTgzZDY4OTUxYzM1Nzc0NDdiYjg5N2UxN2M4MzNlNTU3ZGE5MDgKQXV0 aG9yOiBDb2R5IEthbmcgPGNvZHlrYW5nLmhrQGdtYWlsLmNvbT4KCmRybS9zcGFjZW1pdDogYWRk IFNhdHVybiBEUFUgY29yZSB0eXBlcywgY21kbGlzdCBhbmQgZGlzcGxheSBNTVUKClRoaXMgY29t bWl0IGludHJvZHVjZXMgdGhlIHNoYXJlZCBkcml2ZXIgdHlwZXMsIE1NSU8gYWNjZXNzb3JzLCB0 cmFjZQpldmVudHMsIGNvbW1hbmQtbGlzdCBidWlsZGVyLCBhbmQgRE1NVSB0YWJsZSBjb2RlIGZv ciB0aGUgU2F0dXJuIERQVS4KSXQgZW5hYmxlcyBiYXRjaGVkIHJlZ2lzdGVyIHByb2dyYW1taW5n IGJ5IGJ1aWxkaW5nIHBlci1tb2R1bGUgcmVnaXN0ZXIKbGlzdHMgaW4gbWVtb3J5LCB3aGljaCB0 aGUgaGFyZHdhcmUgY29tbWFuZC1saXN0IGVuZ2luZSByZXBsYXlzLgoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0L2RwdS9kcHVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9zcGFjZW1pdC9kcHUvZHB1X3RyYWNlLmgKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi5hYmZlMzRh NjdhNGJkIDEwMDY0NAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Bh Y2VtaXQvZHB1L2RwdV90cmFjZS5oClsgLi4uIF0KPiArVFJBQ0VfRVZFTlQoZHB1X3BsYW5lX2lu Zm8sCj4gKwkgICAgVFBfUFJPVE8oc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUsIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICsJCSAgICAgdTMyIHJkbWFfaWQsIHUzMiBhbHBoYSwg dTMyIHJvdGF0aW9uKSwKPiArCVRQX0FSR1Moc3RhdGUsIGZiLCByZG1hX2lkLCBhbHBoYSwgcm90 YXRpb24pLAo+ICsJVFBfU1RSVUNUX19lbnRyeSgKPiArCQkJX19maWVsZCh1MzIsIHJkbWFfaWQp Cj4gKwkJCV9fZmllbGQodTMyLCBzcmNfdykKPiArCQkJX19maWVsZCh1MzIsIHNyY19oKQo+ICsJ CQlfX2ZpZWxkKHUzMiwgc3JjX3gpCj4gKwkJCV9fZmllbGQodTMyLCBzcmNfeSkKPiArCQkJX19m aWVsZCh1MzIsIGNydGNfdykKPiArCQkJX19maWVsZCh1MzIsIGNydGNfaCkKPiArCQkJX19maWVs ZCh1MzIsIGNydGNfeCkKPiArCQkJX19maWVsZCh1MzIsIGNydGNfeSkKPiArCQkJX19maWVsZCh1 MzIsIHdpZHRoKQo+ICsJCQlfX2ZpZWxkKHUzMiwgaGVpZ2h0KQo+ICsJCQlfX2ZpZWxkKHUzMiwg Zm9ybWF0KQo+ICsJCQlfX2ZpZWxkKHUzMiwgYmxlbmRfbW9kZSkKPiArCQkJX19maWVsZCh1MzIs IGFscGhhKQo+ICsJCQlfX2ZpZWxkKHUzMiwgenBvcykKPiArCQkJX19maWVsZCh1MzIsIHJvdGF0 aW9uKQo+ICsJKSwKPiArCVRQX2Zhc3RfYXNzaWduKAo+ICsJCQlfX2VudHJ5LT5yZG1hX2lkID0g cmRtYV9pZDsKPiArCQkJX19lbnRyeS0+c3JjX3cgPSBzdGF0ZS0+c3JjX3cgPj4gMTY7Cj4gKwkJ CV9fZW50cnktPnNyY19oID0gc3RhdGUtPnNyY19oID4+IDE2Owo+ICsJCQlfX2VudHJ5LT5zcmNf eCA9IHN0YXRlLT5zcmNfeCA+PiAxNjsKPiArCQkJX19lbnRyeS0+c3JjX3kgPSBzdGF0ZS0+c3Jj X3kgPj4gMTY7Cj4gKwkJCV9fZW50cnktPmNydGNfdyA9IHN0YXRlLT5jcnRjX3c7Cj4gKwkJCV9f ZW50cnktPmNydGNfaCA9IHN0YXRlLT5jcnRjX2g7Cj4gKwkJCV9fZW50cnktPmNydGNfeCA9IHN0 YXRlLT5jcnRjX3g7Cj4gKwkJCV9fZW50cnktPmNydGNfeSA9IHN0YXRlLT5jcnRjX3k7Cj4gKwkJ CV9fZW50cnktPndpZHRoID0gZmItPndpZHRoOwo+ICsJCQlfX2VudHJ5LT5oZWlnaHQgPSBmYi0+ aGVpZ2h0Owo+ICsJCQlfX2VudHJ5LT5mb3JtYXQgPSBmYi0+Zm9ybWF0LT5mb3JtYXQ7CgpbU2V2 ZXJpdHk6IEhpZ2hdCkNhbiB0aGlzIGRlcmVmZXJlbmNlIGEgTlVMTCBwb2ludGVyPyBXaGVuIGEg cGxhbmUgaXMgZGlzYWJsZWQgZHVyaW5nIGFuCmF0b21pYyBjb21taXQsIHN0YXRlLT5mYiBtaWdo dCBiZSBOVUxMLiBVbmNvbmRpdGlvbmFsbHkgcmVhZGluZyBmYi0+d2lkdGgKaGVyZSBjb3VsZCBj YXVzZSBhIGtlcm5lbCBwYW5pYyBpZiB0cmFjaW5nIGlzIGVuYWJsZWQuCgo+ICsJCQlfX2VudHJ5 LT5ibGVuZF9tb2RlID0gc3RhdGUtPnBpeGVsX2JsZW5kX21vZGU7Cj4gKwkJCV9fZW50cnktPmFs cGhhID0gYWxwaGE7Cj4gKwkJCV9fZW50cnktPnpwb3MgPSBzdGF0ZS0+enBvczsKPiArCQkJX19l bnRyeS0+cm90YXRpb24gPSByb3RhdGlvbjsKPiArCSksClsgLi4uIF0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0L3NwYWNlbWl0X2NtZGxpc3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9zcGFjZW1pdC9zcGFjZW1pdF9jbWRsaXN0LmMKPiBpbmRleCAwMDAwMDAwMDAwMDAwLi43 ODdkMzhlOWUxMzVmIDEwMDY0NAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vc3BhY2VtaXQvc3BhY2VtaXRfY21kbGlzdC5jClsgLi4uIF0KPiArdm9pZCBjbWRsaXN0X3Jl Z3NfcGFja2luZyhzdHJ1Y3QgY21kbGlzdCAqY2wsIGVudW0gY21kbGlzdF9tb2RlX3R5cGUgbW9k LAo+ICsJCQkgIHN0cnVjdCBjbWRsaXN0X3JlZ3MgKmNsX3JlZ3MpCj4gK3sKWyAuLi4gXQo+ICsJ Zm9yIChpID0gMDsgaSA8IGNsX3JlZ3MtPnNpemU7KSB7Cj4gKwkJdTMyIHZhbHVlW0NNRExJU1Rf Uk9XX1JFR1NdID0gezB4MH07Cj4gKwkJdTMyIG9mZnNldCwgc3Ryb2JlID0gMDsKPiArCQl1OCBy ZWdzX2luX3JvdyA9IDA7Cj4gKwo+ICsJCWlmIChjbF9yZWdzLT5mbGFnc1tpXSkgewo+ICsJCQlv ZmZzZXQgPSBjbF9yZWdzLT5iYXNlICsgaSAqIHNpemVvZih1MzIpOwo+ICsJCQlmb3IgKHU4IGog PSAwOyBqIDwgQ01ETElTVF9ST1dfUkVHUzsgaisrKSB7Cj4gKwkJCQlpbmRleCA9IGkgKyBqOwo+ ICsJCQkJaWYgKGxpa2VseShpbmRleCA8IGNsX3JlZ3MtPnNpemUpKSB7Cj4gKwkJCQkJaWYgKGNs X3JlZ3MtPmZsYWdzW2luZGV4XSkgewo+ICsJCQkJCQl2YWx1ZVtqXSA9IHJlZ19iYXNlW2luZGV4 XTsKPiArCQkJCQkJcmVnc19pbl9yb3crKzsKPiArCQkJCQkJc3Ryb2JlIHw9IENNRExJU1RfUkVH X1NUUk9CRShqKTsKPiArCQkJCQl9Cj4gKwkJCQl9IGVsc2Ugewo+ICsJCQkJCWJyZWFrOwo+ICsJ CQkJfQo+ICsJCQl9Cj4gKwkJCWh3ZGV2LT5jbWRsaXN0X2ZpbGxfZGF0YV9yb3coY2wsIHN0cm9i ZSwgb2Zmc2V0LCB2YWx1ZSk7Cj4gKwkJCS8qCj4gKwkJCSAqIHRoZSByb3cgY292ZXJzIHRoZSB3 aG9sZSB3aW5kb3c7IGEgc2hvcnRlciBzdHJpZGUKPiArCQkJICogd291bGQgcmV2aXNpdCBjb3Zl cmVkIHdvcmRzIGFzIGR1cGxpY2F0ZSByb3dzCj4gKwkJCSAqLwo+ICsJCQlpICs9IENNRExJU1Rf Uk9XX1JFR1M7Cj4gKwkJCWNsLT5ub2RfbGVuKys7CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIHRoZXJl IGEgcmlzayBvZiBvdmVyZmxvd2luZyB0aGUgRE1BIGNvbW1hbmQgbGlzdCBidWZmZXIgaGVyZT8g VGhlIGxvb3AKaW5jcmVtZW50cyBjbC0+bm9kX2xlbiBhbmQgd3JpdGVzIHRvIG1lbW9yeSwgYnV0 IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZQphIGJvdW5kcyBjaGVjayB0byBlbnN1cmUgdGhlIHBh Y2tlZCByb3dzIGRvIG5vdCBleGNlZWQgdGhlIGFsbG9jYXRlZApjYXBhY2l0eSBpbiBjbC0+c2l6 ZS4KCj4gKwkJfSBlbHNlIHsKPiArCQkJaSsrOwo+ICsJCX0KPiArCX0KPiArCj4gKwlkcm1fZGJn KGFfY3J0Yy0+Y3J0Yy5kZXYsICJyb3dfbnVtID0gJWRcbiIsIGNsLT5ub2RfbGVuKTsKPiArfQo+ ICsKPiArdm9pZCBjbWRsaXN0X3NvcnRfYnlfZ3JvdXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICt7Cj4gKwlzdHJ1Y3QgY21kbGlzdCAqZmlyc3RfY2w7Cj4gKwlzdHJ1Y3QgY21kbGlzdCAqbGFz dF9jbDsKPiArCXN0cnVjdCBjbWRsaXN0ICpwOwo+ICsJc3RydWN0IGNtZGxpc3QgKnByZXY7Cj4g KwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiArCXN0cnVjdCBzcGFjZW1pdF9jcnRjX3JkbWEg KnJkbWFzID0KPiArCQkJdG9fc3BhY2VtaXRfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktPnJkbWFz Owo+ICsJc3RydWN0IHNwYWNlbWl0X2RybV9wcml2YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZf cHJpdmF0ZTsKPiArCj4gKwlkcm1fYXRvbWljX2NydGNfZm9yX2VhY2hfcGxhbmUocGxhbmUsIGNy dGMpIHsKPiArCQlzdHJ1Y3Qgc3BhY2VtaXRfcGxhbmVfc3RhdGUgKnNwYWNlbWl0X3BzdGF0ZSA9 Cj4gKwkJCXRvX3NwYWNlbWl0X3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7Cj4gKwkJdTMyIHJk bWFfaWQgPSBzcGFjZW1pdF9wc3RhdGUtPnJkbWFfaWQ7Cj4gKwo+ICsJCWZpcnN0X2NsID0gJnNw YWNlbWl0X3BzdGF0ZS0+Y2w7Cj4gKwkJaWYgKCFmaXJzdF9jbC0+dmEpCj4gKwkJCWNvbnRpbnVl Owo+ICsKPiArCQlsYXN0X2NsID0gZmlyc3RfY2w7Cj4gKwkJbGFzdF9jbC0+bmV4dCA9IE5VTEw7 Cj4gKwo+ICsJCXJkbWFzW3JkbWFfaWRdLmluX3VzZSA9IHRydWU7CgpbU2V2ZXJpdHk6IE1lZGl1 bV0KQ291bGQgcmRtYV9pZCBleGNlZWQgdGhlIGJvdW5kcyBvZiB0aGUgYXJyYXk/IEl0IGlzIHVz ZWQgZGlyZWN0bHkgYXMgYW4KaW5kZXggZm9yIHRoZSByZG1hcyBhcnJheSB3aXRob3V0IGNoZWNr aW5nIGlmIGl0IGlzIHdpdGhpbiBod2Rldi0+cmRtYV9udW1zLgoKPiArCQlpZiAocHJpdi0+Y21k bGlzdF9ncm91cHNbcmRtYV9pZF0pIHsKCltTZXZlcml0eTogSGlnaF0KRG9lcyBtb2RpZnlpbmcg dGhlIGdsb2JhbCBwcml2LT5jbWRsaXN0X2dyb3VwcyBhcnJheSBoZXJlIGNhdXNlIGRhdGEgcmFj ZXM/ClNpbmNlIHRoaXMgYXJyYXkgaXMgc3RvcmVkIGluIHRoZSBzaGFyZWQgc3BhY2VtaXRfZHJt X3ByaXZhdGUgc3RydWN0dXJlLApjb25jdXJyZW50IGF0b21pYyBjb21taXRzIG9uIG11bHRpcGxl IENSVENzIG1pZ2h0IG92ZXJ3cml0ZSBlYWNoIG90aGVyJ3MKY29tbWFuZCBsaXN0cyB3aXRob3V0 IGxvY2tpbmcuCgo+ICsJCQlwID0gcHJpdi0+Y21kbGlzdF9ncm91cHNbcmRtYV9pZF07Cj4gKwkJ CXByZXYgPSBOVUxMOwo+ICsJCQl3aGlsZSAocCkgewo+ICsJCQkJaWYgKGNsX3RvX3NwYWNlbWl0 X3BzdGF0ZShwKS0+c3RhdGUuY3J0Y195IDwKPiArCQkJCSAgICBzcGFjZW1pdF9wc3RhdGUtPnN0 YXRlLmNydGNfeSkgewo+ICsJCQkJCXByZXYgPSBwOwo+ICsJCQkJCXAgPSBwLT5uZXh0Owo+ICsJ CQkJfSBlbHNlIHsKPiArCQkJCQlicmVhazsKPiArCQkJCX0KPiArCQkJfQo+ICsJCQlpZiAoIXBy ZXYpIHsKPiArCQkJCXByaXYtPmNtZGxpc3RfZ3JvdXBzW3JkbWFfaWRdID0gZmlyc3RfY2w7Cj4g KwkJCQlsYXN0X2NsLT5uZXh0ID0gcDsKPiArCQkJfSBlbHNlIHsKPiArCQkJCXByZXYtPm5leHQg PSBmaXJzdF9jbDsKPiArCQkJCWxhc3RfY2wtPm5leHQgPSBwOwo+ICsJCQl9Cj4gKwkJfSBlbHNl IHsKPiArCQkJcHJpdi0+Y21kbGlzdF9ncm91cHNbcmRtYV9pZF0gPSBmaXJzdF9jbDsKPiArCQl9 Cj4gKwl9Cj4gK30KPiArCj4gK3ZvaWQgY21kbGlzdF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKPiArCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfc3RhdGUpCj4g K3sKWyAuLi4gXQo+ICsJZm9yIChpID0gMDsgaSA8IGh3ZGV2LT5yZG1hX251bXM7IGkrKykgewo+ ICsJCWlmIChvbGRfcmRtYXNbaV0uaW5fdXNlKQo+ICsJCQlod2Rldi0+ZW5hYmxlX2NtZGxpc3Qo YV9jcnRjLCBod2RldiwgaSwgZmFsc2UpOwo+ICsKPiArCQlpZiAoY3VyX3JkbWFzW2ldLmluX3Vz ZSkgewo+ICsJCQlkcm1fZGJnKGNydGMtPmRldiwgImNtZGxpc3QgZ3JvdXAgPSAlZFxuIiwgaSk7 Cj4gKwkJCWN1cl9jbCA9IHByaXYtPmNtZGxpc3RfZ3JvdXBzW2ldOwo+ICsJCQlmaXJzdF9jbCA9 IGN1cl9jbDsKPiArCQkJd2hpbGUgKGN1cl9jbCkgewo+ICsJCQkJaHdkZXYtPmNtZGxpc3RfZmls bF9jb25mX3JvdyhjdXJfY2wsIGh3ZGV2LAo+ICsJCQkJCUNNRExJU1RfQ01QX0lOVkFMSUQpOwo+ ICsJCQkJY21kbGlzdF9kdW1wX25vZGUoY3VyX2NsKTsKPiArCQkJCWN1cl9jbCA9IGN1cl9jbC0+ bmV4dDsKPiArCQkJfQo+ICsJCQljaHkgPSBjbF90b19zcGFjZW1pdF9wc3RhdGUoZmlyc3RfY2wp LT5zdGF0ZS5jcnRjX3k7CgpbU2V2ZXJpdHk6IEhpZ2hdCkNvdWxkIGZpcnN0X2NsIGJlIE5VTEwg aGVyZT8gSWYgY3VyX3JkbWFzW2ldLmluX3VzZSBpcyB0cnVlIGJ1dApwcml2LT5jbWRsaXN0X2dy b3Vwc1tpXSBpcyBlbXB0eSwgZmlyc3RfY2wgd291bGQgYmUgTlVMTC4gVGhpcyBjYW4gaGFwcGVu CmlmIHBsYW5lcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBzdGF0ZSBidXQgaW5fdXNlIHdhcyBjb3Bp ZWQgYXMgdHJ1ZSBmcm9tIHRoZQpvbGQgc3RhdGUuIFRoZSBjbF90b19zcGFjZW1pdF9wc3RhdGUg bWFjcm8gd291bGQgeWllbGQgYSBuZWdhdGl2ZSBvZmZzZXQKZnJvbSBOVUxMLCByZXN1bHRpbmcg aW4gYSBjcmFzaC4KCj4gKwkJCWFkZHJsID0gKGxvd2VyXzMyX2JpdHMocHJpdi0+Y21kbGlzdF9n cm91cHNbaV0tPnBhKSAmCj4gKwkJCQkgQ01ETElTVF9BRERSTF9BTElHTl9NQVNLKSA+PiBDTURM SVNUX0FERFJMX0FMSUdOX0JJVFM7Cj4gKwo+ICsJCQlhZGRyaCA9IHVwcGVyXzMyX2JpdHMocHJp di0+Y21kbGlzdF9ncm91cHNbaV0tPnBhKTsKPiArCQkJaHdkZXYtPmNmZ19jbWRsaXN0KGh3ZGV2 LCBpLCBjaHksIGFkZHJsLCBhZGRyaCk7Cj4gKwkJCWh3ZGV2LT5lbmFibGVfY21kbGlzdChhX2Ny dGMsIGh3ZGV2LCBpLCB0cnVlKTsKPiArCQkJcHJpdi0+Y21kbGlzdF9ncm91cHNbaV0gPSBOVUxM Owo+ICsJCX0KPiArCX0KPiArfQo+ICsKWyAuLi4gXQo+ICt2b2lkIGNydGNfY21kbGlzdF9hdG9t aWNfY29tbWl0KHN0cnVjdCBzcGFjZW1pdF9jcnRjICphX2NydGMpCj4gK3sKPiArCXN0cnVjdCBj bWRsaXN0ICpjdXJfY2w7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmYV9jcnRjLT5jcnRj Owo+ICsJc3RydWN0IHNwYWNlbWl0X2RybV9wcml2YXRlICpwcml2ID0gY3J0Yy0+ZGV2LT5kZXZf cHJpdmF0ZTsKPiArCXN0cnVjdCBzcGFjZW1pdF9od19kZXZpY2UgKmh3ZGV2ID0gcHJpdi0+aHdk ZXY7Cj4gKwl1OCBjcnRjX2lkID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7Cj4gKwl1OCBkZXZfaWQg PSBhX2NydGMtPmRldl9pZDsKPiArCj4gKwlkcm1fZGJnKGNydGMtPmRldiwgImNtZGxpc3QgZ3Jv dXAgPSAlZFxuIiwKPiArCQlod2Rldi0+cmRtYV9udW1zICsgY3J0Y19pZCk7Cj4gKwljdXJfY2wg PSBwcml2LT5jbWRsaXN0X2dyb3Vwc1tod2Rldi0+cmRtYV9udW1zICsgY3J0Y19pZF07Cj4gKwl3 aGlsZSAoY3VyX2NsKSB7Cj4gKwkJaHdkZXYtPmNtZGxpc3RfZmlsbF9jb25mX3JvdyhjdXJfY2ws IGh3ZGV2LCBkZXZfaWQpOwo+ICsJCWNtZGxpc3RfZHVtcF9ub2RlKGN1cl9jbCk7Cj4gKwkJY3Vy X2NsID0gY3VyX2NsLT5uZXh0Owo+ICsJfQo+ICsJaHdkZXYtPmNydGNfY21kbGlzdChjdXJfY2ws IGh3ZGV2LCBwcml2LCBjcnRjX2lkLCBkZXZfaWQpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRo aXMgcGFzcyBhIGd1YXJhbnRlZWQgTlVMTCBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBjYWxsYmFj az8KVGhlIHdoaWxlIGxvb3AgZXhoYXVzdHMgY3VyX2NsIHRvIE5VTEwsIHdoaWNoIGlzIHRoZW4g aW1tZWRpYXRlbHkgcGFzc2VkCnRvIGh3ZGV2LT5jcnRjX2NtZGxpc3QuIEl0IGxvb2tzIGxpa2Ug dGhlIGhlYWQgb2YgdGhlIGxpc3Qgc2hvdWxkIGJlCnBhc3NlZCBpbnN0ZWFkLgoKPiArfQo+ICsK PiArLyogQ2FsbGVkIGZyb20gYXRvbWljX2NoZWNrKCksIHdoZXJlIC1FTk9NRU0gaXMgc3RpbGwg YW4gYW5zd2VyLiAqLwo+ICtpbnQgc3BhY2VtaXRfY21kbGlzdF9hbGxvYyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBjbWRsaXN0ICpjbCkKPiArewo+ICsJaWYgKGNsLT52YSkKPiArCQlyZXR1 cm4gMDsKCltTZXZlcml0eTogQ3JpdGljYWxdCkRvZXMgcmV0dXJuaW5nIGVhcmx5IHdoZW4gY2wt PnZhIGlzIHByZXNlbnQgY2F1c2UgYWN0aXZlIGRpc3BsYXkgY29ycnVwdGlvbj8KQmVjYXVzZSBz dHJ1Y3QgY21kbGlzdCBpcyBlbWJlZGRlZCBkaXJlY3RseSBpbiB0aGUgcGxhbmUgc3RhdGUsIERS TSdzIHN0YXRlCmR1cGxpY2F0aW9uIHdpbGwgc2hhbGxvdy1jb3B5IGNsLT52YS4gSWYgYXRvbWlj X3VwZGF0ZSBtdXRhdGVzIHRoaXMgc2FtZQp2aXJ0dWFsIGFkZHJlc3Mgd2hpbGUgdGhlIGhhcmR3 YXJlIGlzIGFjdGl2ZWx5IHJlYWRpbmcgaXQgZnJvbSB0aGUgb2xkCnN0YXRlLCBpdCBjb3VsZCBs ZWFkIHRvIHNjcmVlbiB0ZWFyaW5nIG9yIERQVSBoYW5ncy4gRE1BIGJ1ZmZlcnMgZm9yCmNvbW1h bmQgbGlzdHMgZ2VuZXJhbGx5IG5lZWQgdG8gYmUgbXVsdGktYnVmZmVyZWQgb3IgYWxsb2NhdGVk IHBlci1zdGF0ZS4KCj4gKwo+ICsJY2wtPnNpemUgPSBQRVJfQ01ETElTVF9TSVpFOwo+ICsJY2wt PnZhID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgY2wtPnNpemUsICZjbC0+cGEsCj4gKwkJCQkg ICAgR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOwo+ICsJaWYgKCFjbC0+dmEpCj4gKwkJcmV0dXJu IC1FTk9NRU07CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSXMgdGhlcmUgYSBjb3JyZXNwb25kaW5nIGRt YV9mcmVlX2NvaGVyZW50KCkgZHVyaW5nIHN0YXRlIGRlc3RydWN0aW9uPwpJZiB0aGUgYWxsb2Nh dGVkIGNsLT52YSBpcyBuZXZlciBmcmVlZCB3aGVuIHRoZSBhdG9taWMgc3RhdGUgaXMgZGVzdHJv eWVkLAp0aGlzIG1pZ2h0IGNhdXNlIGEgc3RlYWR5IGxlYWsgb2YgRE1BIG1lbW9yeS4KCj4gKwo+ ICsJcmV0dXJuIDA7Cj4gK30KWyAuLi4gXQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c3BhY2VtaXQvc3BhY2VtaXRfZG1tdS5jIGIvZHJpdmVycy9ncHUvZHJtL3NwYWNlbWl0L3NwYWNl bWl0X2RtbXUuYwo+IGluZGV4IDAwMDAwMDAwMDAwMDAuLjJhZTMwZGQxYTRmMjMgMTAwNjQ0Cj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zcGFjZW1pdC9zcGFjZW1pdF9k bW11LmMKWyAuLi4gXQo+ICtpbnQgc3BhY2VtaXRfZG1tdV9tYXAoc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsIHN0cnVjdCBkcHVfbW11X3RibCAqbW11X3RibCwKPiArCQkgICAgICB1OCB0YnVf aWQsIHN0cnVjdCBjbWRsaXN0X3JlZ3MgKmNsX3JkbWEsCj4gKwkJIHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3BhY2VtaXRfZHJtX3ByaXZhdGUgKnByaXYgPSBmYi0+ ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBzcGFjZW1pdF9od19kZXZpY2UgKmh3ZGV2ID0g cHJpdi0+aHdkZXY7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQgPSBO VUxMOwo+ICsJc3RydWN0IHNnX3RhYmxlICpzZ3QgPSBOVUxMOwo+ICsJdTMyIHRvdGFsX3NpemUs IG9mZnNldDEsIG9mZnNldDI7Cj4gKwlzdHJ1Y3QgdGJ1X2luc3RhbmNlIHRidSA9IHsgfTsKPiAr CXU4IHBsYW5lX251bTsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJZm9ybWF0ID0gZmItPmZvcm1hdDsK PiArCXNndCA9IGRybV9nZW1fc2htZW1fZ2V0X3BhZ2VzX3NndCh0b19kcm1fZ2VtX3NobWVtX29i aihmYi0+b2JqWzBdKSk7CgpbU2V2ZXJpdHk6IEhpZ2hdCldpbGwgdGhpcyBzbGVlcCBpbiBhdG9t aWMgY29udGV4dD8gVGhpcyBmdW5jdGlvbiBhcHBlYXJzIHRvIGJlIGNhbGxlZApkdXJpbmcgaGFy ZHdhcmUgcHJvZ3JhbW1pbmcgaW4gdGhlIGF0b21pYyBjb21taXQgcGhhc2UuIENhbGxpbmcKZHJt X2dlbV9zaG1lbV9nZXRfcGFnZXNfc2d0IGFsbG9jYXRlcyBtZW1vcnkgYW5kIGNhbiBhY3F1aXJl IGEgbXV0ZXgsCndoaWNoIGlzIGZvcmJpZGRlbiBpbiBhdG9taWMgY29udGV4dC4gQnVmZmVyIG1h cHBpbmcgdHlwaWNhbGx5IG5lZWRzIHRvIGJlCmRlZmVycmVkIHRvIHRoZSBzbGVlcGFibGUgcHJl cGFyZV9mYiBjYWxsYmFjay4KCltTZXZlcml0eTogSGlnaF0KRG9lcyBtYXBwaW5nIG9ubHkgZmIt Pm9ialswXSBicmVhayBtdWx0aS1wbGFuYXIgZnJhbWVidWZmZXJzPyBJZiB1c2Vyc3BhY2UKcHJv dmlkZXMgYSBtdWx0aS1wbGFuYXIgZnJhbWVidWZmZXIgd2hlcmUgdGhlIHBsYW5lcyByZXNpZGUg aW4gZGlmZmVyZW50IEdFTQpvYmplY3RzLCBleHRyYWN0aW5nIHRoZSBTRyB0YWJsZSBvbmx5IGZv ciBvYmpbMF0gd2lsbCByZXN1bHQgaW4gaW5jb3JyZWN0CnBoeXNpY2FsIG1lbW9yeSBwYWdlcyBm b3IgdGhlIHNlY29uZGFyeSBwbGFuZXMuCgo+ICsJaWYgKElTX0VSUihzZ3QpKQo+ICsJCXJldHVy biBQVFJfRVJSKHNndCk7Cj4gKwo+ICsJcGxhbmVfbnVtID0gZm9ybWF0LT5udW1fcGxhbmVzOwo+ ICsKPiArCXRvdGFsX3NpemUgPSByb3VuZHVwKGZiLT5vYmpbMF0tPnNpemUsIFBBR0VfU0laRSk7 Cj4gKwo+ICsJb2Zmc2V0MSA9IHBsYW5lX251bSA+IDEgPyBmYi0+b2Zmc2V0c1sxXSA6IHRvdGFs X3NpemU7Cj4gKwlvZmZzZXQyID0gcGxhbmVfbnVtID4gMiA/IGZiLT5vZmZzZXRzWzJdIDogdG90 YWxfc2l6ZTsKPiArCj4gKwlzd2l0Y2ggKHBsYW5lX251bSkgewo+ICsJY2FzZSAzOgo+ICsJCXRi dS50dGJfcGFbMl0gPSBtbXVfdGJsLT5wYSArIChvZmZzZXQyID4+IFBBR0VfU0hJRlQpICogNDsK PiArCQl0YnUudGJ1X3ZhWzJdID0gVEJVX0JBU0VfVkEodGJ1X2lkKSArIG9mZnNldDI7CgpbU2V2 ZXJpdHk6IE1lZGl1bV0KQ291bGQgYWRkaW5nIG9mZnNldDIgZGlyZWN0bHkgdG8gVEJVX0JBU0Vf VkEgcmVzdWx0IGluIHVuYWxpZ25lZCBiYXNlCnZpcnR1YWwgYWRkcmVzc2VzPyBJZiB1c2Vyc3Bh Y2Ugc3VwcGxpZXMgYW4gb2Zmc2V0IHRoYXQgaXMgbm90IGEgbXVsdGlwbGUKb2YgUEFHRV9TSVpF LCBwcm9ncmFtbWluZyBhbiB1bmFsaWduZWQgdmlydHVhbCBhZGRyZXNzIG1pZ2h0IGNvbmZ1c2Ug dGhlCmhhcmR3YXJlIE1NVS4KCj4gKwkJdGJ1LnR0Yl9zaXplWzJdID0gUEFHRV9BTElHTih0b3Rh bF9zaXplIC0gcm91bmRkb3duKG9mZnNldDIsIFBBR0VfU0laRSkpCj4gKwkJCQkgID4+IFBBR0Vf U0hJRlQ7CgpbU2V2ZXJpdHk6IENyaXRpY2FsXQpDYW4gdGhpcyBzaXplIGNhbGN1bGF0aW9uIHVu ZGVyZmxvdz8gSWYgYSBtYWxpY2lvdXMgdXNlcnNwYWNlIGNsaWVudApwcm92aWRlcyBvZmZzZXQy IHNtYWxsZXIgdGhhbiBvZmZzZXQxLCB0aGUgdW5zaWduZWQgc3VidHJhY3Rpb24Kb2Zmc2V0MiAt IHJvdW5kZG93bihvZmZzZXQxLCBQQUdFX1NJWkUpIHdpbGwgdW5kZXJmbG93IHRvIGEgbWFzc2l2 ZQpwb3NpdGl2ZSB2YWx1ZS4gVGhpcyBjb3VsZCBwcm9ncmFtIHRoZSBETU1VIHdpdGggYSBodWdl IHRyYW5zbGF0aW9uIGJsb2NrLAphbGxvd2luZyBhcmJpdHJhcnkgb3V0LW9mLWJvdW5kcyBwaHlz aWNhbCBtZW1vcnkgcmVhZHMuCgo+ICsJCWZhbGx0aHJvdWdoOwo+ICsJY2FzZSAyOgo+ICsJCXRi dS50dGJfcGFbMV0gPSBtbXVfdGJsLT5wYSArIChvZmZzZXQxID4+IFBBR0VfU0hJRlQpICogNDsK PiArCQl0YnUudGJ1X3ZhWzFdID0gVEJVX0JBU0VfVkEodGJ1X2lkKSArIG9mZnNldDE7Cj4gKwkJ dGJ1LnR0Yl9zaXplWzFdID0gUEFHRV9BTElHTihvZmZzZXQyIC0gcm91bmRkb3duKG9mZnNldDEs IFBBR0VfU0laRSkpID4+IFBBR0VfU0hJRlQ7Cj4gKwkJZmFsbHRocm91Z2g7Cj4gKwljYXNlIDE6 Cj4gKwkJdGJ1LnR0Yl9wYVswXSA9IG1tdV90YmwtPnBhOwo+ICsJCXRidS50YnVfdmFbMF0gPSBU QlVfQkFTRV9WQSh0YnVfaWQpOwo+ICsJCXRidS50dGJfc2l6ZVswXSA9IFBBR0VfQUxJR04ob2Zm c2V0MSkgPj4gUEFHRV9TSElGVDsKPiArCQlmYWxsdGhyb3VnaDsKPiArCWRlZmF1bHQ6Cj4gKwkJ YnJlYWs7Cj4gKwl9ClsgLi4uIF0KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nh c2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA3MjUtazMtZGlzcGxheS12MS0wLTZkZTM0ZDgwZTg2 Y0BnbWFpbC5jb20/cGFydD04CgotLSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1waHkK