From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 1/2] drm/i915/bdw: Implement a basic PM interrupt handler Date: Tue, 15 Apr 2014 19:43:07 -0700 Message-ID: <20140416024306.GA6425@bwidawsk.net> References: <1397495475-22667-1-git-send-email-deepak.s@intel.com> <1397495475-22667-2-git-send-email-deepak.s@intel.com> <20140414195553.GP18465@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 2178E6E9C9 for ; Tue, 15 Apr 2014 19:43:28 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20140414195553.GP18465@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: deepak.s@intel.com, intel-gfx@lists.freedesktop.org, Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBcHIgMTQsIDIwMTQgYXQgMTA6NTU6NTNQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgQXByIDE0LCAyMDE0IGF0IDEwOjQxOjE0UE0gKzA1MzAsIGRlZXBh ay5zQGludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IEJlbiBXaWRhd3NreSA8YmVuamFtaW4ud2lk YXdza3lAaW50ZWwuY29tPgo+ID4gCj4gPiBBbG1vc3QgYWxsIG9mIGl0IGlzIHJldXNhYmxlIGZy b20gdGhlIGV4aXN0aW5nIGNvZGUuIFRoZSBwcmltYXJ5Cj4gPiBkaWZmZXJlbmNlIGlzIHdlIG5l ZWQgdG8gZG8gZXZlbiBsZXNzIGluIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciwgc2luY2UKPiA+IGlu dGVycnVwdHMgYXJlIG5vdCBzaGFyZWQgaW4gdGhlIHNhbWUgd2F5Lgo+ID4gCj4gPiBUaGUgcGF0 Y2ggaXMgbW9zdGx5IGEgY29weS1wYXN0ZSBvZiB0aGUgZXhpc3Rpbmcgc25iKyBjb2RlLCB3aXRo IHVwZGF0ZXMKPiA+IHRvIHRoZSByZWxldmFudCBwYXJ0cyByZXF1aXJpbmcgY2hhbmdlcyB0byB0 aGUgaW50ZXJydXB0IGhhbmRsaW5nLiBBcwo+ID4gc3VjaCBpdCAvc2hvdWxkLyBiZSByZWxhdGl2 ZWx5IHRyaXZpYWwuIEl0J3MgaGlnaGx5IGxpa2VseSB0aGF0IEkgbWlzc2VkCj4gPiBzb21lIHBs YWNlcyB3aGVyZSBJIG5lZWQgYSBnZW44IHZlcnNpb24gb2YgdGhlIFBNIGludGVycnVwdHMsIGJ1 dCBpdCBoYXMKPiA+IGJlY29tZSBpbnZpc2libGUgdG8gbWUgYnkgbm93Lgo+ID4gCj4gPiBUaGlz IHBhdGNoIGNvdWxkIHByb2JhYmx5IGJlIHNwbGl0IGludG8gYWRkaW5nIHRoZSBuZXcgZnVuY3Rp b25zLAo+ID4gZm9sbG93ZWQgYnkgYWN0dWFsbHkgaGFuZGxpbmcgdGhlIGludGVycnVwdHMuIFNp bmNlIHRoZSBjb2RlIGlzCj4gPiBjdXJyZW50bHkgZGlzYWJsZWQgKGFuZCBicm9rZW4pIEkgdGhp bmsgdGhlIHBhdGNoIHN0YW5kcyBiZXR0ZXIgYnkKPiA+IGl0c2VsZi4KPiA+IAo+ID4gdjI6IE1v dmUgdGhlIGNvbW1pdCBhYm91dCBub3QgdG91Y2hpbmcgdGhlIHJpbmdidWZmZXIgaW50ZXJydXB0 IHRvIHRoZQo+ID4gc25iXyogZnVuY3Rpb24gd2hlcmUgaXQgYmVsb25ncyAoUm9kcmlnbykKPiA+ IAo+ID4gdjM6IFJlYmFzZWQgb24gUGF1bG8ncyBydW50aW1lIFBNIGNoYW5nZXMKPiA+IAo+ID4g djQ6IE5vdCB3ZWxsIHZhbGlkYXRlZCwgYnV0IHJlYmFzZSBvbgo+ID4gY29tbWl0IDczMDQ4OGIy ZWRkZGVkNDQ5N2Y2M2Y3MDg2N2IxMjU2Y2Q5ZTExN2MKPiA+IEF1dGhvcjogUGF1bG8gWmFub25p IDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gPiBEYXRlOiAgIEZyaSBNYXIgNyAyMDoxMjoz MiAyMDE0IC0wMzAwCj4gPiAKPiA+ICAgICBkcm0vaTkxNToga2lsbCBkZXZfcHJpdi0+cG0ucmVn c2F2ZQo+ID4gCj4gPiB2NTogUmViYXNlZCBvbiBsYXRlc3QgY29kZSBiYXNlLiAoRGVlcGFrKQo+ ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4g PiAKPiA+IENvbmZsaWN0czoKPiA+IAlkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4g Cj4gSUlSQyBEYW5pZWwgZG9lc24ndCBsaWtlIHRoZXNlIGNvbmZsaWN0IG1hcmtlcnMuIFNvIHNo b3VsZCBiZSBkcm9wcGVkLgo+IAoKSSBsaWtlIHRoZSBjb25mbGljdCBtYXJrZXJzIGdlbmVyYWxs eS4gRGFuaWVsIGNhbiBraWxsIGl0IGlmIGhlIGxpa2VzLApidXQgdGhhbmtzIGZvciB0aGUgaW5w dXQuIEkndmUga2lsbGVkIGl0IHRoaXMgdGltZSBhcm91bmQsIGJ1dCBJIGRvbid0CnBsYW4gb24g aXQgZm9yIHRoZSBmdXR1cmUuCgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyAgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgfCAgMSArCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgMyArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgIHwgMzggKysrKysrKysrKysrKysrKysrLQo+ID4gIDQgZmlsZXMgY2hhbmdl ZCwgMTE1IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwo+ID4gaW5kZXggN2E0ZDNhZS4uOTZjNDU5YSAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKPiA+IEBAIC0yNDgsNiArMjQ4LDUwIEBAIHN0YXRpYyBib29sIGl2Yl9j YW5fZW5hYmxlX2Vycl9pbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJcmV0dXJuIHRy dWU7Cj4gPiAgfQo+ID4gIAo+ID4gKy8qKgo+ID4gKyAgKiBiZHdfdXBkYXRlX3BtX2lycSAtIHVw ZGF0ZSBHVCBpbnRlcnJ1cHQgMgo+ID4gKyAgKiBAZGV2X3ByaXY6IGRyaXZlciBwcml2YXRlCj4g PiArICAqIEBpbnRlcnJ1cHRfbWFzazogbWFzayBvZiBpbnRlcnJ1cHQgYml0cyB0byB1cGRhdGUK PiA+ICsgICogQGVuYWJsZWRfaXJxX21hc2s6IG1hc2sgb2YgaW50ZXJydXB0IGJpdHMgdG8gZW5h YmxlCj4gPiArICAqCj4gPiArICAqIENvcGllZCBmcm9tIHRoZSBzbmIgZnVuY3Rpb24sIHVwZGF0 ZWQgd2l0aCByZWxldmFudCByZWdpc3RlciBvZmZzZXRzCj4gPiArICAqLwo+ID4gK3N0YXRpYyB2 b2lkIGJkd191cGRhdGVfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiA+ICsJCQkgICAgICB1aW50MzJfdCBpbnRlcnJ1cHRfbWFzaywKPiA+ICsJCQkgICAgICB1aW50 MzJfdCBlbmFibGVkX2lycV9tYXNrKQo+ID4gK3sKPiA+ICsJdWludDMyX3QgbmV3X3ZhbDsKPiA+ ICsKPiA+ICsJYXNzZXJ0X3NwaW5fbG9ja2VkKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gKwo+ ID4gKwlpZiAoZGV2X3ByaXYtPnBtLmlycXNfZGlzYWJsZWQpIHsKPiA+ICsJCVdBUk4oMSwgIklS UXMgZGlzYWJsZWRcbiIpOwo+ID4gKwkJcmV0dXJuOwo+ID4gKwl9Cj4gPiArCj4gPiArCW5ld192 YWwgPSBkZXZfcHJpdi0+cG1faXJxX21hc2s7Cj4gPiArCW5ld192YWwgJj0gfmludGVycnVwdF9t YXNrOwo+ID4gKwluZXdfdmFsIHw9ICh+ZW5hYmxlZF9pcnFfbWFzayAmIGludGVycnVwdF9tYXNr KTsKPiA+ICsKPiA+ICsJaWYgKG5ld192YWwgIT0gZGV2X3ByaXYtPnBtX2lycV9tYXNrKSB7Cj4g PiArCQlkZXZfcHJpdi0+cG1faXJxX21hc2sgPSBuZXdfdmFsOwo+ID4gKwkJSTkxNV9XUklURShH RU44X0dUX0lNUigyKSwgSTkxNV9SRUFEKEdFTjhfR1RfSU1SKDIpKSB8Cj4gPiArCQkJCQkgICBk ZXZfcHJpdi0+cG1faXJxX21hc2spOwo+ID4gKwkJUE9TVElOR19SRUFEKEdFTjhfR1RfSU1SKDIp KTsKPiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIGJkd19lbmFibGVfcG1faXJxKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdWludDMyX3QgbWFzaykKPiA+ICt7Cj4gPiAr CWJkd191cGRhdGVfcG1faXJxKGRldl9wcml2LCBtYXNrLCBtYXNrKTsKPiA+ICt9Cj4gPiArCj4g PiArdm9pZCBiZHdfZGlzYWJsZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1aW50MzJfdCBtYXNrKQo+ID4gK3sKPiA+ICsJYmR3X3VwZGF0ZV9wbV9pcnEoZGV2X3By aXYsIG1hc2ssIDApOwo+ID4gK30KPiA+ICsKPiA+ICsKPiAKPiBVbm5lY2Vzc2FyeSBlbXB0eSBs aW5lLgo+IAoKR290IGl0LCB0aGFua3MuCgo+ID4gIHN0YXRpYyBib29sIGNwdF9jYW5fZW5hYmxl X3NlcnJfaW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gQEAgLTExMjYs MTMgKzExNzAsMTcgQEAgc3RhdGljIHZvaWQgZ2VuNl9wbV9ycHNfd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gPiAgCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4g PiAgCXBtX2lpciA9IGRldl9wcml2LT5ycHMucG1faWlyOwo+ID4gIAlkZXZfcHJpdi0+cnBzLnBt X2lpciA9IDA7Cj4gPiAtCS8qIE1ha2Ugc3VyZSBub3QgdG8gY29ycnVwdCBQTUlNUiBzdGF0ZSB1 c2VkIGJ5IHJpbmdidWZmZXIgY29kZSAqLwo+ID4gLQlzbmJfZW5hYmxlX3BtX2lycShkZXZfcHJp diwgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwo+ID4gKwlpZiAoSVNfQlJPQURXRUxMKGRldl9w cml2LT5kZXYpKQo+ID4gKwkJYmR3X2VuYWJsZV9wbV9pcnEoZGV2X3ByaXYsIGRldl9wcml2LT5w bV9ycHNfZXZlbnRzKTsKPiA+ICsJZWxzZSB7Cj4gPiArCQkvKiBNYWtlIHN1cmUgbm90IHRvIGNv cnJ1cHQgUE1JTVIgc3RhdGUgdXNlZCBieSByaW5nYnVmZmVyICovCj4gPiArCQlzbmJfZW5hYmxl X3BtX2lycShkZXZfcHJpdiwgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwo+ID4gKwkJLyogTWFr ZSBzdXJlIHdlIGRpZG4ndCBxdWV1ZSBhbnl0aGluZyB3ZSdyZSBub3QgZ29pbmcgdG8KPiA+ICsJ CSAqIHByb2Nlc3MuICovCj4gPiArCQlXQVJOX09OKHBtX2lpciAmIH5kZXZfcHJpdi0+cG1fcnBz X2V2ZW50cyk7Cj4gPiArCX0KPiA+ICAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOwo+ID4gIAo+ID4gLQkvKiBNYWtlIHN1cmUgd2UgZGlkbid0IHF1ZXVlIGFueXRoaW5nIHdl J3JlIG5vdCBnb2luZyB0byBwcm9jZXNzLiAqLwo+ID4gLQlXQVJOX09OKHBtX2lpciAmIH5kZXZf cHJpdi0+cG1fcnBzX2V2ZW50cyk7Cj4gCj4gSXNuJ3QgdGhpcyBXQVJOIGVxdWFsbHkgdmFsaWQg Zm9yIGJkdz8KPiAKClNvIGZpcnN0LCBsZXQgbWUganVzdCBtZW50aW9uLCB0aGlzIGhhcyBtb3Zl ZCBzbGlnaHRseSBpbiBteSBsYXRlc3QKdmVyc2lvbiBvZiB0aGlzIHBhdGNoLCBidXQgaXQncyBz dGlsbCBhIHZhbGlkIHF1ZXN0aW9uLgoKVGhlIGFuc3dlciBpcyBhbWJpZ3VvdXMgYWN0dWFsbHku IFRoZSBXQVJOIGlzIGFsd2F5cyB2YWxpZCB0ZWNobmljYWxseQpUaGUgZGlzdGluY3Rpb24gaW4g QkRXIChhdCBsZWFzdCBmb3IgdGhlIHRpbWUgYmVpbmcpIGlzIHRoYXQgdW5saWtlCnByZS1CRFcs IFBNIElJUiBpc24ndCBzaGFyZWQuIEkgY2FuIGFkZCBpdCwgYnV0IGZvciBCRFcsIGF0IGxlYXN0 IHJpZ2h0Cm5vdywgRFJNX0VSUk9SIChvciBCVUcpIGlzIG1vcmUgYXBwcm9wcmlhdGUuCgoKPiA+ IC0KPiA+ICAJaWYgKChwbV9paXIgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cykgPT0gMCkKPiA+ ICAJCXJldHVybjsKPiA+ICAKPiA+IEBAIC0xMzI0LDYgKzEzNzIsMTkgQEAgc3RhdGljIHZvaWQg c25iX2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQlpdnlicmlk Z2VfcGFyaXR5X2Vycm9yX2lycV9oYW5kbGVyKGRldiwgZ3RfaWlyKTsKPiA+ICB9Cj4gPiAgCj4g PiArc3RhdGljIHZvaWQgZ2VuOF9ycHNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgcG1faWlyKQo+ID4gK3sKPiA+ICsJaWYgKChwbV9paXIgJiBkZXZf cHJpdi0+cG1fcnBzX2V2ZW50cykgPT0gMCkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJc3Bp bl9sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gKwlkZXZfcHJpdi0+cnBzLnBtX2lpciB8 PSBwbV9paXIgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50czsKPiA+ICsJYmR3X2Rpc2FibGVfcG1f aXJxKGRldl9wcml2LCBwbV9paXIgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7Cj4gPiArCXNw aW5fdW5sb2NrKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ID4gKwo+ID4gKwlxdWV1ZV93b3JrKGRl dl9wcml2LT53cSwgJmRldl9wcml2LT5ycHMud29yayk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRp YyBpcnFyZXR1cm5fdCBnZW44X2d0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gPiAgCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAg CQkJCSAgICAgICB1MzIgbWFzdGVyX2N0bCkKPiA+IEBAIC0xMzU5LDYgKzE0MjAsMTYgQEAgc3Rh dGljIGlycXJldHVybl90IGdlbjhfZ3RfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiA+ICAJCQlEUk1fRVJST1IoIlRoZSBtYXN0ZXIgY29udHJvbCBpbnRlcnJ1cHQgbGllZCAo R1QxKSFcbiIpOwo+ID4gIAl9Cj4gPiAgCj4gPiArCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9HVF9Q TV9JUlEpIHsKPiA+ICsJCXRtcCA9IEk5MTVfUkVBRChHRU44X0dUX0lJUigyKSk7Cj4gPiArCQlp ZiAodG1wICYgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpIHsKPiA+ICsJCQlyZXQgPSBJUlFfSEFO RExFRDsKPiA+ICsJCQlnZW44X3Jwc19pcnFfaGFuZGxlcihkZXZfcHJpdiwgdG1wKTsKPiA+ICsJ CQlJOTE1X1dSSVRFKEdFTjhfR1RfSUlSKDEpLCB0bXAgJiBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50 cyk7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXgo+ IAo+IEdFTjhfR1RfSUlSKDIpCj4gCgpOaWNlIGNhdGNoLCBJIGd1ZXNzIEkgbmVlZCB0byByZXRl c3QgYWZ0ZXIgdGhpcyBvbmUuCgo+ID4gKwkJfSBlbHNlCj4gPiArCQkJRFJNX0VSUk9SKCJUaGUg bWFzdGVyIGNvbnRyb2wgaW50ZXJydXB0IGxpZWQgKFBNKSFcbiIpOwo+ID4gKwl9Cj4gPiArCj4g PiAgCWlmIChtYXN0ZXJfY3RsICYgR0VOOF9HVF9WRUNTX0lSUSkgewo+ID4gIAkJdG1wID0gSTkx NV9SRUFEKEdFTjhfR1RfSUlSKDMpKTsKPiA+ICAJCWlmICh0bXApIHsKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+ID4gaW5kZXggOGY4NDU1NS4uYzJkZDQzNiAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiA+IEBAIC00MTkzLDYgKzQxOTMsNyBAQCBlbnVtIHB1bml0X3Bvd2Vy X3dlbGwgewo+ID4gICNkZWZpbmUgIEdFTjhfREVfUElQRV9BX0lSUQkJKDE8PDE2KQo+ID4gICNk ZWZpbmUgIEdFTjhfREVfUElQRV9JUlEocGlwZSkJCSgxPDwoMTYrcGlwZSkpCj4gPiAgI2RlZmlu ZSAgR0VOOF9HVF9WRUNTX0lSUQkJKDE8PDYpCj4gPiArI2RlZmluZSAgR0VOOF9HVF9QTV9JUlEJ CQkoMTw8NCkKPiA+ICAjZGVmaW5lICBHRU44X0dUX1ZDUzJfSVJRCQkoMTw8MykKPiA+ICAjZGVm aW5lICBHRU44X0dUX1ZDUzFfSVJRCQkoMTw8MikKPiA+ICAjZGVmaW5lICBHRU44X0dUX0JDU19J UlEJCSgxPDwxKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGM1NTE0NzIu LjY4YTA3OGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC02NTAs MTAgKzY1MCwxMSBAQCB2b2lkIGlsa19lbmFibGVfZ3RfaXJxKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdWludDMyX3QgbWFzayk7Cj4gPiAgdm9pZCBpbGtfZGlzYWJsZV9ndF9p cnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKTsKPiA+ ICB2b2lkIHNuYl9lbmFibGVfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgdWludDMyX3QgbWFzayk7Cj4gPiAgdm9pZCBzbmJfZGlzYWJsZV9wbV9pcnEoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKTsKPiA+ICt2b2lkIGJkd19l bmFibGVfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdWludDMyX3Qg bWFzayk7Cj4gPiArdm9pZCBiZHdfZGlzYWJsZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKTsKPiA+ICB2b2lkIGludGVsX3J1bnRpbWVfcG1f ZGlzYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIHZvaWQgaW50 ZWxfcnVudGltZV9wbV9yZXN0b3JlX2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gPiAgCj4gPiAtCj4gCj4gVW5yZWxhdGVkIHdoaXRlc3BhY2UgY2hhbmdlLiBJSVJDIHNvbWVv bmUgbGVmdCB0aGVzZSB0d28gZW1wdHkgbGluZXMKPiBoZXJlIG9uIHB1cnBvc2UuCj4gCgpHb3Qg aXQsIHRoYW5rcy4KCj4gPiAgLyogaW50ZWxfY3J0LmMgKi8KPiA+ICB2b2lkIGludGVsX2NydF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4gPiBpbmRleCA3NWMxYzc2Li4yN2I2NGFiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+ID4gQEAgLTMyMTAsNiArMzIxMCwyNSBAQCB2b2lkIHZhbGxleXZpZXdfc2V0X3Jw cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1OCB2YWwpCj4gPiAgCXRyYWNlX2ludGVsX2dwdV9m cmVxX2NoYW5nZSh2bHZfZ3B1X2ZyZXEoZGV2X3ByaXYsIHZhbCkpOwo+ID4gIH0KPiA+ICAKPiA+ ICtzdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCj4gPiArCUk5MTVfV1JJVEUoR0VONl9QTUlOVFJNU0ss IDB4ZmZmZmZmZmYpOwo+ID4gKwlJOTE1X1dSSVRFKEdFTjhfR1RfSUVSKDIpLCBJOTE1X1JFQUQo R0VOOF9HVF9JRVIoMikpICYKPiA+ICsJCQkJICAgfmRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsK PiA+ICsJLyogQ29tcGxldGUgUE0gaW50ZXJydXB0IG1hc2tpbmcgaGVyZSBkb2Vzbid0IHJhY2Ug d2l0aCB0aGUgcnBzIHdvcmsKPiA+ICsJICogaXRlbSBhZ2FpbiB1bm1hc2tpbmcgUE0gaW50ZXJy dXB0cyBiZWNhdXNlIHRoYXQgaXMgdXNpbmcgYSBkaWZmZXJlbnQKPiA+ICsJICogcmVnaXN0ZXIg KFBNSU1SKSB0byBtYXNrIFBNIGludGVycnVwdHMuIFRoZSBvbmx5IHJpc2sgaXMgaW4gbGVhdmlu Zwo+ID4gKwkgKiBzdGFsZSBiaXRzIGluIFBNSUlSIGFuZCBQTUlNUiB3aGljaCBnZW42X2VuYWJs ZV9ycHMgd2lsbCBjbGVhbiB1cC4gKi8KPiAKPiBUaGlzIGNvbW1lbnQgd291bGQgbmVlZCBhIGJp dCBvZiB1cGRhdGUgZm9yIGdlbjguCj4gCgpJJ3ZlIGtpbGxlZCB0aGlzIGNvbW1lbnQgbG9jYWxs eS4gU29tZXdoZXJlIEkgaGFkIHdyaXR0ZW4gdGhhdCB3ZSBjYW4KcmV3cml0ZSBzb21lIG9mIHRo aXMgZm9yIGdlbjgsIGJ1dCBJIHNlZW0gdG8gaGF2ZSBsb3N0IHRoYXQgaW4gdGhlIHNhbmRzCm9m IHRpbWUuCgo+ID4gKwo+ID4gKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ ID4gKwlkZXZfcHJpdi0+cnBzLnBtX2lpciA9IDA7Cj4gPiArCXNwaW5fdW5sb2NrX2lycSgmZGV2 X3ByaXYtPmlycV9sb2NrKTsKPiA+ICsKPiA+ICsJSTkxNV9XUklURShHRU44X0dUX0lJUigyKSwg ZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBn ZW42X2Rpc2FibGVfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICB7 Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gPiBAQCAtMzIzNiw3ICszMjU1LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjZfZGlzYWJsZV9y cHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJSTkxNV9XUklURShHRU42X1JDX0NPTlRS T0wsIDApOwo+ID4gIAlJOTE1X1dSSVRFKEdFTjZfUlBOU1dSRVEsIDEgPDwgMzEpOwo+ID4gIAo+ ID4gLQlnZW42X2Rpc2FibGVfcnBzX2ludGVycnVwdHMoZGV2KTsKPiA+ICsJaWYgKElTX0JST0FE V0VMTChkZXYpKQo+ID4gKwkJZ2VuOF9kaXNhYmxlX3Jwc19pbnRlcnJ1cHRzKGRldik7Cj4gPiAr CWVsc2UKPiA+ICsJCWdlbjZfZGlzYWJsZV9ycHNfaW50ZXJydXB0cyhkZXYpOwo+ID4gIH0KPiA+ ICAKPiA+ICBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2Rpc2FibGVfcnBzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPiBAQCAtMzI3Niw2ICszMjk4LDE4IEBAIGludCBpbnRlbF9lbmFibGVfcmM2 KGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCXJldHVybiBJTlRFTF9SQzZfRU5B QkxFOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBnZW44X2VuYWJsZV9ycHNfaW50ZXJy dXB0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsKPiA+ICsJc3Bpbl9s b2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiA+ICsJV0FSTl9PTihkZXZfcHJpdi0+cnBz LnBtX2lpcik7Cj4gPiArCWJkd19lbmFibGVfcG1faXJxKGRldl9wcml2LCBkZXZfcHJpdi0+cG1f cnBzX2V2ZW50cyk7Cj4gPiArCUk5MTVfV1JJVEUoR0VOOF9HVF9JSVIoMiksIGRldl9wcml2LT5w bV9ycHNfZXZlbnRzKTsKPiAKPiBUaGUgb3JkZXIgb2YgInVubWFzayBmaXJzdCB0aGVuIGNsZWFy IiBzZWVtcyBqdXN0IHdyb25nLiBUaGUgc2FtZSBpc3N1ZXMgaXMKPiBhbHJlYWR5IHByZXNlbnQg aW4gdGhlIGdlbjYgY29kZSBob3dldmVyLiBTbyB0aGlzIHNob3VsZCBiZSBmaXhlZCBpbgo+IGJv dGggcGxhY2VzLCBvciBpZiBpdCdzIGxpa2UgdGhhdCBvbiBwdXJwb3NlIGl0IG5lZWRzIGEgY29t bWVudC4KPiAKCldlbGwsIGlmIHlvdSB3YW50IHRvIGZpeCBpdCwgd2UgY2FuIGRvIGl0IGluIGEg c2VwYXJhdGUgcGF0Y2guIEFsdGhvdWdoCkkgZG9uJ3QgdGhpbmsgSSBhZ3JlZS4gV2h5IGRvZXMg aXQgc2VlbSB3cm9uZyB0byB5b3U/Cgo+ID4gKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5p cnFfbG9jayk7Cj4gPiArCj4gCj4gVXNlbGVzcyBlbXB0eSBsaW5lLgo+IAoKSWYgSSB3YXMgaW4g YW4gYXJndWluZyBtb29kLCBJIHdvdWxkIGRvLCBidXQgZmluZS4KCj4gPiArfQo+ID4gKwo+ID4g IHN0YXRpYyB2b2lkIGdlbjZfZW5hYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+ID4gQEAgLTMzNzgsNyArMzQxMiw3IEBAIHN0YXRpYyB2b2lkIGdl bjhfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAo+ID4gIAlnZW42X3Nl dF9ycHMoZGV2LCAoSTkxNV9SRUFEKEdFTjZfR1RfUEVSRl9TVEFUVVMpICYgMHhmZjAwKSA+PiA4 KTsKPiA+ICAKPiA+IC0JZ2VuNl9lbmFibGVfcnBzX2ludGVycnVwdHMoZGV2KTsKPiA+ICsJZ2Vu OF9lbmFibGVfcnBzX2ludGVycnVwdHMoZGV2KTsKPiA+ICAKPiA+ICAJZ2VuNl9ndF9mb3JjZV93 YWtlX3B1dChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7Cj4gPiAgfQoKVGhhbmtzIGZvciB0aGUg cmV2aWV3LgoKLS0gCkJlbiBXaWRhd3NreSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK