From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 10/20] drm/i915: Add atomic function to setup scalers scalers for a crtc. Date: Thu, 2 Apr 2015 16:04:36 -0700 Message-ID: <20150402230436.GY28205@intel.com> References: <1427943589-6254-1-git-send-email-chandra.konduru@intel.com> <1427943589-6254-11-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id BC9586E48D for ; Thu, 2 Apr 2015 16:04:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1427943589-6254-11-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 T24gV2VkLCBBcHIgMDEsIDIwMTUgYXQgMDc6NTk6MzlQTSAtMDcwMCwgQ2hhbmRyYSBLb25kdXJ1 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+ IHYzOgo+IC1yZW1vdmUgYXNzaWduaW5nIHBsYW5lX3N0YXRlIHJldHVybmVkIGJ5IGRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlIChNYXR0KQo+IC1mYWlsIGlmIHRoZXJlIGlzIGFuIGVycm9yIGZy b20gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUgKE1hdHQpCj4gCj4gU2lnbmVkLW9mZi1ieTog Q2hhbmRyYSBLb25kdXJ1IDxjaGFuZHJhLmtvbmR1cnVAaW50ZWwuY29tPgoKU28gbG9va2luZyBh aGVhZCB0aHJvdWdoIHRoZSBwYXRjaCBzZXJpZXMsIGl0IGxvb2tzIGxpa2UgdGhlIHBsYWNlcyB5 b3UKY2FsbCB0aGlzIGFyZToKICogaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZygpIC0tLSBXaWxs IHByZXN1bWFibHkgbW92ZSB0byBjaGVja19jcnRjKCkKICAgb25jZSB3ZSdyZSBmYXJ0aGVyIGFs b25nIHdpdGggYXRvbWljIGNvbnZlcnNpb24uCiAqIGludGVsX2F0b21pY19jaGVjaygpIC0tLSBI YW5kbGVzIHVwZGF0ZXMgdmlhIGF0b21pYyBpb2N0bCAod2lsbCBhbHNvCiAgIGhhbmRsZSBsZWdh Y3kgcGxhbmUgdXBkYXRlcyBvbmNlIHdlIHN3aXRjaCB0byBmdWxsIGF0b21pYyBoZWxwZXJzKQog KiBza3lsYWtlX3BmaXRfdXBkYXRlKCkKClNpbmNlIHdlJ3JlIG9uIHRyYW5zaXRpb25hbCBwbGFu ZSBoZWxwZXJzIHRvZGF5ICh3aGljaCBkb24ndCBjcmVhdGUgYQp0b3AtbGV2ZWwgYXRvbWljIHRy YW5zYWN0aW9uIGFuZCB0aHVzIG5ldmVyIGNhbGwgaW50ZWxfYXRvbWljX2NoZWNrKSwKZG9lcyB0 aGlzIGV2ZXIgZ2V0IGNhbGxlZCBmb3IgbGVnYWN5IFNldFBsYW5lKCkgb3BlcmF0aW9ucyBvbiB0 b2RheSdzCmRyaXZlcj8gIElzIGl0IGNvcnJlY3QgdG8gYXNzdW1lIHRoYXQgdGhlIHN3aXRjaCBi YWNrIHRvIGZ1bGwgYXRvbWljCmhlbHBlcnMgaXMgYSBwcmVyZXEgZm9yIG1lcmdpbmcgdGhpcywg b3IgYW0gSSBvdmVybG9va2luZyBzb21ldGhpbmc/CgoKTWF0dAoKPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgfCAgMTQyICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgIHwgICAg MyArCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWMuYwo+IGluZGV4IDM5MDNiOTAuLmZhYjFmMTMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IEBAIC0yNDEsMyArMjQxLDE0NSBAQCBpbnRlbF9j cnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICB7Cj4gIAlkcm1fYXRv bWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0Yywgc3RhdGUpOwo+ICB9Cj4gKwo+ICsv KioKPiArICogaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoKSAtIHNldHVwIHNjYWxlcnMgZm9y IGNydGMgcGVyIHN0YWdlZCByZXF1ZXN0cwo+ICsgKiBAZGV2OiBEUk0gZGV2aWNlCj4gKyAqIEBj cnRjOiBpbnRlbCBjcnRjCj4gKyAqIEBjcnRjX3N0YXRlOiBpbmNvbWluZyBjcnRjX3N0YXRlIHRv IHZhbGlkYXRlIGFuZCBzZXR1cCBzY2FsZXJzCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gc2V0 cyB1cCBzY2FsZXJzIGJhc2VkIG9uIHN0YWdlZCBzY2FsaW5nIHJlcXVlc3RzIGZvcgo+ICsgKiBh IEBjcnRjIGFuZCBpdHMgcGxhbmVzLiBJdCBpcyBjYWxsZWQgZnJvbSBjcnRjIGxldmVsIGNoZWNr IHBhdGguIElmIHJlcXVlc3QKPiArICogaXMgYSBzdXBwb3J0YWJsZSByZXF1ZXN0LCBpdCBhdHRh Y2hlcyBzY2FsZXJzIHRvIHJlcXVlc3RlZCBwbGFuZXMgYW5kIGNydGMuCj4gKyAqCj4gKyAqIFRo aXMgZnVuY3Rpb24gdGFrZXMgaW50byBhY2NvdW50IHRoZSBjdXJyZW50IHNjYWxlcihzKSBpbiB1 c2UgYnkgYW55IHBsYW5lcwo+ICsgKiBub3QgYmVpbmcgcGFydCBvZiB0aGlzIGF0b21pYyBzdGF0 ZQo+ICsgKgo+ICsgKiAgUmV0dXJuczoKPiArICogICAgICAgICAwIC0gc2NhbGVycyB3ZXJlIHNl dHVwIHN1Y2Nlc2Z1bGx5Cj4gKyAqICAgICAgICAgZXJyb3IgY29kZSAtIG90aGVyd2lzZQo+ICsg Ki8KPiAraW50IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiArCXN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9 IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwo+ICsJc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0 Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpkcm1fc3RhdGU7Cj4gKwlpbnQgbnVtX3NjYWxlcnNfbmVlZDsKPiArCWludCBpLCBqOwo+ICsK PiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkgfHwgIWludGVsX2NydGMgfHwgIWNydGNf c3RhdGUpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJc2NhbGVyX3N0YXRlID0gJmNydGNfc3RhdGUt PnNjYWxlcl9zdGF0ZTsKPiArCWRybV9zdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4g Kwo+ICsJbnVtX3NjYWxlcnNfbmVlZCA9IGh3ZWlnaHQzMihzY2FsZXJfc3RhdGUtPnNjYWxlcl91 c2Vycyk7Cj4gKwlEUk1fREVCVUdfS01TKCJjcnRjX3N0YXRlID0gJXAgbmVlZCA9ICVkIGF2YWls ID0gJWQgc2NhbGVyX3VzZXJzID0gMHgleFxuIiwKPiArCQljcnRjX3N0YXRlLCBudW1fc2NhbGVy c19uZWVkLCBzY2FsZXJfc3RhdGUtPm51bV9zY2FsZXJzLAo+ICsJCXNjYWxlcl9zdGF0ZS0+c2Nh bGVyX3VzZXJzKTsKPiArCj4gKwkvKiBpZiB0aGVyZSBpcyBubyBjaGFuZ2UgaW4gc2NhbGVyIGNv bmZpZ3VyYXRpb24sIHJldHVybiAqLwo+ICsJaWYgKHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJz ID09Cj4gKwkJaW50ZWxfY3J0Yy0+Y29uZmlnLT5zY2FsZXJfc3RhdGUuc2NhbGVyX3VzZXJzKQo+ ICsJCXJldHVybiAwOwo+ICsKPiArCS8qCj4gKwkgKiBIaWdoIGxldmVsIGZsb3c6Cj4gKwkgKiAt IHN0YWdlZCBzY2FsZXIgcmVxdWVzdHMgYXJlIGFscmVhZHkgaW4gc2NhbGVyX3N0YXRlLT5zY2Fs ZXJfdXNlcnMKPiArCSAqIC0gY2hlY2sgd2hldGhlciBzdGFnZWQgc2NhbGluZyByZXF1ZXN0cyBj YW4gYmUgc3VwcG9ydGVkCj4gKwkgKiAtIGFkZCBwbGFuZXMgdXNpbmcgc2NhbGVycyB0aGF0IGFy ZW4ndCBpbiBjdXJyZW50IHRyYW5zYWN0aW9uCj4gKwkgKiAtIGFzc2lnbiBzY2FsZXJzIHRvIHJl cXVlc3RlZCB1c2Vycwo+ICsJICogLSBhcyBwYXJ0IG9mIHBsYW5lIGNvbW1pdCwgc2NhbGVycyB3 aWxsIGJlIGNvbW1pdHRlZAo+ICsJICogICAoaS5lLiwgZWl0aGVyIGF0dGFjaGVkIG9yIGRldGFj aGVkKSB0byByZXNwZWN0aXZlIHBsYW5lcyBpbiBodwo+ICsJICogLSBhcyBwYXJ0IG9mIGNydGNf Y29tbWl0LCBzY2FsZXIgd2lsbCBiZSBlaXRoZXIgYXR0YWNoZWQgb3IgZGV0YWNoZWQKPiArCSAq ICAgdG8gY3J0YyBpbiBodwo+ICsJICovCj4gKwo+ICsJLyogZmFpbCBpZiByZXF1aXJlZCBzY2Fs ZXJzID4gYXZhaWxhYmxlIHNjYWxlcnMgKi8KPiArCWlmIChudW1fc2NhbGVyc19uZWVkID4gc2Nh bGVyX3N0YXRlLT5udW1fc2NhbGVycyl7Cj4gKwkJRFJNX0RFQlVHX0tNUygiVG9vIG1hbnkgc2Nh bGluZyByZXF1ZXN0cyAlZCA+ICVkXG4iLAo+ICsJCQludW1fc2NhbGVyc19uZWVkLCBzY2FsZXJf c3RhdGUtPm51bV9zY2FsZXJzKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArCj4gKwkv KiB3YWxrdGhyb3VnaCBzY2FsZXJfdXNlcnMgYml0cyBhbmQgc3RhcnQgYXNzaWduaW5nIHNjYWxl cnMgKi8KPiArCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNl cnMpICogODsgaSsrKSB7Cj4gKwkJaW50ICpzY2FsZXJfaWQ7Cj4gKwo+ICsJCS8qIHNraXAgaWYg c2NhbGVyIG5vdCByZXF1aXJlZCAqLwo+ICsJCWlmICghKHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3Vz ZXJzICYgKDEgPDwgaSkpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYgKGkgPT0gU0tMX0NS VENfSU5ERVgpIHsKPiArCQkJLyogcGFuZWwgZml0dGVyIGNhc2U6IGFzc2lnbiBhcyBhIGNydGMg c2NhbGVyICovCj4gKwkJCXNjYWxlcl9pZCA9ICZzY2FsZXJfc3RhdGUtPnNjYWxlcl9pZDsKPiAr CQl9IGVsc2Ugewo+ICsJCQlpZiAoIWRybV9zdGF0ZSkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiAr CQkJLyogcGxhbmUgc2NhbGVyIGNhc2U6IGFzc2lnbiBhcyBhIHBsYW5lIHNjYWxlciAqLwo+ICsJ CQkvKiBmaW5kIHRoZSBwbGFuZSB0aGF0IHNldCB0aGUgYml0IGFzIHNjYWxlcl91c2VyICovCj4g KwkJCXBsYW5lID0gZHJtX3N0YXRlLT5wbGFuZXNbaV07Cj4gKwo+ICsJCQkvKgo+ICsJCQkgKiB0 byBlbmFibGUvZGlzYWJsZSBocSBtb2RlLCBhZGQgcGxhbmVzIHRoYXQgYXJlIHVzaW5nIHNjYWxl cgo+ICsJCQkgKiBpbnRvIHRoaXMgdHJhbnNhY3Rpb24KPiArCQkJICovCj4gKwkJCWlmICghcGxh bmUpIHsKPiArCQkJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlOwo+ICsJCQkJcGxhbmUg PSBkcm1fcGxhbmVfZnJvbV9pbmRleChkZXYsIGkpOwo+ICsJCQkJc3RhdGUgPSBkcm1fYXRvbWlj X2dldF9wbGFuZV9zdGF0ZShkcm1fc3RhdGUsIHBsYW5lKTsKPiArCQkJCWlmIChJU19FUlIoc3Rh dGUpKSB7Cj4gKwkJCQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIGFkZCBbUExBTkU6JWRdIHRv IGRybV9zdGF0ZVxuIiwKPiArCQkJCQkJcGxhbmUtPmJhc2UuaWQpOwo+ICsJCQkJCXJldHVybiBQ VFJfRVJSKHN0YXRlKTsKPiArCQkJCX0KPiArCQkJfQo+ICsKPiArCQkJaW50ZWxfcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gKwo+ICsJCQkvKiBwbGFuZSBvbiBkaWZmZXJlbnQgY3J0 YyBjYW5ub3QgYmUgYSBzY2FsZXIgdXNlciBvZiB0aGlzIGNydGMgKi8KPiArCQkJaWYgKFdBUk5f T04oaW50ZWxfcGxhbmUtPnBpcGUgIT0gaW50ZWxfY3J0Yy0+cGlwZSkpIHsKPiArCQkJCWNvbnRp bnVlOwo+ICsJCQl9Cj4gKwo+ICsJCQlwbGFuZV9zdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRl KGRybV9zdGF0ZS0+cGxhbmVfc3RhdGVzW2ldKTsKPiArCQkJc2NhbGVyX2lkID0gJnBsYW5lX3N0 YXRlLT5zY2FsZXJfaWQ7Cj4gKwkJfQo+ICsKPiArCQlpZiAoKnNjYWxlcl9pZCA8IDApIHsKPiAr CQkJLyogZmluZCBhIGZyZWUgc2NhbGVyICovCj4gKwkJCWZvciAoaiA9IDA7IGogPCBzY2FsZXJf c3RhdGUtPm51bV9zY2FsZXJzOyBqKyspIHsKPiArCQkJCWlmICghc2NhbGVyX3N0YXRlLT5zY2Fs ZXJzW2pdLmluX3VzZSkgewo+ICsJCQkJCXNjYWxlcl9zdGF0ZS0+c2NhbGVyc1tqXS5pbl91c2Ug PSAxOwo+ICsJCQkJCSpzY2FsZXJfaWQgPSBzY2FsZXJfc3RhdGUtPnNjYWxlcnNbal0uaWQ7Cj4g KwkJCQkJRFJNX0RFQlVHX0tNUygiQXR0YWNoZWQgc2NhbGVyIGlkICV1LiV1IHRvICVzOiVkXG4i LAo+ICsJCQkJCQlpbnRlbF9jcnRjLT5waXBlLAo+ICsJCQkJCQlpID09IFNLTF9DUlRDX0lOREVY ID8gc2NhbGVyX3N0YXRlLT5zY2FsZXJfaWQgOgo+ICsJCQkJCQkJcGxhbmVfc3RhdGUtPnNjYWxl cl9pZCwKPiArCQkJCQkJaSA9PSBTS0xfQ1JUQ19JTkRFWCA/ICJDUlRDIiA6ICJQTEFORSIsCj4g KwkJCQkJCWkgPT0gU0tMX0NSVENfSU5ERVggPyAgaW50ZWxfY3J0Yy0+YmFzZS5iYXNlLmlkIDoK PiArCQkJCQkJcGxhbmUtPmJhc2UuaWQpOwo+ICsJCQkJCWJyZWFrOwo+ICsJCQkJfQo+ICsJCQl9 Cj4gKwkJfQo+ICsKPiArCQlpZiAoV0FSTl9PTigqc2NhbGVyX2lkIDwgMCkpIHsKPiArCQkJRFJN X0RFQlVHX0tNUygiQ2Fubm90IGZpbmQgc2NhbGVyIGZvciAlczolZFxuIiwKPiArCQkJCWkgPT0g U0tMX0NSVENfSU5ERVggPyAiQ1JUQyIgOiAiUExBTkUiLAo+ICsJCQkJaSA9PSBTS0xfQ1JUQ19J TkRFWCA/IGludGVsX2NydGMtPmJhc2UuYmFzZS5pZDpwbGFuZS0+YmFzZS5pZCk7Cj4gKwkJCWNv bnRpbnVlOwo+ICsJCX0KPiArCj4gKwkJLyogc2V0IHNjYWxlciBtb2RlICovCj4gKwkJc2NhbGVy X3N0YXRlLT5zY2FsZXJzWypzY2FsZXJfaWRdLm1vZGUgPSAobnVtX3NjYWxlcnNfbmVlZCA9PSAx KSA/Cj4gKwkJCVBTX1NDQUxFUl9NT0RFX0hRIDogUFNfU0NBTEVSX01PREVfRFlOOwo+ICsJfQo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBl MjBkZGQ1Li4xMzgxZDExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTQw Nyw2ICsxNDA3LDkgQEAgaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSwKPiAgCj4gIAlyZXR1cm4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj X3N0YXRlKTsKPiAgfQo+ICtpbnQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ICsJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ICAKPiAgLyogaW50ZWxfYXRvbWlj X3BsYW5lLmMgKi8KPiAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9jcmVhdGVfcGxh bmVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+IC0tIAo+IDEuNy45LjUKPiAKCi0t IApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5h YmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=