From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 06/11] drm/i915: Introduce spt_irq_handler() Date: Thu, 27 Aug 2015 19:13:49 +0300 Message-ID: <20150827161349.GK5176@intel.com> References: <1439394260-15137-1-git-send-email-ville.syrjala@linux.intel.com> <1439394260-15137-7-git-send-email-ville.syrjala@linux.intel.com> <877fohxjta.fsf@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 A1EFA6E167 for ; Thu, 27 Aug 2015 09:14:22 -0700 (PDT) Content-Disposition: inline In-Reply-To: <877fohxjta.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMjcsIDIwMTUgYXQgMTA6Mzg6MjVBTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAyNyBBdWcgMjAxNSwgUGF1bG8gWmFub25pIDxwcnphbm9uaUBnbWFpbC5j b20+IHdyb3RlOgo+ID4gMjAxNS0wOC0xMiAxMjo0NCBHTVQtMDM6MDAgIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT46Cj4gPj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Pgo+ID4+IFN0YXJ0aW5nIGZyb20gU1BUIHRoZSBvbmx5 IGludGVycnVwdHMgbGl2aW5nIGluIHRoZSBzb3V0aCBhcmUgR01CVVMgYW5kCj4gPj4gSFBELiBX aGF0J3Mgd29yc2Ugc29tZSBvZiB0aGUgU1BUIHNwZWNpZmljIG5ldyBiaXRzIGNvbmZsaWN0IHdp dGggc29tZQo+ID4+IG90aGVyIGJpdHMgb24gZWFybGllciBQQ0ggZ2VuZXJhdGlvbnMuIFNvIGJl dHRlciBub3QgdXNlIHRoZQo+ID4+IGNwdF9pcnFfaGFuZGxlcigpIGZvciBTUFQrIGFueW1vcmUu Cj4gPj4KPiA+PiBBbHNvIGtpbGwgdGhlIGhhbmQgcm9sbGVkIHBvcnQgRSBoYW5kbGluZyB3aXRo IHNvbWV0aGluZyBtb3JlCj4gPj4gc3RhbmRhcmRpc2guIFRoaXMgYWxzbyBhdm9pZHMgYWNjaWRl bnRhbGx5IGNvbmZ1c2luZyBwb3J0IEIgYW5kIHBvcnQgRQo+ID4+IGxvbmcgcHVsc2VzIHNpbmNl IHRoZSBiaXRzIG9jY3VweSB0aGUgc2FtZSBwb3NpdGlvbnMsIGp1c3QgaW4gZGlmZmVyZW50Cj4g Pj4gcmVnaXN0ZXJzLgo+ID4+Cj4gPj4gQWxzbyBhZGQgYSBjb21tZW50IG5vdGluZyB0aGF0IHRo ZSBzaG9ydCBwdWxzZSBkdXJhdGlvbiBiaXRzIGFyZQo+ID4+IHJlc2VydmVkIG9uIExQVCsuIFRo ZSAybXMgdmFsdWUgd2UgcHJvZ3JhbSBpcyAwLCBzbyBubyBpc3N1ZSB3cnQuIHRoZQo+ID4+IE1C WiBpbiB0aGUgc3BlYy4KPiA+Pgo+ID4+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4gLS0tCj4gPj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQo+ID4+ICAxIGZpbGUgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNDAgZGVs ZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+PiBpbmRleCBkMTIx MDZjLi5lMjQ4NWJkIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gPj4gQEAg LTEyNjAsNiArMTI2MCwxNiBAQCBzdGF0aWMgYm9vbCBieHRfcG9ydF9ob3RwbHVnX2xvbmdfZGV0 ZWN0KGVudW0gcG9ydCBwb3J0LCB1MzIgdmFsKQo+ID4+ICAgICAgICAgfQo+ID4+ICB9Cj4gPj4K PiA+PiArc3RhdGljIGJvb2wgc3B0X3BvcnRfaG90cGx1ZzJfbG9uZ19kZXRlY3QoZW51bSBwb3J0 IHBvcnQsIHUzMiB2YWwpCj4gPj4gK3sKPiA+PiArICAgICAgIHN3aXRjaCAocG9ydCkgewo+ID4+ ICsgICAgICAgY2FzZSBQT1JUX0U6Cj4gPj4gKyAgICAgICAgICAgICAgIHJldHVybiB2YWwgJiBQ T1JURV9IT1RQTFVHX0xPTkdfREVURUNUOwo+ID4+ICsgICAgICAgZGVmYXVsdDoKPiA+PiArICAg ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4+ICsgICAgICAgfQo+ID4+ICt9Cj4gPj4gKwo+ ID4+ICBzdGF0aWMgYm9vbCBwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KGVudW0gcG9ydCBw b3J0LCB1MzIgdmFsKQo+ID4+ICB7Cj4gPj4gICAgICAgICBzd2l0Y2ggKHBvcnQpIHsKPiA+PiBA QCAtMTI2OSw4ICsxMjc5LDYgQEAgc3RhdGljIGJvb2wgcGNoX3BvcnRfaG90cGx1Z19sb25nX2Rl dGVjdChlbnVtIHBvcnQgcG9ydCwgdTMyIHZhbCkKPiA+PiAgICAgICAgICAgICAgICAgcmV0dXJu IHZhbCAmIFBPUlRDX0hPVFBMVUdfTE9OR19ERVRFQ1Q7Cj4gPj4gICAgICAgICBjYXNlIFBPUlRf RDoKPiA+PiAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbCAmIFBPUlREX0hPVFBMVUdfTE9OR19E RVRFQ1Q7Cj4gPj4gLSAgICAgICBjYXNlIFBPUlRfRToKPiA+PiAtICAgICAgICAgICAgICAgcmV0 dXJuIHZhbCAmIFBPUlRFX0hPVFBMVUdfTE9OR19ERVRFQ1Q7Cj4gPj4gICAgICAgICBkZWZhdWx0 Ogo+ID4+ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gPj4gICAgICAgICB9Cj4gPj4g QEAgLTE3NzEsMTIgKzE3NzksNyBAQCBzdGF0aWMgdm9pZCBjcHRfaXJxX2hhbmRsZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdTMyIHBjaF9paXIpCj4gPj4gIHsKPiA+PiAgICAgICAgIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPj4gICAg ICAgICBpbnQgcGlwZTsKPiA+PiAtICAgICAgIHUzMiBob3RwbHVnX3RyaWdnZXI7Cj4gPj4gLQo+ ID4+IC0gICAgICAgaWYgKEhBU19QQ0hfU1BUKGRldikpCj4gPj4gLSAgICAgICAgICAgICAgIGhv dHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9UUExVR19NQVNLX1NQVDsKPiA+PiAtICAg ICAgIGVsc2UKPiA+PiAtICAgICAgICAgICAgICAgaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAm IFNERV9IT1RQTFVHX01BU0tfQ1BUOwo+ID4+ICsgICAgICAgdTMyIGhvdHBsdWdfdHJpZ2dlciA9 IHBjaF9paXIgJiBTREVfSE9UUExVR19NQVNLX0NQVDsKPiA+Pgo+ID4+ICAgICAgICAgaWYgKGhv dHBsdWdfdHJpZ2dlcikgewo+ID4+ICAgICAgICAgICAgICAgICB1MzIgZGlnX2hvdHBsdWdfcmVn LCBwaW5fbWFzaywgbG9uZ19tYXNrOwo+ID4+IEBAIC0xNzg0LDIyICsxNzg3LDEwIEBAIHN0YXRp YyB2b2lkIGNwdF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgcGNoX2lp cikKPiA+PiAgICAgICAgICAgICAgICAgZGlnX2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKFBDSF9Q T1JUX0hPVFBMVUcpOwo+ID4+ICAgICAgICAgICAgICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hP VFBMVUcsIGRpZ19ob3RwbHVnX3JlZyk7Cj4gPj4KPiA+PiAtICAgICAgICAgICAgICAgaWYgKEhB U19QQ0hfU1BUKGRldikpIHsKPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9nZXRf aHBkX3BpbnMoJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+ID4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBob3RwbHVnX3RyaWdnZXIsCj4gPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX3NwdCwK PiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoX3BvcnRf aG90cGx1Z19sb25nX2RldGVjdCk7Cj4gPj4gLQo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAg IC8qIGRldGVjdCBQT1JURSBIUCBldmVudCAqLwo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAg IGRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHMik7Cj4gPj4gLSAg ICAgICAgICAgICAgICAgICAgICAgaWYgKHBjaF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QoUE9S VF9FLAo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZykpCj4gPj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsb25nX21hc2sgfD0gMSA8PCBIUERfUE9SVF9FOwo+ID4+IC0gICAgICAgICAgICAg ICB9IGVsc2UKPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9nZXRfaHBkX3BpbnMo JnBpbl9tYXNrLCAmbG9uZ19tYXNrLAo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBob3RwbHVnX3RyaWdnZXIsCj4gPj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX2NwdCwKPiA+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoX3BvcnRfaG90cGx1Z19s b25nX2RldGVjdCk7Cj4gPj4gKyAgICAgICAgICAgICAgIGludGVsX2dldF9ocGRfcGlucygmcGlu X21hc2ssICZsb25nX21hc2ssCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBob3RwbHVnX3RyaWdnZXIsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkaWdfaG90cGx1Z19yZWcsIGhwZF9jcHQsCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwY2hfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKPiA+Pgo+ID4+ICAgICAg ICAgICAgICAgICBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2LCBwaW5fbWFzaywgbG9uZ19tYXNr KTsKPiA+PiAgICAgICAgIH0KPiA+PiBAQCAtMTgzMyw2ICsxODI0LDQyIEBAIHN0YXRpYyB2b2lk IGNwdF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgcGNoX2lpcikKPiA+ PiAgICAgICAgICAgICAgICAgY3B0X3NlcnJfaW50X2hhbmRsZXIoZGV2KTsKPiA+PiAgfQo+ID4+ Cj4gPj4gK3N0YXRpYyB2b2lkIHNwdF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1MzIgcGNoX2lpcikKPiA+PiArewo+ID4+ICsgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+PiArICAgICAgIHUzMiBob3RwbHVn X3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0hPVFBMVUdfTUFTS19TUFQgJgo+ID4+ICsgICAgICAg ICAgICAgICB+U0RFX1BPUlRFX0hPVFBMVUdfU1BUOwo+ID4+ICsgICAgICAgdTMyIGhvdHBsdWcy X3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX1BPUlRFX0hPVFBMVUdfU1BUOwo+ID4+ICsKPiA+PiAr ICAgICAgIGlmIChob3RwbHVnX3RyaWdnZXIpIHsKPiA+PiArICAgICAgICAgICAgICAgdTMyIGRp Z19ob3RwbHVnX3JlZywgcGluX21hc2ssIGxvbmdfbWFzazsKPiA+PiArCj4gPj4gKyAgICAgICAg ICAgICAgIGRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHKTsKPiA+ PiArICAgICAgICAgICAgICAgSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHLCBkaWdfaG90cGx1 Z19yZWcpOwo+ID4+ICsKPiA+PiArICAgICAgICAgICAgICAgaW50ZWxfZ2V0X2hwZF9waW5zKCZw aW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAo+ID4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGlnX2hvdHBsdWdfcmVnLCBocGRfc3B0LAo+ID4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNoX3BvcnRfaG90cGx1Z19sb25nX2RldGVj dCk7Cj4gPj4gKyAgICAgICAgICAgICAgIGludGVsX2hwZF9pcnFfaGFuZGxlcihkZXYsIHBpbl9t YXNrLCBsb25nX21hc2spOwo+ID4+ICsgICAgICAgfQo+ID4+ICsKPiA+PiArICAgICAgIGlmICho b3RwbHVnMl90cmlnZ2VyKSB7Cj4gPj4gKyAgICAgICAgICAgICAgIHUzMiBkaWdfaG90cGx1Z19y ZWcsIHBpbl9tYXNrLCBsb25nX21hc2s7Cj4gPj4gKwo+ID4+ICsgICAgICAgICAgICAgICBkaWdf aG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRzIpOwo+ID4+ICsgICAgICAg ICAgICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBMVUcyLCBkaWdfaG90cGx1Z19yZWcpOwo+ ID4+ICsKPiA+PiArICAgICAgICAgICAgICAgaW50ZWxfZ2V0X2hwZF9waW5zKCZwaW5fbWFzaywg JmxvbmdfbWFzaywgaG90cGx1ZzJfdHJpZ2dlciwKPiA+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRpZ19ob3RwbHVnX3JlZywgaHBkX3NwdCwKPiA+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNwdF9wb3J0X2hvdHBsdWcyX2xvbmdfZGV0ZWN0KTsKPiA+ PiArCj4gPj4gKyAgICAgICAgICAgICAgIGludGVsX2hwZF9pcnFfaGFuZGxlcihkZXYsIHBpbl9t YXNrLCBsb25nX21hc2spOwo+ID4+ICsgICAgICAgfQo+ID4KPiA+IEluc3RlYWQgb2YgY2FsbGlu ZyBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoKSB0d2ljZSwgY2FuJ3QgeW91IGp1c3QgZG8KPiA+IHNv bWV0aGluZyBsaWtlOgo+ID4gaW50ZWxfaHBkX2lycV9oYW5sZGVyKGRldiwgcGluX21hc2sxIHwg cGluX21hc2syLCBsb25nX21hc2sxIHwgbG9uZ19tYXNrMikgPwo+IAo+IAo+IEFuZCBpZiB5b3Ug cmV2ZXJ0ZWQKPiAKPiBjb21taXQgZmQ2M2UyYTk3MmM2NzA4ODdlNWU4YTA4NDQwMTExZDM4MTJj MDk5Ngo+IEF1dGhvcjogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IERhdGU6ICAg VHVlIEp1bCAyMSAxNTozMjo0NCAyMDE1IC0wNzAwCj4gCj4gICAgIGRybS9pOTE1OiBjb21iaW5l IGk5eHhfZ2V0X2hwZF9waW5zIGFuZCBwY2hfZ2V0X2hwZF9waW5zCj4gCj4gYW5kIGFkZGVkIGFu b3RoZXIgdmVyc2lvbiBmb3Igc3B0LCB0aGlzIHdvdWxkIGFsbCBiZSBwcmV0dHkgYW5kIGVhY2gg b2YKPiB0aGUgZnVuY3Rpb25zIHdvdWxkIGRvIGV4YWN0bHkgd2hhdCBpcyByZXF1aXJlZCBhbmQg eW91IGNvdWxkIGhhdmUKPiBtZWFuaW5nZnVsLCBwbGF0Zm9ybSBzcGVjaWZpYyBkZWJ1ZyBsb2dn aW5nIGluIGVhY2ggb2YgdGhlIGZ1bmN0aW9ucy4KPiAKPiBCeSBmb2N1c2luZyBvbiBkZWR1cGxp Y2F0aW5nIGEgZmV3IGxpbmVzIGluIGdldF9ocGRfcGlucywgdGhlIGNhbGxlcnMKPiAod2hpY2gg YXJlIHBsYXRmb3JtIHNwZWNpZmljIGNvZGUgdG8gYmVnaW4gd2l0aCkgZ2V0IG1vcmUgY29tcGxp Y2F0ZWQuCgpPSywgbGV0IG1lIGhhdmUgYSBsb29rIGF0IHRoaXMgbWVzcyBpbiBhIGJpdCBtb3Jl IGRldGFpbCBhbmQgc2VlIHdoYXQgY2FuCmJlIGRvbmUuIFBhdWxvJ3MgaWRlYSBhdCBsZWFzdCBp cyBzaW1wbGUgZW5vdWdoIHRvIGRvLCBzbyBJJ2xsIGRvIGF0CmxlYXN0IHRoYXQuCgo+IAo+IEJS LAo+IEphbmkuCj4gCj4gCj4gCj4gPgo+ID4gRXZlcnl0aGluZyBlbHNlIGxvb2tzIGdvb2QgKGV4 Y2VwdCBmb3IgdGhlIGZhY3QgdGhhdCBJIHdvdWxkIGhhdmUKPiA+IHNwbGl0IHRoaXMgcGF0Y2gg aW4gbGlrZSA1IGRpZmZlcmVudCBwYXRjaGVzKS4KPiA+Cj4gPj4gKwo+ID4+ICsgICAgICAgaWYg KHBjaF9paXIgJiBTREVfR01CVVNfQ1BUKQo+ID4+ICsgICAgICAgICAgICAgICBnbWJ1c19pcnFf aGFuZGxlcihkZXYpOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICBzdGF0aWMgdm9pZCBpbGtfZGlzcGxh eV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZGVfaWlyKQo+ID4+ICB7 Cj4gPj4gICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwo+ID4+IEBAIC0yMTUxLDcgKzIxNzgsMTEgQEAgc3RhdGljIGlycXJldHVybl90 IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQo+ID4+ICAgICAgICAgICAgICAg ICBpZiAocGNoX2lpcikgewo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIEk5MTVfV1JJVEUo U0RFSUlSLCBwY2hfaWlyKTsKPiA+PiAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBJUlFf SEFORExFRDsKPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICBjcHRfaXJxX2hhbmRsZXIoZGV2 LCBwY2hfaWlyKTsKPiA+PiArCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKEhBU19Q Q0hfU1BUKGRldl9wcml2KSkKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNw dF9pcnFfaGFuZGxlcihkZXYsIHBjaF9paXIpOwo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg IGVsc2UKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdF9pcnFfaGFuZGxl cihkZXYsIHBjaF9paXIpOwo+ID4+ICAgICAgICAgICAgICAgICB9IGVsc2UKPiA+PiAgICAgICAg ICAgICAgICAgICAgICAgICBEUk1fRVJST1IoIlRoZSBtYXN0ZXIgY29udHJvbCBpbnRlcnJ1cHQg bGllZCAoU0RFKSFcbiIpOwo+ID4+Cj4gPj4gQEAgLTMwMzMsOSArMzA2NCw2IEBAIHN0YXRpYyB2 b2lkIGlieF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPj4gICAgICAg ICBpZiAoSEFTX1BDSF9JQlgoZGV2KSkgewo+ID4+ICAgICAgICAgICAgICAgICBob3RwbHVnX2ly cXMgPSBTREVfSE9UUExVR19NQVNLOwo+ID4+ICAgICAgICAgICAgICAgICBlbmFibGVkX2lycXMg PSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldiwgaHBkX2lieCk7Cj4gPj4gLSAgICAgICB9IGVs c2UgaWYgKEhBU19QQ0hfU1BUKGRldikpIHsKPiA+PiAtICAgICAgICAgICAgICAgaG90cGx1Z19p cnFzID0gU0RFX0hPVFBMVUdfTUFTS19TUFQ7Cj4gPj4gLSAgICAgICAgICAgICAgIGVuYWJsZWRf aXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2LCBocGRfc3B0KTsKPiA+PiAgICAgICAg IH0gZWxzZSB7Cj4gPj4gICAgICAgICAgICAgICAgIGhvdHBsdWdfaXJxcyA9IFNERV9IT1RQTFVH X01BU0tfQ1BUOwo+ID4+ICAgICAgICAgICAgICAgICBlbmFibGVkX2lycXMgPSBpbnRlbF9ocGRf ZW5hYmxlZF9pcnFzKGRldiwgaHBkX2NwdCk7Cj4gPj4gQEAgLTMwNDUsOSArMzA3Myw4IEBAIHN0 YXRpYyB2b2lkIGlieF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPj4K PiA+PiAgICAgICAgIC8qCj4gPj4gICAgICAgICAgKiBFbmFibGUgZGlnaXRhbCBob3RwbHVnIG9u IHRoZSBQQ0gsIGFuZCBjb25maWd1cmUgdGhlIERQIHNob3J0IHB1bHNlCj4gPj4gLSAgICAgICAg KiBkdXJhdGlvbiB0byAybXMgKHdoaWNoIGlzIHRoZSBtaW5pbXVtIGluIHRoZSBEaXNwbGF5IFBv cnQgc3BlYykKPiA+PiAtICAgICAgICAqCj4gPj4gLSAgICAgICAgKiBUaGlzIHJlZ2lzdGVyIGlz IHRoZSBzYW1lIG9uIGFsbCBrbm93biBQQ0ggY2hpcHMuCj4gPj4gKyAgICAgICAgKiBkdXJhdGlv biB0byAybXMgKHdoaWNoIGlzIHRoZSBtaW5pbXVtIGluIHRoZSBEaXNwbGF5IFBvcnQgc3BlYyku Cj4gPj4gKyAgICAgICAgKiBUaGUgcHVsc2UgZHVyYXRpb24gYml0cyBhcmUgcmVzZXJ2ZWQgb24g TFBUKy4KPiA+PiAgICAgICAgICAqLwo+ID4+ICAgICAgICAgaG90cGx1ZyA9IEk5MTVfUkVBRChQ Q0hfUE9SVF9IT1RQTFVHKTsKPiA+PiAgICAgICAgIGhvdHBsdWcgJj0gfihQT1JURF9QVUxTRV9E VVJBVElPTl9NQVNLfFBPUlRDX1BVTFNFX0RVUkFUSU9OX01BU0t8UE9SVEJfUFVMU0VfRFVSQVRJ T05fTUFTSyk7Cj4gPj4gQEAgLTMwNTUsMTMgKzMwODIsMjcgQEAgc3RhdGljIHZvaWQgaWJ4X2hw ZF9pcnFfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+PiAgICAgICAgIGhvdHBsdWcg fD0gUE9SVENfSE9UUExVR19FTkFCTEUgfCBQT1JUQ19QVUxTRV9EVVJBVElPTl8ybXM7Cj4gPj4g ICAgICAgICBob3RwbHVnIHw9IFBPUlRCX0hPVFBMVUdfRU5BQkxFIHwgUE9SVEJfUFVMU0VfRFVS QVRJT05fMm1zOwo+ID4+ICAgICAgICAgSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHLCBob3Rw bHVnKTsKPiA+PiArfQo+ID4+ICsKPiA+PiArc3RhdGljIHZvaWQgc3B0X2hwZF9pcnFfc2V0dXAo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+PiArewo+ID4+ICsgICAgICAgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+PiArICAgICAgIHUz MiBob3RwbHVnX2lycXMsIGhvdHBsdWcsIGVuYWJsZWRfaXJxczsKPiA+PiArCj4gPj4gKyAgICAg ICBob3RwbHVnX2lycXMgPSBTREVfSE9UUExVR19NQVNLX1NQVDsKPiA+PiArICAgICAgIGVuYWJs ZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2LCBocGRfc3B0KTsKPiA+PiArCj4g Pj4gKyAgICAgICBpYnhfZGlzcGxheV9pbnRlcnJ1cHRfdXBkYXRlKGRldl9wcml2LCBob3RwbHVn X2lycXMsIGVuYWJsZWRfaXJxcyk7Cj4gPj4gKwo+ID4+ICsgICAgICAgLyogRW5hYmxlIGRpZ2l0 YWwgaG90cGx1ZyBvbiB0aGUgUENIICovCj4gPj4gKyAgICAgICBob3RwbHVnID0gSTkxNV9SRUFE KFBDSF9QT1JUX0hPVFBMVUcpOwo+ID4+ICsgICAgICAgaG90cGx1ZyB8PSBQT1JURF9IT1RQTFVH X0VOQUJMRSB8IFBPUlRDX0hPVFBMVUdfRU5BQkxFIHwKPiA+PiArICAgICAgICAgICAgICAgUE9S VEJfSE9UUExVR19FTkFCTEU7Cj4gPj4gKyAgICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBM VUcsIGhvdHBsdWcpOwo+ID4+Cj4gPj4gLSAgICAgICAvKiBlbmFibGUgU1BUIFBPUlRFIGhvdCBw bHVnICovCj4gPj4gLSAgICAgICBpZiAoSEFTX1BDSF9TUFQoZGV2KSkgewo+ID4+IC0gICAgICAg ICAgICAgICBob3RwbHVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcyKTsKPiA+PiAtICAg ICAgICAgICAgICAgaG90cGx1ZyB8PSBQT1JURV9IT1RQTFVHX0VOQUJMRTsKPiA+PiAtICAgICAg ICAgICAgICAgSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHMiwgaG90cGx1Zyk7Cj4gPj4gLSAg ICAgICB9Cj4gPj4gKyAgICAgICBob3RwbHVnID0gSTkxNV9SRUFEKFBDSF9QT1JUX0hPVFBMVUcy KTsKPiA+PiArICAgICAgIGhvdHBsdWcgfD0gUE9SVEVfSE9UUExVR19FTkFCTEU7Cj4gPj4gKyAg ICAgICBJOTE1X1dSSVRFKFBDSF9QT1JUX0hPVFBMVUcyLCBob3RwbHVnKTsKPiA+PiAgfQo+ID4+ Cj4gPj4gIHN0YXRpYyB2b2lkIGJ4dF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gPj4gQEAgLTQxNjYsMTAgKzQyMDcsMTIgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPj4gICAgICAgICAgICAgICAgIGRldi0+ ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gZ2VuOF9pcnFfdW5pbnN0YWxsOwo+ID4+ICAgICAgICAg ICAgICAgICBkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGdlbjhfZW5hYmxlX3ZibGFuazsK PiA+PiAgICAgICAgICAgICAgICAgZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gZ2VuOF9k aXNhYmxlX3ZibGFuazsKPiA+PiAtICAgICAgICAgICAgICAgaWYgKEhBU19QQ0hfU1BMSVQoZGV2 KSkKPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJx X3NldHVwID0gaWJ4X2hwZF9pcnFfc2V0dXA7Cj4gPj4gLSAgICAgICAgICAgICAgIGVsc2UKPiA+ PiArICAgICAgICAgICAgICAgaWYgKElTX0JST1hUT04oZGV2KSkKPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gYnh0X2hwZF9pcnFf c2V0dXA7Cj4gPj4gKyAgICAgICAgICAgICAgIGVsc2UgaWYgKEhBU19QQ0hfU1BUKGRldikpCj4g Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1 cCA9IHNwdF9ocGRfaXJxX3NldHVwOwo+ID4+ICsgICAgICAgICAgICAgICBlbHNlCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGli eF9ocGRfaXJxX3NldHVwOwo+ID4+ICAgICAgICAgfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRl dikpIHsKPiA+PiAgICAgICAgICAgICAgICAgZGV2LT5kcml2ZXItPmlycV9oYW5kbGVyID0gaXJv bmxha2VfaXJxX2hhbmRsZXI7Cj4gPj4gICAgICAgICAgICAgICAgIGRldi0+ZHJpdmVyLT5pcnFf cHJlaW5zdGFsbCA9IGlyb25sYWtlX2lycV9yZXNldDsKPiA+PiAtLQo+ID4+IDIuNC42Cj4gPj4K PiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo+ID4KPiA+Cj4gPgo+ID4gLS0gCj4gPiBQYXVsbyBaYW5vbmkKPiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gCj4gLS0g Cj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAK VmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=