From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 09/21 v2] drm/i915: Add atomic function to setup scalers scalers for a crtc. Date: Tue, 24 Mar 2015 22:15:17 -0700 Message-ID: <20150325051517.GI28667@intel.com> References: <1426896282-23215-1-git-send-email-chandra.konduru@intel.com> <1426896282-23215-10-git-send-email-chandra.konduru@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 244436E7E6 for ; Tue, 24 Mar 2015 22:15:18 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1426896282-23215-10-git-send-email-chandra.konduru@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chandra Konduru Cc: daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, ander.conselvan.de.oliveira@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXIgMjAsIDIwMTUgYXQgMDU6MDQ6MzBQTSAtMDcwMCwgQ2hhbmRyYSBLb25kdXJ1 IHdyb3RlOgo+IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzIHNldHMgdXAgc2NhbGVycyBiYXNl ZCBvbiBzdGFnZWQgc2NhbGluZwo+IHJlcXVlc3RzIGNvbWluZyBmcm9tIGEgY3J0YyBhbmQgaXRz IHBsYW5lcy4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUKPiBjYWxsZWQgZnJvbSBjcnRjIGxldmVs IGNoZWNrIHBhdGguCj4gCj4gSWYgc3RhZ2VkIHJlcXVlc3RzIGFyZSBzdXBwb3J0YWJsZSwgZnVu Y3Rpb24gYXNzaWducyBzY2FsZXJzIHRvCj4gcmVxdWVzdGVkIHBsYW5lcyBhbmQgY3J0Yy4gVGhp cyBmdW5jdGlvbiBhbHNvIHRha2VzIGludG8gYWNjb3VudAo+IHRoZSBjdXJyZW50IHBsYW5lcyB1 c2luZyBzY2FsZXJzIGJ1dCBub3QgYmVpbmcgcGFydCBvZiB0aGlzCj4gYXRvbWljIHN0YXRlIGZv ciBvcHRpbWFsIG9wZXJhdGlvbiBvZiBzY2FsZXJzLiBOb3RlIHRoYXQgdGhlIHNjYWxlcgo+IGFz c2lnbmVtZW50IGl0c2VsZiBpcyBzdGFnZWQgaW50byBjcnRjX3N0YXRlIGFuZCByZXNwZWN0aXZl Cj4gcGxhbmVfc3RhdGVzIGZvciBsYXRlciBjb21taXQgYWZ0ZXIgYWxsIGNoZWNrcyBoYXZlIGJl ZW4gZG9uZS4KPiAKPiBvdmVyYWxsIGhpZ2ggbGV2ZWwgZmxvdzoKPiAgLSBzY2FsZXIgcmVxdWVz dHMgYXJlIHN0YWdlZCBpbnRvIGNydGNfc3RhdGUgYnkgcGxhbmVzL2NydGMKPiAgLSBjaGVjayB3 aGV0aGVyIHN0YWdlZCBzY2FsaW5nIHJlcXVlc3RzIGNhbiBiZSBzdXBwb3J0ZWQKPiAgLSBhZGQg cGxhbmVzIHVzaW5nIHNjYWxlcnMgdGhhdCBhcmVuJ3QgaW4gY3VycmVudCB0cmFuc2FjdGlvbgo+ ICAtIGFzc2lnbiBzY2FsZXJzIHRvIHJlcXVlc3RlZCB1c2Vycwo+ICAtIGFzIHBhcnQgb2YgcGxh bmUgY29tbWl0LCBzY2FsZXJzIHdpbGwgYmUgY29tbWl0dGVkCj4gICAgKGkuZS4sIGVpdGhlciBh dHRhY2hlZCBvciBkZXRhY2hlZCkgdG8gcmVzcGVjdGl2ZSBwbGFuZXMgaW4gaHcKPiAgLSBhcyBw YXJ0IG9mIGNydGNfY29tbWl0LCBzY2FsZXIgd2lsbCBiZSBlaXRoZXIgYXR0YWNoZWQgb3IgZGV0 YWNoZWQKPiAgICB0byBjcnRjIGluIGh3Cj4gCj4gdjI6Cj4gLXJlbW92ZWQgYSBsb2cgbWVzc2Fn ZSAobWUpCj4gLWNoYW5nZWQgaW5wdXQgcGFyYW1ldGVyIHRvIGNydGNfc3RhdGUgKG1lKQo+IAo+ IFNpZ25lZC1vZmYtYnk6IENoYW5kcmEgS29uZHVydSA8Y2hhbmRyYS5rb25kdXJ1QGludGVsLmNv bT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgfCAgMTM4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oICAgIHwgICAgMyArCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlv bnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IGluZGV4IDM5MDNiOTAu LjQwNzUxNmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IEBAIC0yNDEs MyArMjQxLDE0MSBAQCBpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICB7Cj4gIAlkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yywg c3RhdGUpOwo+ICB9Cj4gKwo+ICsvKioKPiArICogaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMo KSAtIHNldHVwIHNjYWxlcnMgZm9yIGNydGMgcGVyIHN0YWdlZCByZXF1ZXN0cwo+ICsgKiBAZGV2 OiBEUk0gZGV2aWNlCj4gKyAqIEBjcnRjOiBpbnRlbCBjcnRjCj4gKyAqIEBjcnRjX3N0YXRlOiBp bmNvbWluZyBjcnRjX3N0YXRlIHRvIHZhbGlkYXRlIGFuZCBzZXR1cCBzY2FsZXJzCj4gKyAqCj4g KyAqIFRoaXMgZnVuY3Rpb24gc2V0dXBzIHVwIHNjYWxlcnMgYmFzZWQgb24gc3RhZ2VkIHNjYWxp bmcgcmVxdWVzdHMgZm9yCgpzL3NldHVwcyB1cC9zZXRzIHVwLwoKPiArICogYSBAY3J0YyBhbmQg aXRzIHBsYW5lcy4gSXQgaXMgY2FsbGVkIGZyb20gY3J0YyBsZXZlbCBjaGVjayBwYXRoLiBJZiBy ZXF1ZXN0Cj4gKyAqIGlzIGEgc3VwcG9ydGFibGUgcmVxdWVzdCwgaXQgYXR0YWNoZXMgc2NhbGVy cyB0byByZXF1ZXN0ZWQgcGxhbmVzIGFuZCBjcnRjLgo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9u IHRha2VzIGludG8gYWNjb3VudCB0aGUgY3VycmVudCBzY2FsZXIocykgaW4gdXNlIGJ5IGFueSBw bGFuZXMKPiArICogbm90IGJlaW5nIHBhcnQgb2YgdGhpcyBhdG9taWMgc3RhdGUKPiArICoKPiAr ICogIFJldHVybnM6Cj4gKyAqICAgICAgICAgMCAtIHNjYWxlcnMgd2VyZSBzZXR1cCBzdWNjZXNm dWxseQo+ICsgKiAgICAgICAgIGVycm9yIGNvZGUgLSBvdGhlcndpc2UKPiArICovCj4gK2ludCBp bnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBOVUxMOwo+ICsJ c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGUgPSBOVUxMOwo+ICsJc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0 YXRlICpzY2FsZXJfc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRl Owo+ICsJaW50IG51bV9zY2FsZXJzX25lZWQ7Cj4gKwlpbnQgaSwgajsKPiArCj4gKwlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPCA5IHx8ICFpbnRlbF9jcnRjIHx8ICFjcnRjX3N0YXRlKQo+ICsJ CXJldHVybiAwOwo+ICsKPiArCXNjYWxlcl9zdGF0ZSA9ICZjcnRjX3N0YXRlLT5zY2FsZXJfc3Rh dGU7Cj4gKwlkcm1fc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ICsKPiArCW51bV9z Y2FsZXJzX25lZWQgPSBod2VpZ2h0MzIoc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMpOwo+ICsJ RFJNX0RFQlVHX0tNUygiY3J0Y19zdGF0ZSA9ICVwIG5lZWQgPSAlZCBhdmFpbCA9ICVkIHNjYWxl cl91c2VycyA9IDB4JXhcbiIsCj4gKwkJY3J0Y19zdGF0ZSwgbnVtX3NjYWxlcnNfbmVlZCwgc2Nh bGVyX3N0YXRlLT5udW1fc2NhbGVycywKPiArCQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vycyk7 Cj4gKwo+ICsJLyogaWYgdGhlcmUgaXMgbm8gY2hhbmdlIGluIHNjYWxlciBjb25maWd1cmF0aW9u LCByZXR1cm4gKi8KPiArCWlmIChzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2VycyA9PQo+ICsJCWlu dGVsX2NydGMtPmNvbmZpZy0+c2NhbGVyX3N0YXRlLnNjYWxlcl91c2VycykKPiArCQlyZXR1cm4g MDsKPiArCj4gKwkvKgo+ICsJICogSGlnaCBsZXZlbCBmbG93Ogo+ICsJICogLSBzdGFnZWQgc2Nh bGVyIHJlcXVlc3RzIGFyZSBhbHJlYWR5IGluIHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzCj4g KwkgKiAtIGNoZWNrIHdoZXRoZXIgc3RhZ2VkIHNjYWxpbmcgcmVxdWVzdHMgY2FuIGJlIHN1cHBv cnRlZAo+ICsJICogLSBhZGQgcGxhbmVzIHVzaW5nIHNjYWxlcnMgdGhhdCBhcmVuJ3QgaW4gY3Vy cmVudCB0cmFuc2FjdGlvbgo+ICsJICogLSBhc3NpZ24gc2NhbGVycyB0byByZXF1ZXN0ZWQgdXNl cnMKPiArCSAqIC0gYXMgcGFydCBvZiBwbGFuZSBjb21taXQsIHNjYWxlcnMgd2lsbCBiZSBjb21t aXR0ZWQKPiArCSAqICAgKGkuZS4sIGVpdGhlciBhdHRhY2hlZCBvciBkZXRhY2hlZCkgdG8gcmVz cGVjdGl2ZSBwbGFuZXMgaW4gaHcKPiArCSAqIC0gYXMgcGFydCBvZiBjcnRjX2NvbW1pdCwgc2Nh bGVyIHdpbGwgYmUgZWl0aGVyIGF0dGFjaGVkIG9yIGRldGFjaGVkCj4gKwkgKiAgIHRvIGNydGMg aW4gaHcKPiArCSAqLwo+ICsKPiArCS8qIGZhaWwgaWYgcmVxdWlyZWQgc2NhbGVycyA+IGF2YWls YWJsZSBzY2FsZXJzICovCj4gKwlpZiAobnVtX3NjYWxlcnNfbmVlZCA+IHNjYWxlcl9zdGF0ZS0+ bnVtX3NjYWxlcnMpewo+ICsJCURSTV9ERUJVR19LTVMoIlRvbyBtYW55IHNjYWxpbmcgcmVxdWVz dHMgJWQgPiAlZFxuIiwKPiArCQkJbnVtX3NjYWxlcnNfbmVlZCwgc2NhbGVyX3N0YXRlLT5udW1f c2NhbGVycyk7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ICsJLyogd2Fsa3Rocm91 Z2ggc2NhbGVyX3VzZXJzIGJpdHMgYW5kIHN0YXJ0IGFzc2lnbmluZyBzY2FsZXJzICovCj4gKwlm b3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzKSAqIDg7IGkr Kykgewo+ICsJCWludCAqc2NhbGVyX2lkOwo+ICsKPiArCQkvKiBza2lwIGlmIHNjYWxlciBub3Qg cmVxdWlyZWQgKi8KPiArCQlpZiAoIShzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2VycyAmICgxIDw8 IGkpKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmIChpID09IFNLTF9DUlRDX0lOREVYKSB7 Cj4gKwkJCS8qIHBhbmVsIGZpdHRlciBjYXNlOiBhc3NpZ24gYXMgYSBjcnRjIHNjYWxlciAqLwo+ ICsJCQlzY2FsZXJfaWQgPSAmc2NhbGVyX3N0YXRlLT5zY2FsZXJfaWQ7Cj4gKwkJfSBlbHNlIHsK PiArCQkJaWYgKCFkcm1fc3RhdGUpCj4gKwkJCQljb250aW51ZTsKClRoaXMgc2hvdWxkbid0IGhh cHBlbiwgYXQgbGVhc3Qgbm90IG9uY2Ugd2UncmUgYmFjayBvbiB0aGUgZnVsbCBhdG9taWMKaGVs cGVycywgcmlnaHQ/ICBJdCBzZWVtcyBsaWtlIGlmIGl0IGRvZXMgaGFwcGVuLCBub3RoaW5nJ3Mg Z29pbmcgdG8Kd29yayByaWdodCwgc28gbWF5YmUgYWRkIGEgV0FSTl9PTigpIHRvIHRoaXMgdGVz dD8KCj4gKwo+ICsJCQkvKiBwbGFuZSBzY2FsZXIgY2FzZTogYXNzaWduIGFzIGEgcGxhbmUgc2Nh bGVyICovCj4gKwkJCS8qIGZpbmQgdGhlIHBsYW5lIHRoYXQgc2V0IHRoZSBiaXQgYXMgc2NhbGVy X3VzZXIgKi8KPiArCQkJcGxhbmUgPSBkcm1fc3RhdGUtPnBsYW5lc1tpXTsKPiArCj4gKwkJCS8q Cj4gKwkJCSAqIHRvIGVuYWJsZS9kaXNhYmxlIGhxIG1vZGUsIGFkZCBwbGFuZXMgdGhhdCBhcmUg dXNpbmcgc2NhbGVyCj4gKwkJCSAqIGludG8gdGhpcyB0cmFuc2FjdGlvbgo+ICsJCQkgKi8KPiAr CQkJaWYgKCFwbGFuZSkgewo+ICsJCQkJcGxhbmUgPSBkcm1fcGxhbmVfZnJvbV9pbmRleChkZXYs IGkpOwo+ICsJCQkJZHJtX3N0YXRlLT5wbGFuZXNbaV0gPSBwbGFuZTsKPiArCQkJCWRybV9zdGF0 ZS0+cGxhbmVfc3RhdGVzW2ldID0KPiArCQkJCQlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShk cm1fc3RhdGUsIHBsYW5lKTsKCkkgdGhpbmsgeW91IG5lZWQgdG8gdGVzdCBmb3IgRURFQURMSyBo ZXJlIGluIGNhc2Ugd2UgaGF2ZSBhIHcvdwpjb2xsaXNpb24uICBPdGhlciBlcnJvcnMgbGlrZSBF Tk9NRU0gbWlnaHQgYWxzbyBoYXBwZW4uICBBY3R1YWxseSwKZHJtX2F0b21pY19nZXRfcGxhbmVf c3RhdGUoKSB3aWxsIHRha2UgY2FyZSBvZiBhZGRpbmcgdGhlIHN0YXRlIHRvIHRoZQpwbGFuZV9z dGF0ZXNbXSBhcnJheSBmb3IgeW91LCBzbyBubyBuZWVkIGZvciB0aGUgYXNzaWdubWVudDsgeW91 IGNhbgpqdXN0IGNhbGwgdGhlIGZ1bmN0aW9uIGFuZCBjaGVjayBmb3IgZXJyb3IgcmV0dXJucy4K Cj4gKwkJCX0KPiArCj4gKwkJCWludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ ICsKPiArCQkJLyogcGxhbmUgb24gZGlmZmVyZW50IGNydGMgY2Fubm90IGJlIGEgc2NhbGVyIHVz ZXIgb2YgdGhpcyBjcnRjICovCj4gKwkJCWlmIChXQVJOX09OKGludGVsX3BsYW5lLT5waXBlICE9 IGludGVsX2NydGMtPnBpcGUpKSB7Cj4gKwkJCQljb250aW51ZTsKPiArCQkJfQo+ICsKPiArCQkJ cGxhbmVfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fc3RhdGUtPnBsYW5lX3N0YXRl c1tpXSk7Cj4gKwkJCXNjYWxlcl9pZCA9ICZwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkOwo+ICsJCX0K PiArCj4gKwkJaWYgKCpzY2FsZXJfaWQgPCAwKSB7Cj4gKwkJCS8qIGZpbmQgYSBmcmVlIHNjYWxl ciAqLwo+ICsJCQlmb3IgKGogPSAwOyBqIDwgc2NhbGVyX3N0YXRlLT5udW1fc2NhbGVyczsgaisr KSB7Cj4gKwkJCQlpZiAoIXNjYWxlcl9zdGF0ZS0+c2NhbGVyc1tqXS5pbl91c2UpIHsKPiArCQkJ CQlzY2FsZXJfc3RhdGUtPnNjYWxlcnNbal0uaW5fdXNlID0gMTsKPiArCQkJCQkqc2NhbGVyX2lk ID0gc2NhbGVyX3N0YXRlLT5zY2FsZXJzW2pdLmlkOwo+ICsJCQkJCURSTV9ERUJVR19LTVMoIkF0 dGFjaGVkIHNjYWxlciBpZCAldS4ldSB0byAlczolZFxuIiwKPiArCQkJCQkJaW50ZWxfY3J0Yy0+ cGlwZSwKPiArCQkJCQkJaSA9PSBTS0xfQ1JUQ19JTkRFWCA/IHNjYWxlcl9zdGF0ZS0+c2NhbGVy X2lkIDoKPiArCQkJCQkJCXBsYW5lX3N0YXRlLT5zY2FsZXJfaWQsCj4gKwkJCQkJCWkgPT0gU0tM X0NSVENfSU5ERVggPyAiQ1JUQyIgOiAiUExBTkUiLAo+ICsJCQkJCQlpID09IFNLTF9DUlRDX0lO REVYID8gIGludGVsX2NydGMtPmJhc2UuYmFzZS5pZCA6Cj4gKwkJCQkJCXBsYW5lLT5iYXNlLmlk KTsKPiArCQkJCQlicmVhazsKPiArCQkJCX0KPiArCQkJfQo+ICsJCX0KPiArCj4gKwkJaWYgKFdB Uk5fT04oKnNjYWxlcl9pZCA8IDApKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIkNhbm5vdCBmaW5k IHNjYWxlciBmb3IgJXM6JWRcbiIsCj4gKwkJCQlpID09IFNLTF9DUlRDX0lOREVYID8gIkNSVEMi IDogIlBMQU5FIiwKPiArCQkJCWkgPT0gU0tMX0NSVENfSU5ERVggPyBpbnRlbF9jcnRjLT5iYXNl LmJhc2UuaWQ6cGxhbmUtPmJhc2UuaWQpOwo+ICsJCQljb250aW51ZTsKPiArCQl9Cj4gKwo+ICsJ CS8qIHNldCBzY2FsZXIgbW9kZSAqLwo+ICsJCXNjYWxlcl9zdGF0ZS0+c2NhbGVyc1sqc2NhbGVy X2lkXS5tb2RlID0gKG51bV9zY2FsZXJzX25lZWQgPT0gMSkgPwo+ICsJCQlQU19TQ0FMRVJfTU9E RV9IUSA6IFBTX1NDQUxFUl9NT0RFX0RZTjsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZjVkNTNjOS4uYTlkNzg3ZCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE0MDEsNiArMTQwMSw5IEBAIGludGVsX2F0 b21pY19nZXRfY3J0Y19zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAo+ ICAJcmV0dXJuIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gIH0KPiAraW50IGlu dGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKTsKPiAgCj4gIC8qIGludGVsX2F0b21pY19wbGFuZS5jICovCj4gIHN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfY3JlYXRlX3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lKTsKPiAtLSAKPiAxLjcuOS41Cj4gCgotLSAKTWF0dCBSb3BlcgpHcmFwaGljcyBT b2Z0d2FyZSBFbmdpbmVlcgpJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKSW50 ZWwgQ29ycG9yYXRpb24KKDkxNikgMzU2LTI3OTUKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK