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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 003ECC433E0 for ; Fri, 19 Feb 2021 21:42:51 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2A17764E92 for ; Fri, 19 Feb 2021 21:42:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2A17764E92 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=stuge.se Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 99B676EC15; Fri, 19 Feb 2021 21:42:50 +0000 (UTC) Received: from foo.stuge.se (foo.stuge.se [212.116.89.98]) by gabe.freedesktop.org (Postfix) with ESMTPS id 329226EC15 for ; Fri, 19 Feb 2021 21:42:48 +0000 (UTC) Received: (qmail 11331 invoked by uid 1000); 19 Feb 2021 21:42:43 -0000 Message-ID: <20210219214243.11330.qmail@stuge.se> Date: Fri, 19 Feb 2021 21:42:43 +0000 From: Peter Stuge To: Noralf =?utf-8?Q?Tr=C3=B8nnes?= Subject: Re: [PATCH v6 3/3] drm: Add GUD USB Display driver References: <20210219121702.50964-1-noralf@tronnes.org> <20210219121702.50964-4-noralf@tronnes.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210219121702.50964-4-noralf@tronnes.org> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: hudson@trmm.net, markus@raatikainen.cc, Daniel Vetter , linux-usb@vger.kernel.org, dri-devel@lists.freedesktop.org, th020394@gmail.com, lkundrak@v3.sk, pontus.fuchs@gmail.com, sam@ravnborg.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgTm9yYWxmLAoKTm9yYWxmIFRyw7hubmVzIHdyb3RlOgo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9ndWQvZ3VkX2Nvbm5lY3Rvci5jCi4uCj4gK3N0YXRpYyBpbnQgZ3VkX2Nvbm5lY3Rvcl9nZXRf ZWRpZF9ibG9jayh2b2lkICpkYXRhLCB1OCAqYnVmLCB1bnNpZ25lZCBpbnQgYmxvY2ssIHNpemVf dCBsZW4pCi4uCj4gKwlzdHJ1Y3QgZ3VkX2Nvbm5lY3RvciAqZ2Nvbm4gPSBjdHgtPmdjb25uOwo+ ICsJc2l6ZV90IHN0YXJ0ID0gYmxvY2sgKiBFRElEX0xFTkdUSDsKPiArCj4gKwlpZiAoc3RhcnQg KyBsZW4gPiBnY29ubi0+ZWRpZF9sZW4pCj4gKwkJcmV0dXJuIC0xOwo+ICsKPiArCWlmICghYmxv Y2spIHsKPiArCQlzdHJ1Y3QgZ3VkX2RldmljZSAqZ2RybSA9IHRvX2d1ZF9kZXZpY2UoZ2Nvbm4t PmNvbm5lY3Rvci5kZXYpOwo+ICsJCWludCByZXQ7Cj4gKwo+ICsJCS8qIENoZWNrIGJlY2F1c2Ug ZHJtX2RvX2dldF9lZGlkKCkgd2lsbCByZXRyeSBvbiBmYWlsdXJlICovCj4gKwkJaWYgKCFjdHgt PmJ1ZikKPiArCQkJY3R4LT5idWYgPSBrbWFsbG9jKGdjb25uLT5lZGlkX2xlbiwgR0ZQX0tFUk5F TCk7Cj4gKwkJaWYgKCFjdHgtPmJ1ZikKPiArCQkJcmV0dXJuIC0xOwo+ICsKPiArCQlyZXQgPSBn dWRfdXNiX2dldChnZHJtLCBHVURfUkVRX0dFVF9DT05ORUNUT1JfRURJRCwgZ2Nvbm4tPmNvbm5l Y3Rvci5pbmRleCwKPiArCQkJCSAgY3R4LT5idWYsIGdjb25uLT5lZGlkX2xlbik7Ci4uCj4gKwlt ZW1jcHkoYnVmLCBjdHgtPmJ1ZiArIHN0YXJ0LCBsZW4pOwoKRGFuZ2VyLCBkYW5nZXI/CgpnY29u bi0+ZWRpZF9sZW4gaW4gdGhpcyBjYWxsIHRvIGd1ZF91c2JfZ2V0KCkgY29tZXMgZnJvbSB0aGUg ZGV2aWNlIGluCmd1ZF9jb25uZWN0b3Jfc3RhdHVzX3JlcXVlc3QoKSB3aGVyZSB0aGUgb25seSB2 YWxpZGF0aW9uIGlzIHRoYXQKZWRpZF9sZW4gJSBFRElEX0xFTkdUSCA9PSAwLCBzbyBhIGRldmlj ZSBjb3VsZCB3cml0ZSBwYXN0IHRoZSBidWZmZXIKaWYgZHJtX2RvX2dldF9lZGlkKCkgcGFzc2Vz IGEgYnVmZmVyIHNtYWxsZXIgdGhhbiBlZGlkX2xlbi4KCkkgZ3Vlc3MgdGhlIGJ1ZmZlciBwYXNz ZWQgaXMganVzdCAxMjgsIEVESURfTEVOR1RILCBzbyBhIG1hbGljaW91cwpvciBidWdneSBkZXZp Y2UgY291bGQgb3ZlcndyaXRlIDY0ay0xMjgga2VybmVsIG1lbW9yeT8gT3VjaCEKCgpNb3JlIGdl bmVyYWxseSBpdCdzIG5vdCB2ZXJ5IHR5cGljYWwgaW4gVVNCIHRvIHJlcG9ydCB0aGUgZGF0YSBz aXplCnNlcGFyYXRlbHkgZnJvbSB0aGUgZGF0YSBpdHNlbGYsIGlmIHJlcG9ydGluZyBzaXplIGV4 cGxpY2l0bHkgYXQgYWxsLgoKU2l6ZXMgY2FuIGJlIHBhcnQgb2YgdGhlIGRhdGEgc3RydWN0dXJl IGl0c2VsZiAobGlrZSBpbiBkZXNjcmlwdG9ycykgYnV0Cm9uIHRoZSBhcHBsaWNhdGlvbiBsYXll ciAobGlrZSBoZXJlKSBpdCdzIGNvbnZlbmllbnQgdG8ganVzdCBkZWNpZGUgYQpzZW5zaWJsZSBm aXhlZCBtYXhpbXVtIHNpemUgYW5kIGxldCB0aGUgaG9zdCB0cnkgdG8gYWx3YXlzIHRyYW5zZmVy CnRoYXQgc2l6ZSB3aGlsZSBhY2NlcHRpbmcgc2hvcnQgdHJhbnNmZXJzLiBVbmxpa2UgcmVhZCgp IGEgc2hvcnQKdHJhbnNmZXIgb25seSBldmVyIGhhcHBlbnMgaWYgYW5kIHdoZW4gYSBkZXZpY2Ug aW50ZW5kcyBmb3IgaXQsCnNvIHRoYXQncyBsaWtlIGFuIGluLWJhbmQgaGFuZHNoYWtlIGJ1dCAi Zm9yIGZyZWUiLgoKT2gsIGFuZCBkb2VzL3Nob3VsZCB0aGUgR1VEIEVESUQgY2hhbmdlIGlmIHRo ZSBwYW5lbCAiYmVoaW5kIiB0aGUgZGV2aWNlCkNQVSBvbiBhIGhvdHBsdWdnYWJsZSBjb25uZWN0 b3IgY2hhbmdlcz8gSXQgd291bGRuJ3QgYmUgZ3JlYXQgdG8gcmVxdWlyZQpHVUQgZHJpdmVyIHJl cHJvYmUgaW4gdGhhdCBjYXNlLiBCdXQgbWF5YmUgRFJNIHJlcXVpcmVzIHRoYXQgYW55d2F5PwoK CkknbSBzb3JyeSBJIGRpZG4ndCBzcG90IHRoaXMgcGF0dGVybiBlYXJsaWVyLCBJIHVuZGVyc3Rh bmQgdGhhdCBpdCdzIGxhdGUKaW4gdGhlIGdhbWUgYW5kIHRoYXQgY2hhbmdpbmcgaXQgbmVlZHMg dGhlIGdhZGdldCB0byBjaGFuZ2UgYXMgd2VsbCwgYnV0IEkKZG8gcmVhbGx5IHRoaW5rIHRoaXMg aXMgYSB3b3J0aHdoaWxlIGNoYW5nZSB0aHJvdWdob3V0IHRoZSBwcm90b2NvbC4KCkFuZCBJIHRo aW5rIGl0IGFwcGxpZXMgdG8gbW9yZSB0aGFuIEVESUQsIGUuZy4gYm90aCBHVUQgYW5kIGNvbm5l Y3Rvcgpwcm9wZXJ0aWVzLCBtYXliZSBmb3JtYXRzLCBzb21ldGhpbmcgZWxzZT8KCgpVbmZvcnR1 bmF0ZWx5LCB0aGUgZ3VkX3VzYl9jb250cm9sX21zZygpIGNoZWNrIChyZXQgIT0gbGVuKSBjcmVh dGVzIGEKcmVxdWlyZW1lbnQgdG8ga25vdyBpbiBhZHZhbmNlIGhvdyBtdWNoIGRhdGEgd2lsbCBi ZSB0cmFuc2ZlcmVkLgoKVGhhdCBjb3VsZCBiZSByZXZpc2VkIGF0IGxlYXN0IGZvciB0aGUgZ2Vu ZXJhbCBjYXNlLCBldmVuIGlmIG5vdCB1c2VkCmV2ZXJ5d2hlcmU7IG1heWJlIHNvbWV0aGluZyBs aWtlIGFkZGluZyBhIHNpemVfdCByZXF1aXJlZF9taW5fbGVuCnBhcmFtZXRlciB0byBndWRfdXNi X2NvbnRyb2xfbXNnKCk/CgoKPiArc3RhdGljIGludCBndWRfY29ubmVjdG9yX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgZ3VkX2Nvbm5l Y3RvciAqZ2Nvbm4gPSB0b19ndWRfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZ3Vk X2RldmljZSAqZ2RybSA9IHRvX2d1ZF9kZXZpY2UoY29ubmVjdG9yLT5kZXYpOwo+ICsJc3RydWN0 IGd1ZF9jb25uZWN0b3JfZ2V0X2VkaWRfY3R4IGVkaWRfY3R4ID0gewo+ICsJCS5nY29ubiA9IGdj b25uLAo+ICsJfTsKPiArCXN0cnVjdCBndWRfZGlzcGxheV9tb2RlX3JlcSAqcmVxbW9kZXMgPSBO VUxMOwo+ICsJdW5zaWduZWQgaW50IGksIG51bV9tb2RlcyA9IDA7CgpUaGUgZXJyb3IgcGF0aCBv ZiB0aGlzIGZ1bmN0aW9uIGV4ZWN1dGVzICJyZXR1cm4gbnVtX21vZGVzIiB3aXRoIG51bV9tb2Rl cwp1bm1vZGlmaWVkOyBpZS4gMC4gSXMgdGhhdCBpbnRlbnRpb25hbD8KCgo+ICtzdGF0aWMgaW50 IGd1ZF9jb25uZWN0b3JfYWRkX3R2X21vZGUoc3RydWN0IGd1ZF9kZXZpY2UgKmdkcm0sCi4uCj4g KwlidWZfbGVuID0gbnVtX21vZGVzICogR1VEX0NPTk5FQ1RPUl9UVl9NT0RFX05BTUVfTEVOOwo+ ICsJbW9kZXMgPSBrbWFsbG9jX2FycmF5KG51bV9tb2Rlcywgc2l6ZW9mKCptb2RlcyksIEdGUF9L RVJORUwpOwo+ICsJYnVmID0ga21hbGxvYyhidWZfbGVuLCBHRlBfS0VSTkVMKTsKCk1heWJlIG1v dmluZyB0aGUgYnVmIGFzc2lnbm1lbnQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBidWZfbGVu IGFzc2lnbm1lbnQKd291bGQgaGVscCByZWFkYWJpbGl0eT8gVGhpcyBpcyBxdWl0ZSBtaW5vci4K Cgo+ICtzdGF0aWMgaW50IGd1ZF9jb25uZWN0b3JfYWRkX3Byb3BlcnRpZXMoc3RydWN0IGd1ZF9k ZXZpY2UgKmdkcm0sIHN0cnVjdCBndWRfY29ubmVjdG9yICpnY29ubiwKPiArCQkJCQl1bnNpZ25l ZCBpbnQgbnVtX3Byb3BlcnRpZXMpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSAm Z2RybS0+ZHJtOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZnY29ubi0+ Y29ubmVjdG9yOwo+ICsJc3RydWN0IGd1ZF9wcm9wZXJ0eV9yZXEgKnByb3BlcnRpZXM7Cj4gKwl1 bnNpZ25lZCBpbnQgaTsKPiArCWludCByZXQ7Cj4gKwo+ICsJZ2Nvbm4tPnByb3BlcnRpZXMgPSBr Y2FsbG9jKG51bV9wcm9wZXJ0aWVzLCBzaXplb2YoKmdjb25uLT5wcm9wZXJ0aWVzKSwgR0ZQX0tF Uk5FTCk7Cj4gKwlpZiAoIWdjb25uLT5wcm9wZXJ0aWVzKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsKPiArCXByb3BlcnRpZXMgPSBrY2FsbG9jKG51bV9wcm9wZXJ0aWVzLCBzaXplb2YoKnByb3Bl cnRpZXMpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcHJvcGVydGllcykKPiArCQlyZXR1cm4gLUVO T01FTTsKCkkgdGhpbmsgdGhpcyBlcnJvciBwYXRoIGxlYWtzIGdjb25uLT5wcm9wZXJ0aWVzPwoK Cj4gK2ludCBndWRfY29ubmVjdG9yX2NyZWF0ZShzdHJ1Y3QgZ3VkX2RldmljZSAqZ2RybSwgdW5z aWduZWQgaW50IGluZGV4KQoKTW9zdCBlcnJvciBwYXRocyBpbiB0aGlzIGZ1bmN0aW9uIHNlZW0g dG8gbGVhayBib3RoIGdjb25uIGFuZCBjb25uZWN0b3I/CgoKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZ3VkL2d1ZF9kcnYuYwouLgo+ICtzdGF0aWMgaW50IGd1ZF91c2JfZ2V0X3N0YXR1cyhzdHJ1 Y3QgdXNiX2RldmljZSAqdXNiLCB1OCBpZm51bSwgdTggKnN0YXR1cykKLi4KPiArCXJldCA9IGd1 ZF91c2JfY29udHJvbF9tc2codXNiLCBpZm51bSwgdHJ1ZSwgR1VEX1JFUV9HRVRfU1RBVFVTLCAw LCBidWYsIHNpemVvZigqYnVmKSk7Cj4gKwkqc3RhdHVzID0gKmJ1ZjsKCk1heWJlIG1ha2UgdGhp cyBjb25kaXRpb25hbCBvbiAwID09IHJldC4KCgo+ICtzdGF0aWMgaW50IGd1ZF9zZXRfdmVyc2lv bihzdHJ1Y3QgdXNiX2RldmljZSAqdXNiLCB1OCBpZm51bSwgdTMyIGZsYWdzLCB1OCB2ZXJzaW9u KQouLgo+ICsJaWYgKHJldCA9PSAtRVBJUEUpCj4gKwkJcmV0dXJuIC1FUFJPVE9OT1NVUFBPUlQ7 CgpTbyB5ZWFoLCB0aGlzIGlzbid0IHR5cGljYWwsIGRldmljZXMgdXN1YWxseSBkZXNjcmliZSBv cHRpb25hbCB0aGluZ3MgdGhhdAp0aGUgZHJpdmVyIG1heSBuZWVkIHRvIGtub3cgYWJvdXQsIHVu bGVzcyBpdCdzIHNvbWV0aGluZyB0aGF0IGNhbiBjaGFuZ2UKZHVyaW5nIG9wZXJhdGlvbi4KCkFy Z3VhYmx5IG1pbGRseSBjb250cmFkaWN0b3J5IHRvIHRoZSBzaG9ydCB0cmFuc2ZlciBwYXR0ZXJu LCBidXQgb25lIGlzCmNhcGFiaWxpdHkgYW5kIHRoZSBvdGhlciBpcyAicnVudGltZSIgZGF0YS4K Cgo+ICtzdGF0aWMgaW50IGd1ZF9nZXRfcHJvcGVydGllcyhzdHJ1Y3QgZ3VkX2RldmljZSAqZ2Ry bSwgdW5zaWduZWQgaW50IG51bV9wcm9wZXJ0aWVzKQo+ICt7Cj4gKwlzdHJ1Y3QgZ3VkX3Byb3Bl cnR5X3JlcSAqcHJvcGVydGllczsKPiArCXVuc2lnbmVkIGludCBpOwo+ICsJaW50IHJldDsKPiAr Cj4gKwlpZiAoIW51bV9wcm9wZXJ0aWVzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWdkcm0tPnBy b3BlcnRpZXMgPSBkcm1tX2tjYWxsb2MoJmdkcm0tPmRybSwgbnVtX3Byb3BlcnRpZXMsIHNpemVv ZigqZ2RybS0+cHJvcGVydGllcyksCj4gKwkJCQkJR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWdkcm0t PnByb3BlcnRpZXMpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJcHJvcGVydGllcyA9IGtj YWxsb2MobnVtX3Byb3BlcnRpZXMsIHNpemVvZigqcHJvcGVydGllcyksIEdGUF9LRVJORUwpOwo+ ICsJaWYgKCFwcm9wZXJ0aWVzKQo+ICsJCXJldHVybiAtRU5PTUVNOwoKSXQgbG9va3MgbGlrZSB0 aGlzIGZ1bmN0aW9uIGxlYWtzIGdkcm0tPnByb3BlcnRpZXMgaW4gYWxsIGVycm9yIHBhdGhzPwoK Cj4gKwkJZGVmYXVsdDoKPiArCQkJLyogTmV3IG9uZXMgbWlnaHQgc2hvdyB1cCBpbiBmdXR1cmUg ZGV2aWNlcywgc2tpcCB0aG9zZSB3ZSBkb24ndCBrbm93LiAqLwo+ICsJCQlkcm1fZGJnKCZnZHJt LT5kcm0sICJVbmtub3duIHByb3BlcnR5OiAldVxuIiwgcHJvcCk7CgpNYXliZSAiSWdub3Jpbmcg dW5rbm93biBwcm9wZXJ0eTogJXVcbiIgd291bGQgYmUgYSBsaXR0bGUgbW9yZSBjbGVhcj8KCgo+ ICtzdGF0aWMgaW50IGd1ZF9zdGF0c19kZWJ1Z2ZzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq ZGF0YSkKLi4KPiArCXNlcV9wdXRzKG0sICJDb21wcmVzc2lvbjogICAgICAiKTsKPiArCWlmIChn ZHJtLT5jb21wcmVzc2lvbiAmIEdVRF9DT01QUkVTU0lPTl9MWjQpCj4gKwkJc2VxX3B1dHMobSwg IiBsejQiKTsKPiArCXNlcV9wdXRzKG0sICJcbiIpOwoKTWF5YmUgYW4gZXhwbGljaXQgc2VxX3B1 dHMobSwgIiBub25lIikgaWYgdGhlcmUgYXJlIG5vbmU/CgoKPiArCWlmIChnZHJtLT5jb21wcmVz c2lvbikgewo+ICsJCXU2NCByZW1haW5kZXI7Cj4gKwkJdTY0IHJhdGlvID0gZGl2NjRfdTY0X3Jl bShnZHJtLT5zdGF0c19sZW5ndGgsIGdkcm0tPnN0YXRzX2FjdHVhbF9sZW5ndGgsCj4gKwkJCQkJ ICAmcmVtYWluZGVyKTsKPiArCQl1NjQgcmF0aW9fZnJhYyA9IGRpdjY0X3U2NChyZW1haW5kZXIg KiAxMCwgZ2RybS0+c3RhdHNfYWN0dWFsX2xlbmd0aCk7Cj4gKwo+ICsJCXNlcV9wcmludGYobSwg IkNvbXByZXNzaW9uIHJhdGlvOiAlbGx1LiVsbHVcbiIsIHJhdGlvLCByYXRpb19mcmFjKTsKPiAr CX0KCldpbGwgdGhlIGZyYWN0aW9uIGV2ZXIgbmVlZCB6ZXJvIHBhZGRpbmc/CgoKPiArc3RhdGlj IGludCBndWRfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwgY29uc3Qgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgKmlkKQoKSSBhcHByZWNpYXRlIHZlcnkgbXVjaCB0aGF0IEdVRCB3 b3JrcyBvbiBpbnRlcmZhY2UgbGV2ZWwsIHNvIHRoYXQgaXQKY2FuIGFsc28gYmUgdXNlZCBpbiBj b21wb3NpdGUgZGV2aWNlcyBhdCBzb21lIHBvaW50LiBUaGFua3MgYSBsb3QhIFxvLwoKCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2d1ZC9ndWRfcGlwZS5jCi4uCj4gK2ludCBndWRfcGlwZV9jaGVj ayhzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCi4uCj4gKwlyZXEgPSBremFs bG9jKGxlbiwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXJlcSkKPiArCQlyZXR1cm4gLUVOT01FTTsK PiArCj4gKwlndWRfZnJvbV9kaXNwbGF5X21vZGUoJnJlcS0+bW9kZSwgbW9kZSk7Cj4gKwo+ICsJ cmVxLT5mb3JtYXQgPSBndWRfZnJvbV9mb3VyY2MoZm9ybWF0LT5mb3JtYXQpOwo+ICsJaWYgKFdB Uk5fT05fT05DRSghcmVxLT5mb3JtYXQpKQo+ICsJCXJldHVybiAtRUlOVkFMOwoKcmVxIGxlYWtz PwoKCj4gKwlyZXEtPmNvbm5lY3RvciA9IGRybV9jb25uZWN0b3JfaW5kZXgoY29ubmVjdG9yKTsK PiArCXJlcS0+bnVtX3Byb3BlcnRpZXMgPSBudW1fcHJvcGVydGllczsKPiArCj4gKwludW1fcHJv cGVydGllcyA9IGd1ZF9jb25uZWN0b3JfZmlsbF9wcm9wZXJ0aWVzKGNvbm5lY3RvciwgY29ubmVj dG9yX3N0YXRlLAo+ICsJCQkJCQkgICAgICAgcmVxLT5wcm9wZXJ0aWVzKTsKCkZvbGxvd2luZyB0 aGlzIG5ldyBhc3NpZ25tZW50IHRvIG51bV9wcm9wZXJ0aWVzIHRoZSBuZXcgdmFsdWUgaXMgdXNl ZAp0byAoaG9wZWZ1bGx5ISkgYXBwZW5kIGF0IHRoZSBmaXJzdCByZXEtPnByb3BlcnRpZXNbXSBp bmRleCBhZnRlciB0aGUKb2xkIHZhbHVlIHdhcyB1c2VkIGFzIGluZGV4LCB0aGF0IGRvZXNuJ3Qg ZmVlbCBncmVhdC4uCgpJIG1lYW4sIGl0J3MgaGFybWxlc3MgYXMgbG9uZyBhcyBndWRfY29ubmVj dG9yX2ZpbGxfcHJvcGVydGllcygpIGlzCnN1cmUgdG8gcmV0dXJuIHRoZSBzYW1lIHZhbHVlLCBi dXQsIHdlbGwsIG1heWJlIHNvbWV0aW1lIGxhdGVyIGl0CmRvZXNuJ3QsIG9yIGlzIHRoYXQgZ3Vh cmFudGVlZCBpZiB0aGVyZSBpcyBubyBlcnJvcj8gVGhlbiBtYXliZSBhdApsZWFzdCBkb2N1bWVu dCB0aGF0IHJlcXVpcmVtZW50IGJ5IHRoZSBmdW5jdGlvbi4gV2hhdCBkbyB5b3UgdGhpbms/CgoK VGhhbmtzIGEgbG90CgovL1BldGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=