From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] [RFC] drm/i915/skl+: enable PF_ID interlace mode in SKL Date: Mon, 19 Jun 2017 16:05:37 +0300 Message-ID: <20170619130537.GO12629@intel.com> References: <20170607094905.16014-1-mahesh1.kumar@intel.com> <20170616141728.GL12629@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 ESMTPS id 1DAD389FC5 for ; Mon, 19 Jun 2017 13:05:42 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mahesh Kumar Cc: intel-gfx@lists.freedesktop.org, dhinakaran.pandiyan@intel.com, maarten.lankhorst@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMTksIDIwMTcgYXQgMDU6NTA6MjhQTSArMDUzMCwgTWFoZXNoIEt1bWFyIHdy b3RlOgo+IEhpIFZpbGxlLAo+IAo+IFRoYW5rcyBmb3IgcmV2aWV3Cj4gCj4gCj4gT24gRnJpZGF5 IDE2IEp1bmUgMjAxNyAwNzo0NyBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gT24gV2Vk LCBKdW4gMDcsIDIwMTcgYXQgMDM6MTk6MDVQTSArMDUzMCwgTWFoZXNoIEt1bWFyIHdyb3RlOgo+ ID4+IEluIHByZXZpb3VzIEdFTiBkZWZhdWx0IEludGVybGFjZSBtb2RlIGVuYWJsZWQgaXMgSUYt SUQgbW9kZSwgYnV0IElGLUlECj4gPj4gbW9kZSBoYXMgbWFueSBsaW1pdGF0aW9ucyBpbiBTS0wu IFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBvcnQgeS10aWxpbmcsCj4gPj4gOTAtMjcwIHJvdGF0aW9u IGlzIG5vdCBzdXBwb3J0ZWQgJiBZVVYtNDIwIHBsYW5hciBzb3VyY2UgcGl4ZWwgZm9ybWF0cwo+ ID4+IGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggYWJvdmUgbW9kZS4KPiA+IEkgdGhpbmsgd2UnbGwg d2FudCBzb21ldGhpbmcgbXVjaCBtb3JlIHNpbXBsZSBmb3Igc3RhYmxlLiBBbmQgdGhhdAo+ID4g c2hvdWxkIHByb2JhYmx5IGJlIGp1c3QgLUVJTlZBTCBpZiB3ZSB0cnkgdG8gZG8gYW55IG9mIHRo b3NlCj4gPiBmb3JiaWRkZW4gdGhpbmdzIHdpdGggYW4gaW50ZXJsYWNlZCBtb2RlLgo+IEFncmVl Lgo+ID4KPiA+PiBUaGlzIHBhdGNoIG1ha2UgY2hhbmdlcyB0byB1c2UgUEYtSUQgSW50ZXJsYWNl IG1vZGUgaW4gU0tMKyBwbGF0Zm9ybXMuCj4gPj4gUEYtSUQgbW9kZSByZXF1aXJlIG9uZSBzY2Fs ZXIgdG8gYmUgYXR0YWNoZWQgaW4gcGlwZS1zY2FsaW5nIG1vZGUuCj4gPj4gICAgRHVyaW5nIFdN IGNhbGN1bGF0aW9uIGFkanVzdGVkIHBpeGVsIHJhdGUgbmVlZCB0byBiZSBkb3VibGVkLgo+ID4+ ICAgIER1cmluZyBtYXhfc3VwcG9ydGVkX3BpeGVsX2Zvcm1hdCBjYWxjdWxhdGlvbiB2ZXJ0aWNh bCBkb3duc2NhbGUgaXMgMi4wLgo+ID4+Cj4gPj4gU2lnbmVkLW9mZi1ieTogTWFoZXNoIEt1bWFy IDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KPiA+PiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZy ZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAyMzgKPiA+PiAtLS0KPiA+PiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8IDEzICsrKysrKysrKysKPiA+PiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDQ3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLQo+ID4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgMTAgKysrKysrKysKPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bh bmVsLmMgICB8ICA5ICsrKysrLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgICAgICB8IDE3ICsrKysrKysrKysrKy0KPiA+PiAgIDUgZmlsZXMgY2hhbmdlZCwgODcgaW5z ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F0b21pYy5jCj4gPj4gaW5kZXggZDc5MWIzZWY4OWI1Li4wNmVkMmZjNDQ5ZDcgMTAwNjQ0Cj4g Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ID4+IEBAIC0yNDgsNiArMjQ4LDEz IEBAIGludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gPj4gICAJCXJldHVybiAtRUlOVkFMOwo+ID4+ICAgCX0KPiA+PiAgIAo+ ID4+ICsJaWYgKG51bV9zY2FsZXJzX25lZWQgPiAxICYmCj4gPj4gKwkJCXNjYWxlcl9zdGF0ZS0+ c2NhbGVyX3VzZXJzICYgKDEgPDwgU0tMX0NSVENfSU5ERVgpICYmCj4gPj4gKwkJCXNjYWxlcl9z dGF0ZS0+c2NhbGVyX3VzZXJzICYgKDEgPDwgU0tMX1BGX0lEX0lOREVYKSkgewo+ID4+ICsJCURS TV9FUlJPUigiQ2FuJ3QgYXR0YWNoIHNjYWxlciB0byBDUlRDIGluIEludGVybGFjZSBNb2RlXG4i KTsKPiA+PiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+PiArCX0KPiA+IEkgdGhvdWdodCB0aGUgd2hv bGUgcG9pbnQgb2YgUEYtSUQgaGVyZSB3YXMgdGhhdCB3ZSBjYW4gdGhlbiBkbyBwaXBlCj4gPiBz Y2FsaW5nIChhbmQgb3RoZXIgdGhpbmdzKS4gU28gdGhpcyBjaGVjayBsb29rcyB3cm9uZyB0byBt ZS4KPiBXaXRoIFBGLUlEIHdlIGNhbiBoYXZlIFktdGlsZWQgYnVmZmVycywgJiA5MC8yNzAgcm90 YXRpb24gZW5hYmxlZCwgSXQgCj4gZG9lc24ndCBleHBsaWNpdGx5IHRhbGsgYWJvdXQgc2NhbGlu Zy4KClBGLUlEIGl0c2VsZiBpcyBzY2FsaW5nLiBQcmVzdW1hYmx5IHlvdSBkb24ndCBoYXZlIHRv IGhhdmUgZXhhY3RseQoyOjEgc2NhbGluZyBmYWN0b3Igd2l0aCBQRi1JRC4KCj4gQlNwZWMgZG9l c24ndCBsaW1pdCB1cyBmcm9tIHVzaW5nIDIgc2NhbGVycyBhcyBhIHBpcGUgc2NhbGVyLCBzdGls bCBJIAo+IHNlbnQgYSBxdWVyeSB0byBIVyB0ZWFtIHJlZ2FyZGluZyBzYW1lLgoKV2UgZG9uJ3Qg d2FudCB0byB1c2UgbXVsdGlwbGUgc2NhbGVycy4gSSBkdWJ0IHRoYXQgd291bGQgZXZlbiB3b3Jr LiBBbmQKYmVmb3JlIFNLTCB0aGUgcGFuZWwgZml0dGVyIHdhcyBhIGRlZGljYXRlZCBwaWVjZSBv ZiBodyBhbnl3YXkgc28gdGhlcmUKd2FzIG5vIHdheSB0byBldmVuIHRyeSB0byBhc3NpZ24gbXVs dGlwbGUgc2NhbGVycyB0byB0aGUgcGlwZS4KCj4KPiBDdXJyZW50IFMvVyBmcmFtZXdvcmsgZG9l c24ndCBhbGxvd3MgdXMgdG8gYXR0YWNoIG11bHRpcGxlIHBpcGUtc2NhbGVycyAKPiBpbiBhIHBp cGUgKG11bHRpcGxlIHNjYWxlcl9pZCBhc3NvY2lhdGVkIHdpdGggb25lIGNydGNfc3RhdGUpLiB0 aGF0J3MgCj4gdGhlIHJlYXNvbiBmb3IgYWJvdmUgY2hlY2suCj4gPgo+ID4gQW5kIEknbSB0aGlu a2luZyB3ZSBzaG91bGRuJ3QgYmUgYWRkaW5nIHlldCBhbm90aGVyIHNjYWxlciB1c2VyIGZvcgo+ ID4gdGhpcywgYW5kIGluc3RlYWQgaXQgc2hvdWxkIGp1c3QgYmUgcGFydCBvZiB0aGUgbm9ybWFs IHBmaXQgc2V0dXAuCj4gVG8gdXNlIGV4aXN0aW5nIHNjYWxlciBmcmFtZXdvcmssIHdlIG5lZWQg b25lIHNjYWxlci11c2VyIHRvIGJlIAo+IGFzc29jaWF0ZWQgd2l0aCBpdC4KPiBJZiB3ZSB1c2Ug ZXhpc3RpbmcgQ1JUQ19JTkRFWCB1c2VyIHRoZW4gdGhlcmUgd2lsbCBiZSBtYW55IGNvcm5lciBj YXNlcyAKPiB0byBoYW5kbGUuCgpJJ20gbm90IDEwMCUgd2hldGhlciB3ZSBuZWVkIGFueSBhZGp1 c3RtZW50IGluIHRoZSBwZml0IGNvZGUgaXRzZWxmLgpUaGUgc3BlYyBkb2Vzbid0IHNlZW0gdG8g dGVsbCB1cyB0aGF0IHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBwYW5lbApmaXR0ZXIgd2luZG93IGlu IGFueSB3YXkuIFRoYXQncyBhIGxpdHRsZSBpbmNvbnNpc3RlbnQgd2l0aCB0aGUKcmVzdWx0aW5n IHNjYWxpbmcgZmFjdG9yLCBidXQgSSBndWVzcyB0aGUgaHcgd2lsbCBhdXRvbWFnaWNhbGx5IHJl ZHVjZQp0aGUgZGVzdGluYXRpb24gc2l6ZSBieSB0d28gd2hlbiB0aGUgcGlwZSBpcyBpbiB0aGUg UEYtSUQgbW9kZS4KClNvIEkgdGhpbmsgaXQgc2hvdWxkIG1vc3RseSBiZSBhIHNpbXBsZSBtYXR0 ZXIgb2YgY2FsbGluZyB0aGUgcGZpdApjb2RlIHRvIHNldCB1cCB0aGUgcG9zL3NpemUsIGFuZCB0 aGVuIHlvdSBzaG91bGQganVzdCBhZGp1c3QKaWxrX3BpcGVfcGl4ZWxfcmF0ZSgpIHRvIGRvdWJs ZSB0aGUgcmVzdWx0aW5nIHBpeGVsIHJhdGUuCgpUaGF0IHNhaWQsIEknbSBub3QgcmVhbGx5IHN1 cmUgd2Ugd2FudCB0byBmbGlwIFBGLUlEIG9uIGF1dG9tYWdpY2FsbHkuCkl0IHdvdWxkIHJlc3Vs dCBpbiBzY2FsaW5nIHdoZW4gdGhlIHVzZXIgZG9lc24ndCBuZWNlc3NhcmlseSB3YW50IGl0LgpT byB3ZSBtaWdodCB3YW50IHRvIHRoaW5rIGFib3V0IHNvbWUga2luZCBpZiBwcm9wZXJ0eSB0byBj b250cm9sIHRoaXMKc3R1ZmYuCgo+IFRvIG1ha2UgaXQgc2ltcGxlIEkgYWRkZWQgbmV3IHNjYWxl ci11c2VyLgo+IFRoaXMgY29kZSB1c2VzIHBmaXQgc2V0dXAgb25seSAgdG8gYXR0YWNoL2VuYWJs ZSBQaXBlLXNjYWxlci4KPiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgSSBkaWRuJ3QgdW5kZXJzdG9v ZCB5b3VyIGNvbmNlcm4gY29ycmVjdGx5Lgo+IEFueSBvdGhlciBzdWdnZXN0aW9ucy9xdWVyaWVz IGFyZSB3ZWxjb21lLgo+IAo+IC1NYWhlc2gKPiAKPiA+Cj4gPj4gKwo+ID4+ICAgCS8qIHdhbGt0 aHJvdWdoIHNjYWxlcl91c2VycyBiaXRzIGFuZCBzdGFydCBhc3NpZ25pbmcgc2NhbGVycyAqLwo+ ID4+ICAgCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2NhbGVyX3N0YXRlLT5zY2FsZXJfdXNlcnMp ICogODsgaSsrKSB7Cj4gPj4gICAJCWludCAqc2NhbGVyX2lkOwo+ID4+IEBAIC0yNjQsNiArMjcx LDEyIEBAIGludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gPj4gICAKPiA+PiAgIAkJCS8qIHBhbmVsIGZpdHRlciBjYXNlOiBh c3NpZ24gYXMgYSBjcnRjIHNjYWxlciAqLwo+ID4+ICAgCQkJc2NhbGVyX2lkID0gJnNjYWxlcl9z dGF0ZS0+c2NhbGVyX2lkOwo+ID4+ICsJCX0gZWxzZSBpZiAoaSA9PSBTS0xfUEZfSURfSU5ERVgp IHsKPiA+PiArCQkJbmFtZSA9ICJQRi1JRCBJTlRFUkxBQ0UgTU9ERSI7Cj4gPj4gKwkJCWlkeCA9 IGludGVsX2NydGMtPmJhc2UuYmFzZS5pZDsKPiA+PiArCj4gPj4gKwkJCS8qIFBGLUlEIGludGVy bGFjZWQgbW9kZSBjYXNlOiBuZWVkcyBhIHBpcGUgc2NhbGVyICovCj4gPj4gKwkJCXNjYWxlcl9p ZCA9ICZzY2FsZXJfc3RhdGUtPnNjYWxlcl9pZDsKPiA+PiAgIAkJfSBlbHNlIHsKPiA+PiAgIAkJ CW5hbWUgPSAiUExBTkUiOwo+ID4+ICAgCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4+IGluZGV4IDg1YWMzMjU0OWU4NS4uMTVjNzliNDZkNjQ1IDEwMDY0NAo+ID4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+IEBAIC00NjI2LDYgKzQ2MjYsMTEg QEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs IGJvb2wgZm9yY2VfZGV0YWNoLAo+ID4+ICAgCSAqLwo+ID4+ICAgCW5lZWRfc2NhbGluZyA9IHNy Y193ICE9IGRzdF93IHx8IHNyY19oICE9IGRzdF9oOwo+ID4+ICAgCj4gPj4gKwlpZiAoKGNydGNf c3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNF KQo+ID4+ICsJCSYmIHNjYWxlcl91c2VyID09IFNLTF9QRl9JRF9JTkRFWCkKPiA+PiArCQkvKiBQ Ri1JRCBJbnRlcmxhY2UgbW9kZSBuZWVkcyBhIHNjYWxlciAqLwo+ID4+ICsJCW5lZWRfc2NhbGlu ZyA9IHRydWU7Cj4gPj4gKwo+ID4+ICAgCS8qCj4gPj4gICAJICogaWYgcGxhbmUgaXMgYmVpbmcg ZGlzYWJsZWQgb3Igc2NhbGVyIGlzIG5vIG1vcmUgcmVxdWlyZWQgb3IgZm9yY2UgZGV0YWNoCj4g Pj4gICAJICogIC0gZnJlZSBzY2FsZXIgYmluZGVkIHRvIHRoaXMgcGxhbmUvY3J0Ywo+ID4+IEBA IC00NjM1LDE2ICs0NjQwLDI0IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFjaCwKPiA+PiAgIAkgKiBzY2FsZXIg Y2FuIGJlIGFzc2lnbmVkIHRvIG90aGVyIHVzZXIuIEFjdHVhbCByZWdpc3Rlcgo+ID4+ICAgCSAq IHVwZGF0ZSB0byBmcmVlIHRoZSBzY2FsZXIgaXMgZG9uZSBpbiBwbGFuZS9wYW5lbC1maXQgcHJv Z3JhbW1pbmcuCj4gPj4gICAJICogRm9yIHRoaXMgcHVycG9zZSBjcnRjL3BsYW5lX3N0YXRlLT5z Y2FsZXJfaWQgaXNuJ3QgcmVzZXQgaGVyZS4KPiA+PiArCSAqIE5vdyBJbnRlcmxhY2UgbW9kZSBp cyBhIG5ldyB1c2VyIG9mIHBpcGUtc2NhbGVyLCBzbyBmcmVlIHRoZSBzY2FsZXItaWQKPiA+PiAr CSAqIG9ubHkgaWYgY2FsbCBpcyBmb3IgcmVzcGVjdGl2ZSB1c2VyLiBJZiBubyB1c2VyIGZvciBz Y2FsZXIgZnJlZSBpdC4KPiA+PiAgIAkgKi8KPiA+PiAgIAlpZiAoZm9yY2VfZGV0YWNoIHx8ICFu ZWVkX3NjYWxpbmcpIHsKPiA+PiAtCQlpZiAoKnNjYWxlcl9pZCA+PSAwKSB7Cj4gPj4gKwkJaWYg KCpzY2FsZXJfaWQgPj0gMCAmJgo+ID4+ICsJCSAgICBzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vy cyAmICgxIDw8IHNjYWxlcl91c2VyKSkgewo+ID4+ICAgCQkJc2NhbGVyX3N0YXRlLT5zY2FsZXJf dXNlcnMgJj0gfigxIDw8IHNjYWxlcl91c2VyKTsKPiA+PiAgIAkJCXNjYWxlcl9zdGF0ZS0+c2Nh bGVyc1sqc2NhbGVyX2lkXS5pbl91c2UgPSAwOwo+ID4+ICAgCj4gPj4gICAJCQlEUk1fREVCVUdf S01TKCJzY2FsZXJfdXNlciBpbmRleCAldS4ldTogIgo+ID4+ICAgCQkJCSJTdGFnZWQgZnJlZWlu ZyBzY2FsZXIgaWQgJWQgc2NhbGVyX3VzZXJzID0gMHgleFxuIiwKPiA+PiAtCQkJCWludGVsX2Ny dGMtPnBpcGUsIHNjYWxlcl91c2VyLCAqc2NhbGVyX2lkLAo+ID4+IC0JCQkJc2NhbGVyX3N0YXRl LT5zY2FsZXJfdXNlcnMpOwo+ID4+ICsJCQkJaW50ZWxfY3J0Yy0+cGlwZSwgc2NhbGVyX3VzZXIs Cj4gPj4gKwkJCQkqc2NhbGVyX2lkLCBzY2FsZXJfc3RhdGUtPnNjYWxlcl91c2Vycyk7Cj4gPj4g Kwo+ID4+ICsJCQkqc2NhbGVyX2lkID0gLTE7Cj4gPj4gKwkJfQo+ID4+ICsJCWlmICgqc2NhbGVy X2lkID49IDAgJiYgIXNjYWxlcl9zdGF0ZS0+c2NhbGVyX3VzZXJzKSB7Cj4gPj4gKwkJCXNjYWxl cl9zdGF0ZS0+c2NhbGVyc1sqc2NhbGVyX2lkXS5pbl91c2UgPSAwOwo+ID4+ICAgCQkJKnNjYWxl cl9pZCA9IC0xOwo+ID4+ICAgCQl9Cj4gPj4gICAJCXJldHVybiAwOwo+ID4+IEBAIC00NjkxLDYg KzQ3MDQsMTYgQEAgaW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGMoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnN0YXRlKQo+ID4+ICAgCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5LCBhZGp1 c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5KTsKPiA+PiAgIH0KPiA+PiAgIAo+ID4+ICtzdGF0aWMg aW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGNfcGZfaWRfb3V0cHV0KHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpzdGF0ZSkKPiA+PiArewo+ID4+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUgPSAmc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+PiArCj4gPj4gKwlyZXR1 cm4gc2tsX3VwZGF0ZV9zY2FsZXIoc3RhdGUsICFzdGF0ZS0+YmFzZS5hY3RpdmUsCj4gPj4gKwkJ U0tMX1BGX0lEX0lOREVYLCAmc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfaWQsCj4gPj4gKwkJ c3RhdGUtPnBpcGVfc3JjX3csIHN0YXRlLT5waXBlX3NyY19oLAo+ID4+ICsJCW1vZGUtPmNydGNf aGRpc3BsYXksIG1vZGUtPmNydGNfdmRpc3BsYXkpOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAgLyoq Cj4gPj4gICAgKiBza2xfdXBkYXRlX3NjYWxlcl9wbGFuZSAtIFN0YWdlcyB1cGRhdGUgdG8gc2Nh bGVyIHN0YXRlIGZvciBhIGdpdmVuIHBsYW5lLgo+ID4+ICAgICoKPiA+PiBAQCAtNjI1OCw2ICs2 MjgxLDE1IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiA+PiAgIAkJfQo+ID4+ICAgCX0KPiA+PiAgIAo+ID4+ICsJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ID4+ICsJCWlmIChza2xfdXBkYXRlX3NjYWxlcl9j cnRjX3BmX2lkX291dHB1dChwaXBlX2NvbmZpZykpIHsKPiA+PiArCQkJRFJNX0VSUk9SKCJVbmFi bGUgdG8gc2V0IHNjYWxlciBmb3IgUEYtSUQgbW9kZVxuIik7Cj4gPj4gKwkJCXJldHVybiAtRUlO VkFMOwo+ID4+ICsJCX0KPiA+PiArCQlpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhjcnRjLCBwaXBl X2NvbmZpZywKPiA+PiArCQkJCQlEUk1fTU9ERV9TQ0FMRV9GVUxMU0NSRUVOKTsKPiA+PiArCX0K PiA+PiArCj4gPj4gICAJaWYgKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBjbG9ja19saW1p dCkgewo+ID4+ICAgCQlEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgcGl4ZWwgY2xvY2sgKCVkIGtI eikgdG9vIGhpZ2ggKG1heDogJWQga0h6LCBkb3VibGUgd2lkZTogJXMpXG4iLAo+ID4+ICAgCQkJ ICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywgY2xvY2tfbGltaXQsCj4gPj4gQEAgLTgw NDUsOSArODA3NywxMiBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9waXBlY29uZihzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gPj4gICAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYmIGludGVs X2NydGMtPmNvbmZpZy0+ZGl0aGVyKQo+ID4+ICAgCQl2YWwgfD0gKFBJUEVDT05GX0RJVEhFUl9F TiB8IFBJUEVDT05GX0RJVEhFUl9UWVBFX1NQKTsKPiA+PiAgIAo+ID4+IC0JaWYgKGludGVsX2Ny dGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRF UkxBQ0UpCj4gPj4gLQkJdmFsIHw9IFBJUEVDT05GX0lOVEVSTEFDRURfSUxLOwo+ID4+IC0JZWxz ZQo+ID4+ICsJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdz ICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKPiA+PiArCQlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSA5KQo+ID4+ICsJCQl2YWwgfD0gUElQRUNPTkZfUEZJVF9QRl9JTlRFUkxBQ0VEX0lM SzsKPiA+PiArCQllbHNlCj4gPj4gKwkJCXZhbCB8PSBQSVBFQ09ORl9JTlRFUkxBQ0VEX0lMSzsK PiA+PiArCX0gZWxzZQo+ID4+ICAgCQl2YWwgfD0gUElQRUNPTkZfUFJPR1JFU1NJVkU7Cj4gPj4g ICAKPiA+PiAgIAlJOTE1X1dSSVRFKFBJUEVDT05GKGNwdV90cmFuc2NvZGVyKSwgdmFsKTsKPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4+IGluZGV4IDgzZGQ0MDkwNTgyMS4uZDQ1NDZm NjQ5OGI5IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+PiBAQCAtNDgz LDYgKzQ4Myw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSB7Cj4gPj4gICAJICog YXZpbGFiaWxpdHkuCj4gPj4gICAJICovCj4gPj4gICAjZGVmaW5lIFNLTF9DUlRDX0lOREVYIDMx Cj4gPj4gKyNkZWZpbmUgU0tMX1BGX0lEX0lOREVYIDI5Cj4gPj4gICAJdW5zaWduZWQgc2NhbGVy X3VzZXJzOwo+ID4+ICAgCj4gPj4gICAJLyogc2NhbGVyIHVzZWQgYnkgY3J0YyBmb3IgcGFuZWwg Zml0dGluZyBwdXJwb3NlICovCj4gPj4gQEAgLTEyMDYsNiArMTIwNywxNSBAQCBoZG1pX3RvX2Rp Z19wb3J0KHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pKQo+ID4+ICAgCXJldHVybiBjb250 YWluZXJfb2YoaW50ZWxfaGRtaSwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCwgaGRtaSk7Cj4g Pj4gICB9Cj4gPj4gICAKPiA+PiArc3RhdGljIGlubGluZSBib29sCj4gPj4gK2lzX3NrbF9pbnRl cmxhY2VfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPj4gKwkJICAg ICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gPj4gK3sKPiA+PiArCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKPiA+PiArCQlyZXR1cm4gZmFsc2U7Cj4gPj4gKwly ZXR1cm4gbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRTsKPiA+PiArfQo+ID4+ ICsKPiA+PiAgIC8qIGludGVsX2ZpZm9fdW5kZXJydW4uYyAqLwo+ID4+ICAgYm9vbCBpbnRlbF9z ZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+PiAgIAkJCQkJICAgZW51bSBwaXBlIHBpcGUsIGJvb2wgZW5hYmxlKTsKPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiA+PiBpbmRleCA0MTE0Y2IzZjE0ZTcuLmZh ZTdmZTc4MDJmOCAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w YW5lbC5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ID4+ IEBAIC0xMDgsOSArMTA4LDE0IEBAIGludGVsX3BjaF9wYW5lbF9maXR0aW5nKHN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjLAo+ID4+ICAgCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPj4g ICAJaW50IHggPSAwLCB5ID0gMCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwo+ID4+ICAgCj4gPj4g LQkvKiBOYXRpdmUgbW9kZXMgZG9uJ3QgbmVlZCBmaXR0aW5nICovCj4gPj4gKwkvKgo+ID4+ICsJ ICogTmF0aXZlIG1vZGVzIGRvbid0IG5lZWQgZml0dGluZwo+ID4+ICsJICogUEYtSUQgSW50ZXJs YWNlIG1vZGUgaW4gU0tMKyByZXF1aXJlIGEgcGlwZSBzY2FsZXIKPiA+PiArCSAqLwo+ID4+ICAg CWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID09IHBpcGVfY29uZmlnLT5waXBlX3Ny Y193ICYmCj4gPj4gLQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSA9PSBwaXBlX2Nv bmZpZy0+cGlwZV9zcmNfaCkKPiA+PiArCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5 ID09IHBpcGVfY29uZmlnLT5waXBlX3NyY19oICYmCj4gPj4gKwkgICAgIShpc19za2xfaW50ZXJs YWNlX21vZGUodG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldiksCj4gPj4gKwkJCQkgICAgYWRq dXN0ZWRfbW9kZSkpKQo+ID4+ICAgCQlnb3RvIGRvbmU7Cj4gPj4gICAKPiA+PiAgIAlzd2l0Y2gg KGZpdHRpbmdfbW9kZSkgewo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4+IGluZGV4IGFh OWQ4Y2VmN2NlMC4uZGZiMjFmMDBmYmVkIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4gPj4gQEAgLTM4NzMsMTUgKzM4NzMsMTggQEAgc3RhdGljIHVpbnRfZml4ZWRfMTZfMTZf dAo+ID4+ICAgc2tsX3BpcGVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgIHsKPiA+PiAgIAl1aW50X2ZpeGVkXzE2XzE2X3Qg cGlwZV9kb3duc2NhbGUgPSB1MzJfdG9fZml4ZWRfMTZfMTYoMSk7Cj4gPj4gKwljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiA+PiAgIAo+ID4+ICAgCWlmICghY3J0Y19zdGF0 ZS0+YmFzZS5lbmFibGUpCj4gPj4gICAJCXJldHVybiBwaXBlX2Rvd25zY2FsZTsKPiA+PiAgIAo+ ID4+ICsJbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPj4gICAJaWYg KGNydGNfc3RhdGUtPnBjaF9wZml0LmVuYWJsZWQpIHsKPiA+PiAgIAkJdWludDMyX3Qgc3JjX3cs IHNyY19oLCBkc3RfdywgZHN0X2g7Cj4gPj4gICAJCXVpbnQzMl90IHBmaXRfc2l6ZSA9IGNydGNf c3RhdGUtPnBjaF9wZml0LnNpemU7Cj4gPj4gICAJCXVpbnRfZml4ZWRfMTZfMTZfdCBmcF93X3Jh dGlvLCBmcF9oX3JhdGlvOwo+ID4+ICAgCQl1aW50X2ZpeGVkXzE2XzE2X3QgZG93bnNjYWxlX2gs IGRvd25zY2FsZV93Owo+ID4+ICsJCXVpbnRfZml4ZWRfMTZfMTZfdCBtaW5faF9kb3duc2NhbGU7 Cj4gPj4gICAKPiA+PiAgIAkJc3JjX3cgPSBjcnRjX3N0YXRlLT5waXBlX3NyY193Owo+ID4+ICAg CQlzcmNfaCA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX2g7Cj4gPj4gQEAgLTM4OTEsMTAgKzM4OTQs MTkgQEAgc2tsX3BpcGVfZG93bnNjYWxlX2Ftb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgIAkJaWYgKCFkc3RfdyB8fCAhZHN0X2gpCj4gPj4gICAJ CQlyZXR1cm4gcGlwZV9kb3duc2NhbGU7Cj4gPj4gICAKPiA+PiArCQkvKgo+ID4+ICsJCSAqIElu dGVybGFjZSBtb2RlIHJlcXVpcmUgMSBzY2FsZXIgc28gbm8gb3RoZXIgc2NhbGVyIGNhbiBiZQo+ ID4+ICsJCSAqIGF0dGFjaGVkIHRvIHBpcGUuIFBGLUlEIG1vZGUgaXMgZXF1aXZhbGVudCB0byAy LjAgdmVydGljYWwKPiA+PiArCQkgKiBkb3duc2NhbGUuCj4gPj4gKwkJICovCj4gPj4gKwkJaWYg KG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCj4gPj4gKwkJCW1pbl9oX2Rv d25zY2FsZSA9IHUzMl90b19maXhlZF8xNl8xNigyKTsKPiA+PiArCQllbHNlCj4gPj4gKwkJCW1p bl9oX2Rvd25zY2FsZSA9IHUzMl90b19maXhlZF8xNl8xNigxKTsKPiA+PiAgIAkJZnBfd19yYXRp byA9IGZpeGVkXzE2XzE2X2RpdihzcmNfdywgZHN0X3cpOwo+ID4+ICAgCQlmcF9oX3JhdGlvID0g Zml4ZWRfMTZfMTZfZGl2KHNyY19oLCBkc3RfaCk7Cj4gPj4gICAJCWRvd25zY2FsZV93ID0gbWF4 X2ZpeGVkXzE2XzE2KGZwX3dfcmF0aW8sIHUzMl90b19maXhlZF8xNl8xNigxKSk7Cj4gPj4gLQkJ ZG93bnNjYWxlX2ggPSBtYXhfZml4ZWRfMTZfMTYoZnBfaF9yYXRpbywgdTMyX3RvX2ZpeGVkXzE2 XzE2KDEpKTsKPiA+PiArCQlkb3duc2NhbGVfaCA9IG1heF9maXhlZF8xNl8xNihmcF9oX3JhdGlv LCBtaW5faF9kb3duc2NhbGUpOwo+ID4+ICAgCj4gPj4gICAJCXBpcGVfZG93bnNjYWxlID0gbXVs X2ZpeGVkMTYoZG93bnNjYWxlX3csIGRvd25zY2FsZV9oKTsKPiA+PiAgIAl9Cj4gPj4gQEAgLTQ0 MTgsNiArNDQzMCw5IEBAIHNrbF9hZGp1c3RlZF9wbGFuZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gPj4gICAJICogd2l0aCBhZGRpdGlvbmFsIGFk anVzdG1lbnRzIGZvciBwbGFuZS1zcGVjaWZpYyBzY2FsaW5nLgo+ID4+ICAgCSAqLwo+ID4+ICAg CWFkanVzdGVkX3BpeGVsX3JhdGUgPSBjc3RhdGUtPnBpeGVsX3JhdGU7Cj4gPj4gKwlpZiAoY3N0 YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkK PiA+PiArCQlhZGp1c3RlZF9waXhlbF9yYXRlICo9IDI7Cj4gPj4gKwo+ID4+ICAgCWRvd25zY2Fs ZV9hbW91bnQgPSBza2xfcGxhbmVfZG93bnNjYWxlX2Ftb3VudChjc3RhdGUsIHBzdGF0ZSk7Cj4g Pj4gICAKPiA+PiAgIAlyZXR1cm4gbXVsX3JvdW5kX3VwX3UzMl9maXhlZDE2KGFkanVzdGVkX3Bp eGVsX3JhdGUsCj4gPj4gLS0gCj4gPj4gMi4xMS4wCj4gPj4KPiA+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+IEludGVsLWdmeCBtYWlsaW5nIGxp c3QKPiA+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBT eXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=