From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Konduru, Chandra" Subject: Re: [PATCH 09/21 v2] drm/i915: Add atomic function to setup scalers scalers for a crtc. Date: Wed, 25 Mar 2015 19:46:08 +0000 Message-ID: <76A9B330A4D78C4D99CB292C4CC06C0E36F835FD@fmsmsx101.amr.corp.intel.com> References: <1426896282-23215-1-git-send-email-chandra.konduru@intel.com> <1426896282-23215-10-git-send-email-chandra.konduru@intel.com> <20150325051517.GI28667@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 846C66E395 for ; Wed, 25 Mar 2015 12:46:18 -0700 (PDT) In-Reply-To: <20150325051517.GI28667@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Roper, Matthew D" Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" , "Conselvan De Oliveira, Ander" List-Id: intel-gfx@lists.freedesktop.org Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogUm9wZXIsIE1hdHRoZXcgRAo+ IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDI0LCAyMDE1IDEwOjE1IFBNCj4gVG86IEtvbmR1cnUsIENo YW5kcmEKPiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgVmV0dGVyLCBEYW5p ZWw7IENvbnNlbHZhbiBEZSBPbGl2ZWlyYSwgQW5kZXIKPiBTdWJqZWN0OiBSZTogW1BBVENIIDA5 LzIxIHYyXSBkcm0vaTkxNTogQWRkIGF0b21pYyBmdW5jdGlvbiB0byBzZXR1cCBzY2FsZXJzCj4g c2NhbGVycyBmb3IgYSBjcnRjLgo+IAo+IE9uIEZyaSwgTWFyIDIwLCAyMDE1IGF0IDA1OjA0OjMw UE0gLTA3MDAsIENoYW5kcmEgS29uZHVydSB3cm90ZToKPiA+IGludGVsX2F0b21pY19zZXR1cF9z Y2FsZXJzIHNldHMgdXAgc2NhbGVycyBiYXNlZCBvbiBzdGFnZWQgc2NhbGluZwo+ID4gcmVxdWVz dHMgY29taW5nIGZyb20gYSBjcnRjIGFuZCBpdHMgcGxhbmVzLiBUaGlzIGZ1bmN0aW9uIHNob3Vs ZCBiZQo+ID4gY2FsbGVkIGZyb20gY3J0YyBsZXZlbCBjaGVjayBwYXRoLgo+ID4KPiA+IElmIHN0 YWdlZCByZXF1ZXN0cyBhcmUgc3VwcG9ydGFibGUsIGZ1bmN0aW9uIGFzc2lnbnMgc2NhbGVycyB0 bwo+ID4gcmVxdWVzdGVkIHBsYW5lcyBhbmQgY3J0Yy4gVGhpcyBmdW5jdGlvbiBhbHNvIHRha2Vz IGludG8gYWNjb3VudCB0aGUKPiA+IGN1cnJlbnQgcGxhbmVzIHVzaW5nIHNjYWxlcnMgYnV0IG5v dCBiZWluZyBwYXJ0IG9mIHRoaXMgYXRvbWljIHN0YXRlCj4gPiBmb3Igb3B0aW1hbCBvcGVyYXRp b24gb2Ygc2NhbGVycy4gTm90ZSB0aGF0IHRoZSBzY2FsZXIgYXNzaWduZW1lbnQKPiA+IGl0c2Vs ZiBpcyBzdGFnZWQgaW50byBjcnRjX3N0YXRlIGFuZCByZXNwZWN0aXZlIHBsYW5lX3N0YXRlcyBm b3IgbGF0ZXIKPiA+IGNvbW1pdCBhZnRlciBhbGwgY2hlY2tzIGhhdmUgYmVlbiBkb25lLgo+ID4K PiA+IG92ZXJhbGwgaGlnaCBsZXZlbCBmbG93Ogo+ID4gIC0gc2NhbGVyIHJlcXVlc3RzIGFyZSBz dGFnZWQgaW50byBjcnRjX3N0YXRlIGJ5IHBsYW5lcy9jcnRjCj4gPiAgLSBjaGVjayB3aGV0aGVy IHN0YWdlZCBzY2FsaW5nIHJlcXVlc3RzIGNhbiBiZSBzdXBwb3J0ZWQKPiA+ICAtIGFkZCBwbGFu ZXMgdXNpbmcgc2NhbGVycyB0aGF0IGFyZW4ndCBpbiBjdXJyZW50IHRyYW5zYWN0aW9uCj4gPiAg LSBhc3NpZ24gc2NhbGVycyB0byByZXF1ZXN0ZWQgdXNlcnMKPiA+ICAtIGFzIHBhcnQgb2YgcGxh bmUgY29tbWl0LCBzY2FsZXJzIHdpbGwgYmUgY29tbWl0dGVkCj4gPiAgICAoaS5lLiwgZWl0aGVy IGF0dGFjaGVkIG9yIGRldGFjaGVkKSB0byByZXNwZWN0aXZlIHBsYW5lcyBpbiBodwo+ID4gIC0g YXMgcGFydCBvZiBjcnRjX2NvbW1pdCwgc2NhbGVyIHdpbGwgYmUgZWl0aGVyIGF0dGFjaGVkIG9y IGRldGFjaGVkCj4gPiAgICB0byBjcnRjIGluIGh3Cj4gPgo+ID4gdjI6Cj4gPiAtcmVtb3ZlZCBh IGxvZyBtZXNzYWdlIChtZSkKPiA+IC1jaGFuZ2VkIGlucHV0IHBhcmFtZXRlciB0byBjcnRjX3N0 YXRlIChtZSkKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFuZHJhIEtvbmR1cnUgPGNoYW5kcmEu a29uZHVydUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdG9taWMuYyB8ICAxMzgKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgIHwgICAgMyArCj4gPiAgMiBm aWxlcyBjaGFuZ2VkLCAxNDEgaW5zZXJ0aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdG9taWMuYwo+ID4gaW5kZXggMzkwM2I5MC4uNDA3NTE2YSAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ID4gQEAgLTI0MSwzICsyNDEsMTQxIEBAIGlu dGVsX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiB7Cj4gPiAg CWRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShjcnRjLCBzdGF0ZSk7ICB9Cj4g PiArCj4gPiArLyoqCj4gPiArICogaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoKSAtIHNldHVw IHNjYWxlcnMgZm9yIGNydGMgcGVyIHN0YWdlZAo+ID4gK3JlcXVlc3RzCj4gPiArICogQGRldjog RFJNIGRldmljZQo+ID4gKyAqIEBjcnRjOiBpbnRlbCBjcnRjCj4gPiArICogQGNydGNfc3RhdGU6 IGluY29taW5nIGNydGNfc3RhdGUgdG8gdmFsaWRhdGUgYW5kIHNldHVwIHNjYWxlcnMKPiA+ICsg Kgo+ID4gKyAqIFRoaXMgZnVuY3Rpb24gc2V0dXBzIHVwIHNjYWxlcnMgYmFzZWQgb24gc3RhZ2Vk IHNjYWxpbmcgcmVxdWVzdHMKPiA+ICtmb3IKPiAKPiBzL3NldHVwcyB1cC9zZXRzIHVwLwoKWWVz LCB3aWxsIHVwZGF0ZS4KCj4gCj4gPiArICogYSBAY3J0YyBhbmQgaXRzIHBsYW5lcy4gSXQgaXMg Y2FsbGVkIGZyb20gY3J0YyBsZXZlbCBjaGVjayBwYXRoLgo+ID4gK0lmIHJlcXVlc3QKPiA+ICsg KiBpcyBhIHN1cHBvcnRhYmxlIHJlcXVlc3QsIGl0IGF0dGFjaGVzIHNjYWxlcnMgdG8gcmVxdWVz dGVkIHBsYW5lcyBhbmQgY3J0Yy4KPiA+ICsgKgo+ID4gKyAqIFRoaXMgZnVuY3Rpb24gdGFrZXMg aW50byBhY2NvdW50IHRoZSBjdXJyZW50IHNjYWxlcihzKSBpbiB1c2UgYnkKPiA+ICthbnkgcGxh bmVzCj4gPiArICogbm90IGJlaW5nIHBhcnQgb2YgdGhpcyBhdG9taWMgc3RhdGUKPiA+ICsgKgo+ ID4gKyAqICBSZXR1cm5zOgo+ID4gKyAqICAgICAgICAgMCAtIHNjYWxlcnMgd2VyZSBzZXR1cCBz dWNjZXNmdWxseQo+ID4gKyAqICAgICAgICAgZXJyb3IgY29kZSAtIG90aGVyd2lzZQo+ID4gKyAq Lwo+ID4gK2ludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ICsJc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpIHsKPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxh bmUgPSBOVUxMOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwo+ID4gKwlz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gTlVMTDsKPiA+ICsJc3RydWN0 IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJfc3RhdGU7Cj4gPiArCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpkcm1fc3RhdGU7Cj4gPiArCWludCBudW1fc2NhbGVyc19uZWVkOwo+ID4g KwlpbnQgaSwgajsKPiA+ICsKPiA+ICsJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOSB8fCAh aW50ZWxfY3J0YyB8fCAhY3J0Y19zdGF0ZSkKPiA+ICsJCXJldHVybiAwOwo+ID4gKwo+ID4gKwlz Y2FsZXJfc3RhdGUgPSAmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwo+ID4gKwlkcm1fc3RhdGUg PSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ID4gKwo+ID4gKwludW1fc2NhbGVyc19uZWVkID0g aHdlaWdodDMyKHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzKTsKPiA+ICsJRFJNX0RFQlVHX0tN UygiY3J0Y19zdGF0ZSA9ICVwIG5lZWQgPSAlZCBhdmFpbCA9ICVkIHNjYWxlcl91c2VycyA9Cj4g MHgleFxuIiwKPiA+ICsJCWNydGNfc3RhdGUsIG51bV9zY2FsZXJzX25lZWQsIHNjYWxlcl9zdGF0 ZS0+bnVtX3NjYWxlcnMsCj4gPiArCQlzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vycyk7Cj4gPiAr Cj4gPiArCS8qIGlmIHRoZXJlIGlzIG5vIGNoYW5nZSBpbiBzY2FsZXIgY29uZmlndXJhdGlvbiwg cmV0dXJuICovCj4gPiArCWlmIChzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2VycyA9PQo+ID4gKwkJ aW50ZWxfY3J0Yy0+Y29uZmlnLT5zY2FsZXJfc3RhdGUuc2NhbGVyX3VzZXJzKQo+ID4gKwkJcmV0 dXJuIDA7Cj4gPiArCj4gPiArCS8qCj4gPiArCSAqIEhpZ2ggbGV2ZWwgZmxvdzoKPiA+ICsJICog LSBzdGFnZWQgc2NhbGVyIHJlcXVlc3RzIGFyZSBhbHJlYWR5IGluIHNjYWxlcl9zdGF0ZS0+c2Nh bGVyX3VzZXJzCj4gPiArCSAqIC0gY2hlY2sgd2hldGhlciBzdGFnZWQgc2NhbGluZyByZXF1ZXN0 cyBjYW4gYmUgc3VwcG9ydGVkCj4gPiArCSAqIC0gYWRkIHBsYW5lcyB1c2luZyBzY2FsZXJzIHRo YXQgYXJlbid0IGluIGN1cnJlbnQgdHJhbnNhY3Rpb24KPiA+ICsJICogLSBhc3NpZ24gc2NhbGVy cyB0byByZXF1ZXN0ZWQgdXNlcnMKPiA+ICsJICogLSBhcyBwYXJ0IG9mIHBsYW5lIGNvbW1pdCwg c2NhbGVycyB3aWxsIGJlIGNvbW1pdHRlZAo+ID4gKwkgKiAgIChpLmUuLCBlaXRoZXIgYXR0YWNo ZWQgb3IgZGV0YWNoZWQpIHRvIHJlc3BlY3RpdmUgcGxhbmVzIGluIGh3Cj4gPiArCSAqIC0gYXMg cGFydCBvZiBjcnRjX2NvbW1pdCwgc2NhbGVyIHdpbGwgYmUgZWl0aGVyIGF0dGFjaGVkIG9yIGRl dGFjaGVkCj4gPiArCSAqICAgdG8gY3J0YyBpbiBodwo+ID4gKwkgKi8KPiA+ICsKPiA+ICsJLyog ZmFpbCBpZiByZXF1aXJlZCBzY2FsZXJzID4gYXZhaWxhYmxlIHNjYWxlcnMgKi8KPiA+ICsJaWYg KG51bV9zY2FsZXJzX25lZWQgPiBzY2FsZXJfc3RhdGUtPm51bV9zY2FsZXJzKXsKPiA+ICsJCURS TV9ERUJVR19LTVMoIlRvbyBtYW55IHNjYWxpbmcgcmVxdWVzdHMgJWQgPiAlZFxuIiwKPiA+ICsJ CQludW1fc2NhbGVyc19uZWVkLCBzY2FsZXJfc3RhdGUtPm51bV9zY2FsZXJzKTsKPiA+ICsJCXJl dHVybiAtRUlOVkFMOwo+ID4gKwl9Cj4gPiArCj4gPiArCS8qIHdhbGt0aHJvdWdoIHNjYWxlcl91 c2VycyBiaXRzIGFuZCBzdGFydCBhc3NpZ25pbmcgc2NhbGVycyAqLwo+ID4gKwlmb3IgKGkgPSAw OyBpIDwgc2l6ZW9mKHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzKSAqIDg7IGkrKykgewo+ID4g KwkJaW50ICpzY2FsZXJfaWQ7Cj4gPiArCj4gPiArCQkvKiBza2lwIGlmIHNjYWxlciBub3QgcmVx dWlyZWQgKi8KPiA+ICsJCWlmICghKHNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzICYgKDEgPDwg aSkpKQo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwo+ID4gKwkJaWYgKGkgPT0gU0tMX0NSVENfSU5E RVgpIHsKPiA+ICsJCQkvKiBwYW5lbCBmaXR0ZXIgY2FzZTogYXNzaWduIGFzIGEgY3J0YyBzY2Fs ZXIgKi8KPiA+ICsJCQlzY2FsZXJfaWQgPSAmc2NhbGVyX3N0YXRlLT5zY2FsZXJfaWQ7Cj4gPiAr CQl9IGVsc2Ugewo+ID4gKwkJCWlmICghZHJtX3N0YXRlKQo+ID4gKwkJCQljb250aW51ZTsKPiAK PiBUaGlzIHNob3VsZG4ndCBoYXBwZW4sIGF0IGxlYXN0IG5vdCBvbmNlIHdlJ3JlIGJhY2sgb24g dGhlIGZ1bGwgYXRvbWljIGhlbHBlcnMsCj4gcmlnaHQ/ICBJdCBzZWVtcyBsaWtlIGlmIGl0IGRv ZXMgaGFwcGVuLCBub3RoaW5nJ3MgZ29pbmcgdG8gd29yayByaWdodCwgc28gbWF5YmUKPiBhZGQg YSBXQVJOX09OKCkgdG8gdGhpcyB0ZXN0PwoKVHdvIHJlYXNvbnMgZm9yIGhhdmluZyBhYm92ZSBj aGVjazoKMSkgWWVzLCB0aGF0IGlzIHdoYXQgZXhwZWN0ZWQgaW4gY2FzZSBvZiBwbGFuZXMuIEJ1 dCBiZWNhdXNlIGN1cnJlbnQgdHJlZSBpcyBub3QgCmhhdmluZyBmdWxsIGF0b21pYyBoZWxwZXJz LCBwbGFjZWQgdGhpcyBjaGVjay4KMikgRHVyaW5nIGxlZ2FjeSBzZXRtb2RlIHJlcXVpcmluZy9m cmVlaW5nIHBhbmVsIGZpdHRlciwgIGl0IGNhbiBiZSBudWxsLiAKVG8gY292ZXIgdGhvc2UgY2Fz ZXMsIHBsYWNlZCB0aGlzIGNoZWNrIGZvciBwcm9wZXIgb3BlcmF0aW9uIG9mIHNjYWxlciAKZm9y IHBhbmVsIGZpdHRlci4gCgo+IAo+ID4gKwo+ID4gKwkJCS8qIHBsYW5lIHNjYWxlciBjYXNlOiBh c3NpZ24gYXMgYSBwbGFuZSBzY2FsZXIgKi8KPiA+ICsJCQkvKiBmaW5kIHRoZSBwbGFuZSB0aGF0 IHNldCB0aGUgYml0IGFzIHNjYWxlcl91c2VyICovCj4gPiArCQkJcGxhbmUgPSBkcm1fc3RhdGUt PnBsYW5lc1tpXTsKPiA+ICsKPiA+ICsJCQkvKgo+ID4gKwkJCSAqIHRvIGVuYWJsZS9kaXNhYmxl IGhxIG1vZGUsIGFkZCBwbGFuZXMgdGhhdCBhcmUgdXNpbmcKPiBzY2FsZXIKPiA+ICsJCQkgKiBp bnRvIHRoaXMgdHJhbnNhY3Rpb24KPiA+ICsJCQkgKi8KPiA+ICsJCQlpZiAoIXBsYW5lKSB7Cj4g PiArCQkJCXBsYW5lID0gZHJtX3BsYW5lX2Zyb21faW5kZXgoZGV2LCBpKTsKPiA+ICsJCQkJZHJt X3N0YXRlLT5wbGFuZXNbaV0gPSBwbGFuZTsKPiA+ICsJCQkJZHJtX3N0YXRlLT5wbGFuZV9zdGF0 ZXNbaV0gPQo+ID4gKwo+IAlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShkcm1fc3RhdGUsIHBs YW5lKTsKPiAKPiBJIHRoaW5rIHlvdSBuZWVkIHRvIHRlc3QgZm9yIEVERUFETEsgaGVyZSBpbiBj YXNlIHdlIGhhdmUgYSB3L3cgY29sbGlzaW9uLgo+IE90aGVyIGVycm9ycyBsaWtlIEVOT01FTSBt aWdodCBhbHNvIGhhcHBlbi4gIEFjdHVhbGx5LAo+IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRl KCkgd2lsbCB0YWtlIGNhcmUgb2YgYWRkaW5nIHRoZSBzdGF0ZSB0byB0aGUKPiBwbGFuZV9zdGF0 ZXNbXSBhcnJheSBmb3IgeW91LCBzbyBubyBuZWVkIGZvciB0aGUgYXNzaWdubWVudDsgeW91IGNh biBqdXN0IGNhbGwgdGhlCj4gZnVuY3Rpb24gYW5kIGNoZWNrIGZvciBlcnJvciByZXR1cm5zLgoK T2ssIHdpbGwgcmV0dXJuIGluIGNhc2Ugb2YgZXJyb3IgZnJvbSBkcm1fYXRvbWljX2dldF9wbGFu ZV9zdGF0ZSgpLgpXaWxsIHNlbmQgdXBkYXRlZCBwYXRjaCBzaG9ydGx5LgoKPiAKPiA+ICsJCQl9 Cj4gPiArCj4gPiArCQkJaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gPiAr Cj4gPiArCQkJLyogcGxhbmUgb24gZGlmZmVyZW50IGNydGMgY2Fubm90IGJlIGEgc2NhbGVyIHVz ZXIgb2YgdGhpcwo+IGNydGMgKi8KPiA+ICsJCQlpZiAoV0FSTl9PTihpbnRlbF9wbGFuZS0+cGlw ZSAhPSBpbnRlbF9jcnRjLT5waXBlKSkgewo+ID4gKwkJCQljb250aW51ZTsKPiA+ICsJCQl9Cj4g PiArCj4gPiArCQkJcGxhbmVfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fc3RhdGUt Cj4gPnBsYW5lX3N0YXRlc1tpXSk7Cj4gPiArCQkJc2NhbGVyX2lkID0gJnBsYW5lX3N0YXRlLT5z Y2FsZXJfaWQ7Cj4gPiArCQl9Cj4gPiArCj4gPiArCQlpZiAoKnNjYWxlcl9pZCA8IDApIHsKPiA+ ICsJCQkvKiBmaW5kIGEgZnJlZSBzY2FsZXIgKi8KPiA+ICsJCQlmb3IgKGogPSAwOyBqIDwgc2Nh bGVyX3N0YXRlLT5udW1fc2NhbGVyczsgaisrKSB7Cj4gPiArCQkJCWlmICghc2NhbGVyX3N0YXRl LT5zY2FsZXJzW2pdLmluX3VzZSkgewo+ID4gKwkJCQkJc2NhbGVyX3N0YXRlLT5zY2FsZXJzW2pd LmluX3VzZSA9IDE7Cj4gPiArCQkJCQkqc2NhbGVyX2lkID0gc2NhbGVyX3N0YXRlLT5zY2FsZXJz W2pdLmlkOwo+ID4gKwkJCQkJRFJNX0RFQlVHX0tNUygiQXR0YWNoZWQgc2NhbGVyIGlkCj4gJXUu JXUgdG8gJXM6JWRcbiIsCj4gPiArCQkJCQkJaW50ZWxfY3J0Yy0+cGlwZSwKPiA+ICsJCQkJCQlp ID09IFNLTF9DUlRDX0lOREVYID8KPiBzY2FsZXJfc3RhdGUtPnNjYWxlcl9pZCA6Cj4gPiArCQkJ CQkJCXBsYW5lX3N0YXRlLQo+ID5zY2FsZXJfaWQsCj4gPiArCQkJCQkJaSA9PSBTS0xfQ1JUQ19J TkRFWCA/ICJDUlRDIgo+IDogIlBMQU5FIiwKPiA+ICsJCQkJCQlpID09IFNLTF9DUlRDX0lOREVY ID8KPiBpbnRlbF9jcnRjLT5iYXNlLmJhc2UuaWQgOgo+ID4gKwkJCQkJCXBsYW5lLT5iYXNlLmlk KTsKPiA+ICsJCQkJCWJyZWFrOwo+ID4gKwkJCQl9Cj4gPiArCQkJfQo+ID4gKwkJfQo+ID4gKwo+ ID4gKwkJaWYgKFdBUk5fT04oKnNjYWxlcl9pZCA8IDApKSB7Cj4gPiArCQkJRFJNX0RFQlVHX0tN UygiQ2Fubm90IGZpbmQgc2NhbGVyIGZvciAlczolZFxuIiwKPiA+ICsJCQkJaSA9PSBTS0xfQ1JU Q19JTkRFWCA/ICJDUlRDIiA6ICJQTEFORSIsCj4gPiArCQkJCWkgPT0gU0tMX0NSVENfSU5ERVgg PyBpbnRlbF9jcnRjLQo+ID5iYXNlLmJhc2UuaWQ6cGxhbmUtPmJhc2UuaWQpOwo+ID4gKwkJCWNv bnRpbnVlOwo+ID4gKwkJfQo+ID4gKwo+ID4gKwkJLyogc2V0IHNjYWxlciBtb2RlICovCj4gPiAr CQlzY2FsZXJfc3RhdGUtPnNjYWxlcnNbKnNjYWxlcl9pZF0ubW9kZSA9IChudW1fc2NhbGVyc19u ZWVkID09Cj4gMSkgPwo+ID4gKwkJCVBTX1NDQUxFUl9NT0RFX0hRIDogUFNfU0NBTEVSX01PREVf RFlOOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggZjVkNTNjOS4uYTlkNzg3ZCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE0MDEsNiArMTQwMSw5IEBAIGludGVsX2F0 b21pY19nZXRfY3J0Y19zdGF0ZShzdHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ ID4KPiA+ICAJcmV0dXJuIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7ICB9Cj4gPiAr aW50IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g PiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPgo+ID4gIC8qIGludGVsX2F0b21pY19wbGFuZS5jICov Cj4gPiAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9jcmVhdGVfcGxhbmVfc3RhdGUo c3RydWN0IGRybV9wbGFuZQo+ID4gKnBsYW5lKTsKPiA+IC0tCj4gPiAxLjcuOS41Cj4gPgo+IAo+ IC0tCj4gTWF0dCBSb3Blcgo+IEdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCj4gSW9URyBQbGF0 Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50Cj4gSW50ZWwgQ29ycG9yYXRpb24KPiAoOTE2KSAz NTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=