From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 5/5] drm/i915/cfl: Introduce Coffee Lake workardounds. Date: Wed, 7 Jun 2017 22:40:14 +0000 Message-ID: <1496876351.32316.41.camel@dk-H97M-D3H> References: <1496776802-28759-1-git-send-email-rodrigo.vivi@intel.com> <1496776802-28759-5-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id EDB5C6E2EC for ; Wed, 7 Jun 2017 22:40:15 +0000 (UTC) In-Reply-To: <1496776802-28759-5-git-send-email-rodrigo.vivi@intel.com> Content-Language: en-US Content-ID: <224F23B2815C36439CE67FC9078C3084@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Vivi, Rodrigo" Cc: "intel-gfx@lists.freedesktop.org" , "Kuoppala, Mika" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE3LTA2LTA2IGF0IDEyOjIwIC0wNzAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6DQo+ IENvZmZlZSBMYWtlIGluaGVyaXQgbW9zdCBvZiBLYWJ5bGFrZSBwcm9kdWN0aW9uDQo+IHdvcmth cmRvdW5kcy4NCj4gDQo+IE9ubHkgZGlmZmVyZW5jZSBpZGVudGlmaWVkIHNvIGZhciBpczoNCj4g LSBXYURpc2FibGVMU1FDUk9QRVJGZm9yT0NMIGlzIG1hcmtlZCBhcyBTSVdBX05FVkVSDQo+IA0K PiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ DQo+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4N Cj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICB8ICAyICst DQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyB8IDc1ICsrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgICAgICAgIHwgMTAgKystLS0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9u cygrKSwgMjYgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu Yw0KPiBpbmRleCA0ZmY4NTRlLi44ZTA1NWIxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYw0KPiBAQCAtMTg4NCw3ICsxODg0LDcgQEAgc3RhdGljIHZvaWQgZ3R0X3dyaXRl X3dvcmthcm91bmRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikNCj4gIAkgKiBj YWxsZWQgb24gZHJpdmVyIGxvYWQgYW5kIGFmdGVyIGEgR1BVIHJlc2V0LCBzbyB5b3UgY2FuIHBs YWNlDQo+ICAJICogd29ya2Fyb3VuZHMgaGVyZSBldmVuIGlmIHRoZXkgZ2V0IG92ZXJ3cml0dGVu IGJ5IEdQVSByZXNldC4NCj4gIAkgKi8NCj4gLQkvKiBXYUluY3JlYXNlRGVmYXVsdFRMQkVudHJp ZXM6Y2h2LGJkdyxza2wsYnh0LGtibCxnbGsgKi8NCj4gKwkvKiBXYUluY3JlYXNlRGVmYXVsdFRM QkVudHJpZXM6Y2h2LGJkdyxza2wsYnh0LGtibCxnbGssY2ZsICovDQo+ICAJaWYgKElTX0JST0FE V0VMTChkZXZfcHJpdikpDQo+ICAJCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9HUEdQVSwgR0VO OF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JEVyk7DQo+ICAJZWxzZSBpZiAoSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5j DQo+IGluZGV4IGJjMzhiZDEuLjYzMGZmNmUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2VuZ2luZV9jcy5jDQo+IEBAIC04MTQsMjQgKzgxNCwyNCBAQCBzdGF0aWMgaW50IGdlbjlf aW5pdF93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpDQo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Ow0KPiAgCWludCBy ZXQ7DQo+ICANCj4gLQkvKiBXYUNvbmV4dFN3aXRjaFdpdGhDb25jdXJyZW50VExCSW52YWxpZGF0 ZTpza2wsYnh0LGtibCxnbGsgKi8NCj4gKwkvKiBXYUNvbmV4dFN3aXRjaFdpdGhDb25jdXJyZW50 VExCSW52YWxpZGF0ZTpza2wsYnh0LGtibCxnbGssY2ZsICovDQo+ICAJSTkxNV9XUklURShHRU45 X0NTRkVfQ0hJQ0tFTjFfUkNTLCBfTUFTS0VEX0JJVF9FTkFCTEUoR0VOOV9QUkVFTVBUX0dQR1BV X1NZTkNfU1dJVENIX0RJU0FCTEUpKTsNCj4gIA0KPiAtCS8qIFdhRW5hYmxlTGJzU2xhUmV0cnlU aW1lckRlY3JlbWVudDpza2wsYnh0LGtibCxnbGsgKi8NCj4gKwkvKiBXYUVuYWJsZUxic1NsYVJl dHJ5VGltZXJEZWNyZW1lbnQ6c2tsLGJ4dCxrYmwsZ2xrLGNmbCAqLw0KPiAgCUk5MTVfV1JJVEUo QkRXX1NDUkFUQ0gxLCBJOTE1X1JFQUQoQkRXX1NDUkFUQ0gxKSB8DQo+ICAJCSAgIEdFTjlfTEJT X1NMQV9SRVRSWV9USU1FUl9ERUNSRU1FTlRfRU5BQkxFKTsNCj4gIA0KPiAtCS8qIFdhRGlzYWJs ZUtpbGxMb2dpYzpieHQsc2tsLGtibCAqLw0KPiArCS8qIFdhRGlzYWJsZUtpbGxMb2dpYzpieHQs c2tsLGtibCxjZmwgKi8NCj4gIAlJOTE1X1dSSVRFKEdBTV9FQ09DSEssIEk5MTVfUkVBRChHQU1f RUNPQ0hLKSB8DQo+ICAJCSAgIEVDT0NIS19ESVNfVExCKTsNCj4gIA0KPiAtCS8qIFdhQ2xlYXJG bG93Q29udHJvbEdwZ3B1Q29udGV4dFNhdmU6c2tsLGJ4dCxrYmwsZ2xrICovDQo+IC0JLyogV2FE aXNhYmxlUGFydGlhbEluc3RTaG9vdGRvd246c2tsLGJ4dCxrYmwsZ2xrICovDQo+ICsJLyogV2FD bGVhckZsb3dDb250cm9sR3BncHVDb250ZXh0U2F2ZTpza2wsYnh0LGtibCxnbGssY2ZsICovDQo+ ICsJLyogV2FEaXNhYmxlUGFydGlhbEluc3RTaG9vdGRvd246c2tsLGJ4dCxrYmwsZ2xrLGNmbCAq Lw0KPiAgCVdBX1NFVF9CSVRfTUFTS0VEKEdFTjhfUk9XX0NISUNLRU4sDQo+ICAJCQkgIEZMT1df Q09OVFJPTF9FTkFCTEUgfA0KPiAgCQkJICBQQVJUSUFMX0lOU1RSVUNUSU9OX1NIT09URE9XTl9E SVNBQkxFKTsNCj4gIA0KPiAtCS8qIFN5bmNpbmcgZGVwZW5kZW5jaWVzIGJldHdlZW4gY2FtZXJh IGFuZCBncmFwaGljczpza2wsYnh0LGtibCAqLw0KPiArCS8qIFN5bmNpbmcgZGVwZW5kZW5jaWVz IGJldHdlZW4gY2FtZXJhIGFuZCBncmFwaGljczpza2wsYnh0LGtibCxjZmwgKi8NCj4gIAlXQV9T RVRfQklUX01BU0tFRChIQUxGX1NMSUNFX0NISUNLRU4zLA0KPiAgCQkJICBHRU45X0RJU0FCTEVf T0NMX09PQl9TVVBQUkVTU19MT0dJQyk7DQo+ICANCj4gQEAgLTg1MSwxOCArODUxLDE4IEBAIHN0 YXRpYyBpbnQgZ2VuOV9pbml0X3dvcmthcm91bmRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkNCj4gIAkJICovDQo+ICAJfQ0KPiAgDQo+IC0JLyogV2FFbmFibGVZVjEyQnVnRml4SW5I YWxmU2xpY2VDaGlja2VuNzpza2wsYnh0LGtibCxnbGsgKi8NCj4gLQkvKiBXYUVuYWJsZVNhbXBs ZXJHUEdQVVByZWVtcHRpb25TdXBwb3J0OnNrbCxieHQsa2JsICovDQo+ICsJLyogV2FFbmFibGVZ VjEyQnVnRml4SW5IYWxmU2xpY2VDaGlja2VuNzpza2wsYnh0LGtibCxnbGssY2ZsICovDQo+ICsJ LyogV2FFbmFibGVTYW1wbGVyR1BHUFVQcmVlbXB0aW9uU3VwcG9ydDpza2wsYnh0LGtibCxjZmwg Ki8NCj4gIAlXQV9TRVRfQklUX01BU0tFRChHRU45X0hBTEZfU0xJQ0VfQ0hJQ0tFTjcsDQo+ICAJ CQkgIEdFTjlfRU5BQkxFX1lWMTJfQlVHRklYIHwNCj4gIAkJCSAgR0VOOV9FTkFCTEVfR1BHUFVf UFJFRU1QVElPTik7DQo+ICANCj4gLQkvKiBXYTR4NFNUQ09wdGltaXphdGlvbkRpc2FibGU6c2ts LGJ4dCxrYmwsZ2xrICovDQo+IC0JLyogV2FEaXNhYmxlUGFydGlhbFJlc29sdmVJblZjOnNrbCxi eHQsa2JsICovDQo+ICsJLyogV2E0eDRTVENPcHRpbWl6YXRpb25EaXNhYmxlOnNrbCxieHQsa2Js LGdsayxjZmwgKi8NCj4gKwkvKiBXYURpc2FibGVQYXJ0aWFsUmVzb2x2ZUluVmM6c2tsLGJ4dCxr YmwsY2ZsICovDQo+ICAJV0FfU0VUX0JJVF9NQVNLRUQoQ0FDSEVfTU9ERV8xLCAoR0VOOF80eDRf U1RDX09QVElNSVpBVElPTl9ESVNBQkxFIHwNCj4gIAkJCQkJIEdFTjlfUEFSVElBTF9SRVNPTFZF X0lOX1ZDX0RJU0FCTEUpKTsNCj4gIA0KPiAtCS8qIFdhQ2NzVGxiUHJlZmV0Y2hEaXNhYmxlOnNr bCxieHQsa2JsLGdsayAqLw0KPiArCS8qIFdhQ2NzVGxiUHJlZmV0Y2hEaXNhYmxlOnNrbCxieHQs a2JsLGdsayxjZmwgKi8NCj4gIAlXQV9DTFJfQklUX01BU0tFRChHRU45X0hBTEZfU0xJQ0VfQ0hJ Q0tFTjUsDQo+ICAJCQkgIEdFTjlfQ0NTX1RMQl9QUkVGRVRDSF9FTkFCTEUpOw0KPiAgDQo+IEBA IC04NzEsNyArODcxLDcgQEAgc3RhdGljIGludCBnZW45X2luaXRfd29ya2Fyb3VuZHMoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQ0KPiAgCQlXQV9TRVRfQklUX01BU0tFRChTTElDRV9F Q09fQ0hJQ0tFTjAsDQo+ICAJCQkJICBQSVhFTF9NQVNLX0NBTU1JTkdfRElTQUJMRSk7DQo+ICAN Cj4gLQkvKiBXYUZvcmNlQ29udGV4dFNhdmVSZXN0b3JlTm9uQ29oZXJlbnQ6c2tsLGJ4dCxrYmwg Ki8NCj4gKwkvKiBXYUZvcmNlQ29udGV4dFNhdmVSZXN0b3JlTm9uQ29oZXJlbnQ6c2tsLGJ4dCxr YmwsY2ZsICovDQo+ICAJV0FfU0VUX0JJVF9NQVNLRUQoSERDX0NISUNLRU4wLA0KPiAgCQkJICBI RENfRk9SQ0VfQ09OVEVYVF9TQVZFX1JFU1RPUkVfTk9OX0NPSEVSRU5UIHwNCj4gIAkJCSAgSERD X0ZPUkNFX0NTUl9OT05fQ09IRVJFTlRfT1ZSX0RJU0FCTEUpOw0KPiBAQCAtODg5LDM5ICs4ODks NDAgQEAgc3RhdGljIGludCBnZW45X2luaXRfd29ya2Fyb3VuZHMoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQ0KPiAgCSAqIGEgVExCIGludmFsaWRhdGlvbiBvY2N1cnMgZHVyaW5nIGEg UFNEIGZsdXNoLg0KPiAgCSAqLw0KPiAgDQo+IC0JLyogV2FGb3JjZUVuYWJsZU5vbkNvaGVyZW50 OnNrbCxieHQsa2JsICovDQo+ICsJLyogV2FGb3JjZUVuYWJsZU5vbkNvaGVyZW50OnNrbCxieHQs a2JsLGNmbCAqLw0KPiAgCVdBX1NFVF9CSVRfTUFTS0VEKEhEQ19DSElDS0VOMCwNCj4gIAkJCSAg SERDX0ZPUkNFX05PTl9DT0hFUkVOVCk7DQo+ICANCj4gLQkvKiBXYURpc2FibGVIRENJbnZhbGlk YXRpb246c2tsLGJ4dCxrYmwgKi8NCj4gKwkvKiBXYURpc2FibGVIRENJbnZhbGlkYXRpb246c2ts LGJ4dCxrYmwsY2ZsICovDQo+ICAJSTkxNV9XUklURShHQU1fRUNPQ0hLLCBJOTE1X1JFQUQoR0FN X0VDT0NISykgfA0KPiAgCQkgICBCRFdfRElTQUJMRV9IRENfSU5WQUxJREFUSU9OKTsNCj4gIA0K PiAtCS8qIFdhRGlzYWJsZVNhbXBsZXJQb3dlckJ5cGFzc0ZvclNPUGluZ1Bvbmc6c2tsLGJ4dCxr YmwgKi8NCj4gKwkvKiBXYURpc2FibGVTYW1wbGVyUG93ZXJCeXBhc3NGb3JTT1BpbmdQb25nOnNr bCxieHQsa2JsLGNmbCAqLw0KPiAgCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fA0KPiAgCSAg ICBJU19LQUJZTEFLRShkZXZfcHJpdikgfHwNCj4gKwkgICAgSVNfQ09GRkVFTEFLRShkZXZfcHJp dil8fA0KDQpHRU45X0JDPw0KDQoNCj4gIAkgICAgSVNfQlhUX1JFVklEKGRldl9wcml2LCAwLCBC WFRfUkVWSURfQjApKQ0KPiAgCQlXQV9TRVRfQklUX01BU0tFRChIQUxGX1NMSUNFX0NISUNLRU4z LA0KPiAgCQkJCSAgR0VOOF9TQU1QTEVSX1BPV0VSX0JZUEFTU19ESVMpOw0KPiAgDQo+IC0JLyog V2FEaXNhYmxlU1RVbml0UG93ZXJPcHRpbWl6YXRpb246c2tsLGJ4dCxrYmwsZ2xrICovDQo+ICsJ LyogV2FEaXNhYmxlU1RVbml0UG93ZXJPcHRpbWl6YXRpb246c2tsLGJ4dCxrYmwsZ2xrLGNmbCAq Lw0KPiAgCVdBX1NFVF9CSVRfTUFTS0VEKEhBTEZfU0xJQ0VfQ0hJQ0tFTjIsIEdFTjhfU1RfUE9f RElTQUJMRSk7DQo+ICANCj4gLQkvKiBXYU9DTENvaGVyZW50TGluZUZsdXNoOnNrbCxieHQsa2Js ICovDQo+ICsJLyogV2FPQ0xDb2hlcmVudExpbmVGbHVzaDpza2wsYnh0LGtibCxjZmwgKi8NCj4g IAlJOTE1X1dSSVRFKEdFTjhfTDNTUUNSRUc0LCAoSTkxNV9SRUFEKEdFTjhfTDNTUUNSRUc0KSB8 DQo+ICAJCQkJICAgIEdFTjhfTFFTQ19GTFVTSF9DT0hFUkVOVF9MSU5FUykpOw0KPiAgDQo+IC0J LyogV2FWRkVTdGF0ZUFmdGVyUGlwZUNvbnRyb2x3aXRoTWVkaWFTdGF0ZUNsZWFyOnNrbCxieHQs Z2xrICovDQo+ICsJLyogV2FWRkVTdGF0ZUFmdGVyUGlwZUNvbnRyb2x3aXRoTWVkaWFTdGF0ZUNs ZWFyOnNrbCxieHQsZ2xrLGNmbCAqLw0KPiAgCXJldCA9IHdhX3Jpbmdfd2hpdGVsaXN0X3JlZyhl bmdpbmUsIEdFTjlfQ1RYX1BSRUVNUFRfUkVHKTsNCj4gIAlpZiAocmV0KQ0KPiAgCQlyZXR1cm4g cmV0Ow0KPiAgDQo+IC0JLyogV2FFbmFibGVQcmVlbXB0aW9uR3JhbnVsYXJpdHlDb250cm9sQnlV TUQ6c2tsLGJ4dCxrYmwgKi8NCj4gKwkvKiBXYUVuYWJsZVByZWVtcHRpb25HcmFudWxhcml0eUNv bnRyb2xCeVVNRDpza2wsYnh0LGtibCxjZmwgKi8NCj4gIAlyZXQ9IHdhX3Jpbmdfd2hpdGVsaXN0 X3JlZyhlbmdpbmUsIEdFTjhfQ1NfQ0hJQ0tFTjEpOw0KPiAgCWlmIChyZXQpDQo+ICAJCXJldHVy biByZXQ7DQo+ICANCj4gLQkvKiBXYUFsbG93VU1EVG9Nb2RpZnlIRENDaGlja2VuMTpza2wsYnh0 LGtibCxnbGsgKi8NCj4gKwkvKiBXYUFsbG93VU1EVG9Nb2RpZnlIRENDaGlja2VuMTpza2wsYnh0 LGtibCxnbGssY2ZsICovDQo+ICAJcmV0ID0gd2FfcmluZ193aGl0ZWxpc3RfcmVnKGVuZ2luZSwg R0VOOF9IRENfQ0hJQ0tFTjEpOw0KPiAgCWlmIChyZXQpDQo+ICAJCXJldHVybiByZXQ7DQo+IEBA IC0xMTQwLDYgKzExNDEsMzggQEAgc3RhdGljIGludCBnbGtfaW5pdF93b3JrYXJvdW5kcyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4g K3N0YXRpYyBpbnQgY2ZsX2luaXRfd29ya2Fyb3VuZHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQ0KPiArew0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVu Z2luZS0+aTkxNTsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJcmV0ID0gZ2VuOV9pbml0X3dvcmth cm91bmRzKGVuZ2luZSk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiAr CS8qIFdhRW5hYmxlR2Fwc1RzdkNyZWRpdEZpeDpjZmwgKi8NCj4gKwlJOTE1X1dSSVRFKEdFTjhf R0FSQkNOVEwsIChJOTE1X1JFQUQoR0VOOF9HQVJCQ05UTCkgfA0KPiArCQkJCSAgIEdFTjlfR0FQ U19UU1ZfQ1JFRElUX0RJU0FCTEUpKTsNCj4gKw0KPiArCS8qIFdhVG9FbmFibGVId0ZpeEZvclB1 c2hDb25zdEhXQnVnOmNmbCAqLw0KPiArCVdBX1NFVF9CSVRfTUFTS0VEKENPTU1PTl9TTElDRV9D SElDS0VOMiwNCj4gKwkJCSAgR0VOOF9TQkVfRElTQUJMRV9SRVBMQVlfQlVGX09QVElNSVpBVElP Tik7DQo+ICsNCj4gKwkvKiBXYURpc2FibGVHYWZzVW5pdENsa0dhdGluZzpjZmwgKi8NCj4gKwlX QV9TRVRfQklUKEdFTjdfVUNHQ1RMNCwgR0VOOF9FVV9HQVVOSVRfQ0xPQ0tfR0FURV9ESVNBQkxF KTsNCj4gKw0KPiArCS8qIFdhRGlzYWJsZVNiZUNhY2hlRGlzcGF0Y2hQb3J0U2hhcmluZzpjZmwg Ki8NCj4gKwlXQV9TRVRfQklUX01BU0tFRCgNCj4gKwkJR0VON19IQUxGX1NMSUNFX0NISUNLRU4x LA0KPiArCQlHRU43X1NCRV9TU19DQUNIRV9ESVNQQVRDSF9QT1JUX1NIQVJJTkdfRElTQUJMRSk7 DQo+ICsNCj4gKwkvKiBXYUluUGxhY2VEZWNvbXByZXNzaW9uSGFuZzpjZmwgKi8NCj4gKwlXQV9T RVRfQklUKEdFTjlfR0FNVF9FQ09fUkVHX1JXX0lBLA0KPiArCQkgICBHQU1UX0VDT19FTkFCTEVf SU5fUExBQ0VfREVDT01QUkVTUyk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KPiAg aW50IGluaXRfd29ya2Fyb3VuZHNfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp DQo+ICB7DQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5p OTE1Ow0KPiBAQCAtMTE2Miw2ICsxMTk1LDggQEAgaW50IGluaXRfd29ya2Fyb3VuZHNfcmluZyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpDQo+ICAJCWVyciA9IGtibF9pbml0X3dvcmth cm91bmRzKGVuZ2luZSk7DQo+ICAJZWxzZSBpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpDQo+ ICAJCWVyciA9ICBnbGtfaW5pdF93b3JrYXJvdW5kcyhlbmdpbmUpOw0KPiArCWVsc2UgaWYgKElT X0NPRkZFRUxBS0UoZGV2X3ByaXYpKQ0KPiArCQllcnIgPSBjZmxfaW5pdF93b3JrYXJvdW5kcyhl bmdpbmUpOw0KPiAgCWVsc2UNCj4gIAkJZXJyID0gMDsNCj4gIAlpZiAoZXJyKQ0KDQpOb3Rpbmcg YSBjb3VwbGUgb2YgdGhpbmdzIHRoYXQgd2lsbCBjaGFuZ2UgaW4gdGhlIG5leHQgdmVyc2lvbi4N CjEpIENvbW1pdCBtZXNzYWdlIGFuZCB0aXRsZSBjaGFuZ2UgdG8gY2xhcmlmeSB0aGVzZSBhcmUg R1Qgd29ya2Fyb3VuZHMuDQoyKSBUaGUgaHVuayBiZWxvdyBtb3ZlcyB0byBwYXRjaCA0LzUuIA0K DQoNCkkgYW0gdW5hYmxlIHJldmlldyB0aGUgd29ya2Fyb3VuZHMgdGhlbXNlbHZlcywgd2lsbCBs ZWF2ZSBpdCBmb3Igc29tZW9uZQ0Kd2hvIGlzIGNvbXBldGVudCBpbiB0aGlzIGFyZWEgdG8gZG8g aXQuDQoNCg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMNCj4gaW5kZXggOThhZWJhOS4uMGFlZDEz ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYw0KPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jDQo+IEBAIC01OCwyNCArNTgsMjQgQEAN Cj4gIA0KPiAgc3RhdGljIHZvaWQgZ2VuOV9pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICB7DQo+IC0JLyogU2VlIEJzcGVjIG5vdGUgZm9yIFBT UjJfQ1RMIGJpdCAzMSwgV2EjODI4OnNrbCxieHQsa2JsICovDQo+ICsJLyogU2VlIEJzcGVjIG5v dGUgZm9yIFBTUjJfQ1RMIGJpdCAzMSwgV2EjODI4OnNrbCxieHQsa2JsLGNmbCAqLw0KPiAgCUk5 MTVfV1JJVEUoQ0hJQ0tFTl9QQVIxXzEsDQo+ICAJCSAgIEk5MTVfUkVBRChDSElDS0VOX1BBUjFf MSkgfCBTS0xfRURQX1BTUl9GSVhfUkRXUkFQKTsNCj4gIA0KPiAgCUk5MTVfV1JJVEUoR0VOOF9D T05GSUcwLA0KPiAgCQkgICBJOTE1X1JFQUQoR0VOOF9DT05GSUcwKSB8IEdFTjlfREVGQVVMVF9G SVhFUyk7DQo+ICANCj4gLQkvKiBXYUVuYWJsZUNoaWNrZW5EQ1BSOnNrbCxieHQsa2JsLGdsayAq Lw0KPiArCS8qIFdhRW5hYmxlQ2hpY2tlbkRDUFI6c2tsLGJ4dCxrYmwsZ2xrLGNmbCAqLw0KPiAg CUk5MTVfV1JJVEUoR0VOOF9DSElDS0VOX0RDUFJfMSwNCj4gIAkJICAgSTkxNV9SRUFEKEdFTjhf Q0hJQ0tFTl9EQ1BSXzEpIHwgTUFTS19XQUtFTUVNKTsNCj4gIA0KPiAtCS8qIFdhRmJjVHVybk9m ZkZiY1dhdGVybWFyazpza2wsYnh0LGtibCAqLw0KPiAtCS8qIFdhRmJjV2FrZU1lbU9uOnNrbCxi eHQsa2JsLGdsayAqLw0KPiArCS8qIFdhRmJjVHVybk9mZkZiY1dhdGVybWFyazpza2wsYnh0LGti bCxjZmwgKi8NCj4gKwkvKiBXYUZiY1dha2VNZW1Pbjpza2wsYnh0LGtibCxnbGssY2ZsICovDQo+ ICAJSTkxNV9XUklURShESVNQX0FSQl9DVEwsIEk5MTVfUkVBRChESVNQX0FSQl9DVEwpIHwNCj4g IAkJICAgRElTUF9GQkNfV01fRElTIHwNCj4gIAkJICAgRElTUF9GQkNfTUVNT1JZX1dBS0UpOw0K PiAgDQo+IC0JLyogV2FGYmNIaWdoTWVtQndDb3JydXB0aW9uQXZvaWRhbmNlOnNrbCxieHQsa2Js ICovDQo+ICsJLyogV2FGYmNIaWdoTWVtQndDb3JydXB0aW9uQXZvaWRhbmNlOnNrbCxieHQsa2Js LGNmbCAqLw0KPiAgCUk5MTVfV1JJVEUoSUxLX0RQRkNfQ0hJQ0tFTiwgSTkxNV9SRUFEKElMS19E UEZDX0NISUNLRU4pIHwNCj4gIAkJICAgSUxLX0RQRkNfRElTQUJMRV9EVU1NWTApOw0KPiAgfQ0K DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK