From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 1/6] drm/i915: Store rawclk_freq in dev_priv Date: Thu, 03 Mar 2016 10:47:38 +0200 Message-ID: <87k2lkrlqt.fsf@intel.com> References: <1456932138-14004-1-git-send-email-ville.syrjala@linux.intel.com> <1456932138-14004-2-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 3648C6EA09 for ; Thu, 3 Mar 2016 08:47:41 +0000 (UTC) In-Reply-To: <1456932138-14004-2-git-send-email-ville.syrjala@linux.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.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwMiBNYXIgMjAxNiwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IEdlbmVyYWxpemUgcmF3Y2xrIGhhbmRsaW5nIGJ5IHN0b3JpbmcgaXQgaW4gZGV2X3ByaXYu Cj4KPiBQcmVzdW1hYmx5IG91ciBocmF3Y2xrIHJlYWRvdXQgd29ya3MgYXQgbGVhc3QgZm9yIENU RyBhbmQgRUxLCj4gc2luY2Ugd2UndmUgYmVlbiB1c2luZyBpdCBmb3IgRFAgQVVYIG9uIHRob3Nl IHBsYXRmb3Jtcy4gVGhlcmUKPiBhcmUgbm8gcmVhbCBkb2NzIGFueW1vcmUgYWZ0ZXIgY29uZmln ZGIgdmFuaXNoZWQsIHNvIHRoZSBvbmx5Cj4gcmVmZXJlbmNlIGlzIHRoZSBwdWJsaWMgQ1RHIEdN Q0ggc3BlYy4gV2hhdCBiaXRzIGFyZSBsaXN0ZWQgaW4KPiB0aGF0IGRvYyBtYXRjaCBvdXIgY29k ZS4gVGhlIEVMSyBHTUNIIHNwZWMgaGF2ZSBubyByZWxldmFudAo+IGRldGFpbHMgdW5mb3J0dW5h dGVseS4KPgo+IFRoZSBQTlYgc2l0dWF0aW9uIGlzIGxlc3MgY2xlYXIuIFN0YXJ0aW5nIGZyb20K PiBjb21taXQgYWExN2NkYjRmODM2ICgiZHJtL2k5MTU6IGluaXRpYWxpemUgYmFja2xpZ2h0IG1h eCBmcm9tIFZCVCIpCj4gd2UgYXNzdW1lIHRoYXQgdGhlIENURy9FTEsgaHJhd2NsayByZWFkb3V0 IHdvcmtzIGZvciBQTlYgYXMgd2VsbC4KPiBBdCBsZWFzdCB0aGUgcmVzdWx0cyAqc2VlbSogcmVh c29uYWJsZSBmb3Igb25lIFBOViBtYWNoaW5lIChMZW5vdm8KPiBJZGVhcGFkIFMxMC0zdCkuIFNh ZGx5IHRoZSBQTlYgR01DSCBzcGVjIGRvZXNuJ3QgaGF2ZSB0aGUgZ29vZHMgb24KPiB0aGUgcmVs ZXZhbnQgcmVnaXN0ZXIgZWl0aGVyLgo+Cj4gU28gbGV0J3Mga2VlcCBhc3N1bWluZyBpdCB3b3Jr cyBmb3IgUE5WLEVMSyxDVEcgYW5kIHJlYWQgaXQgb3V0IG9uCj4gdGhvc2UgcGxhdGZvcm1zLiBH MzMgYWxzbyBoYXMgaHJhd2NsayBhY2NvcmRpbmcgdG8gc29tZSBub3Rlcwo+IGluIEJTcGVjLCBi dXQgd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCBpdCBmb3IgYW55dGhpbmcsIHNvIGxldCdzIG5vdAo+ IGV2ZW4gdHJ5IHRvIHJlYWQgaXQgb3V0IHRoZXJlLgoKV2hpbGUgdGhlIGFib3ZlIGlzIHVzZWZ1 bCBpbmZvcm1hdGlvbiwgSSBkb24ndCB0aGluayBpdCdzIHNwZWNpZmljYWxseQpyZWxhdGVkIHRv IHRoZSBjaGFuZ2VzIGluIHRoaXMgcGF0Y2guIFRoZSBvbmx5IHRoaW5nIHRoYXQgY2hhbmdlcyBo ZXJlCmlzIHRoYXQgdGhlIHJhd2NsayBpcyByZWFkIGFuZCBzdG9yZWQgb25jZSwgaW5zdGVhZCBv ZiBiZWluZyByZWFkIGV2ZXJ5CnRpbWUuCgpUaGVyZSBhcmUgYSBmZXcgbml0cGlja3MgYmVsb3cs IGJ1dCBJIGRvbid0IGluc2lzdCBvbiBkb2luZyBhbnl0aGluZwp3aXRoIHRoZW0uCgpSZXZpZXdl ZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KCj4KPiB2MjogUmViYXNl IGR1ZSB0byBJU19WQUxMWVZJRVcgdnMuIElTX0NIRVJSWVZJRVcgc3BsaXQKPiAgICAgVXNlIEtI eigpIGFsbCBvdmVyLCBhbmQga2lsbCBvZmYgYSBmZXcgdXNlbGVzcyB0ZW1wIHZhcmlhYmxlcwo+ Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwg IDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA1NSArKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyAgICAgIHwgMTYgKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggICAgIHwgIDIgLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwu YyAgIHwgNDIgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gIDUgZmlsZXMgY2hhbmdlZCwg NjIgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBpbmRleCAyY2IwYTQxMWMxMGUuLmIwZTdmMzVhOGJlNCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+IEBAIC0xODM3LDYgKzE4MzcsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSB7Cj4gIAl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4gIAl1bnNpZ25lZCBpbnQgY2Rj bGtfZnJlcSwgbWF4X2NkY2xrX2ZyZXEsIGF0b21pY19jZGNsa19mcmVxOwo+ICAJdW5zaWduZWQg aW50IG1heF9kb3RjbGtfZnJlcTsKPiArCXVuc2lnbmVkIGludCByYXdjbGtfZnJlcTsKPiAgCXVu c2lnbmVkIGludCBocGxsX2ZyZXE7Cj4gIAl1bnNpZ25lZCBpbnQgY3pjbGtfZnJlcTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDQ0ZmNmZjAzNDNmMi4uMzMw NTI4YzFmYjI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0x NjksNDkgKzE2OSw2MSBAQCBzdGF0aWMgaW50IHZsdl9nZXRfY2NrX2Nsb2NrX2hwbGwoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNU KGRldl9wcml2LT5ocGxsX2ZyZXEgPDwgMSwgZGl2aWRlciArIDEpOwo+ICB9Cj4gIAo+IC1pbnQK PiAtaW50ZWxfcGNoX3Jhd2NsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICtzdGF0aWMgaW50 Cj4gK2ludGVsX3BjaF9yYXdjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoK Tm93IHRoYXQgeW91IG1ha2UgdGhlc2Ugc3RhdGljLCBpdCBmZWVscyBhIGJpdCBzaWxseSB0byBo YXZlIGJvdGggaW50ZWwKYW5kIHBsYXRmb3JtIGluIHRoZSBuYW1lLiBCdXQgbWVoLCBubyBuZWVk IHRvIHJlc2VuZCBvdmVyIHRoYXQuCgo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0KPiAtCVdBUk5fT04oIUhBU19QQ0hfU1BM SVQoZGV2KSk7Cj4gKwlyZXR1cm4gKEk5MTVfUkVBRChQQ0hfUkFXQ0xLX0ZSRVEpICYgUkFXQ0xL X0ZSRVFfTUFTSykgKiAxMDAwOwo+ICt9Cj4gIAo+IC0JcmV0dXJuIEk5MTVfUkVBRChQQ0hfUkFX Q0xLX0ZSRVEpICYgUkFXQ0xLX0ZSRVFfTUFTSzsKPiArc3RhdGljIGludAo+ICtpbnRlbF92bHZf aHJhd2NsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXJldHVy biAyMDAwMDA7Cj4gIH0KPiAgCj4gLS8qIGhyYXdjbG9jayBpcyAxLzQgdGhlIEZTQiBmcmVxdWVu Y3kgKi8KPiAtaW50IGludGVsX2hyYXdjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArc3Rh dGljIGludAo+ICtpbnRlbF9nNHhfaHJhd2NsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gIAl1aW50MzJfdCBjbGtjZmc7Cj4gIAo+IC0JLyogVGhlcmUgaXMgbm8g Q0xLQ0ZHIHJlZyBpbiBWYWxsZXl2aWV3LiBWTFYgaHJhd2NsayBpcyAyMDAgTUh6ICovCj4gLQlp ZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiAtCQlyZXR1cm4g MjAwOwo+IC0KPiArCS8qIGhyYXdjbG9jayBpcyAxLzQgdGhlIEZTQiBmcmVxdWVuY3kgKi8KPiAg CWNsa2NmZyA9IEk5MTVfUkVBRChDTEtDRkcpOwo+ICAJc3dpdGNoIChjbGtjZmcgJiBDTEtDRkdf RlNCX01BU0spIHsKPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl80MDA6Cj4gLQkJcmV0dXJuIDEwMDsKPiAr CQlyZXR1cm4gMTAwMDAwOwo+ICAJY2FzZSBDTEtDRkdfRlNCXzUzMzoKPiAtCQlyZXR1cm4gMTMz Owo+ICsJCXJldHVybiAxMzMzMzM7Cj4gIAljYXNlIENMS0NGR19GU0JfNjY3Ogo+IC0JCXJldHVy biAxNjY7Cj4gKwkJcmV0dXJuIDE2NjY2NzsKPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl84MDA6Cj4gLQkJ cmV0dXJuIDIwMDsKPiArCQlyZXR1cm4gMjAwMDAwOwo+ICAJY2FzZSBDTEtDRkdfRlNCXzEwNjc6 Cj4gLQkJcmV0dXJuIDI2NjsKPiArCQlyZXR1cm4gMjY2NjY3Owo+ICAJY2FzZSBDTEtDRkdfRlNC XzEzMzM6Cj4gLQkJcmV0dXJuIDMzMzsKPiArCQlyZXR1cm4gMzMzMzMzOwo+ICAJLyogdGhlc2Ug dHdvIGFyZSBqdXN0IGEgZ3Vlc3M7IG9uZSBvZiB0aGVtIG1pZ2h0IGJlIHJpZ2h0ICovCj4gIAlj YXNlIENMS0NGR19GU0JfMTYwMDoKPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl8xNjAwX0FMVDoKPiAtCQly ZXR1cm4gNDAwOwo+ICsJCXJldHVybiA0MDAwMDA7Cj4gIAlkZWZhdWx0Ogo+IC0JCXJldHVybiAx MzM7Cj4gKwkJcmV0dXJuIDEzMzMzMzsKPiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50 ZWxfdXBkYXRlX3Jhd2NsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sK PiArCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKPiArCQlkZXZfcHJpdi0+cmF3Y2xrX2Zy ZXEgPSBpbnRlbF9wY2hfcmF3Y2xrKGRldl9wcml2KTsKPiArCWVsc2UgaWYgKElTX1ZBTExFWVZJ RVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICsJCWRldl9wcml2LT5y YXdjbGtfZnJlcSA9IGludGVsX3Zsdl9ocmF3Y2xrKGRldl9wcml2KTsKPiArCWVsc2UgaWYgKElT X0c0WChkZXZfcHJpdikgfHwgSVNfUElORVZJRVcoZGV2X3ByaXYpKQo+ICsJCWRldl9wcml2LT5y YXdjbGtfZnJlcSA9IGludGVsX2c0eF9ocmF3Y2xrKGRldl9wcml2KTsKPiArCWVsc2UKPiArCQly ZXR1cm47IC8qIG5vIHJhd2NsayBvbiBvdGhlciBwbGF0Zm9ybXMsIG9yIG5vIG5lZWQgdG8ga25v dyBpdCAqLwo+ICsKPiArCURSTV9ERUJVR19EUklWRVIoInJhd2NsayByYXRlOiAlZCBrSHpcbiIs IGRldl9wcml2LT5yYXdjbGtfZnJlcSk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGludGVsX3Vw ZGF0ZV9jemNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCWlm ICghKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSkK PiBAQCAtMTU2MTcsNiArMTU2MjksNyBAQCB2b2lkIGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAJfQo+ICAKPiAgCWludGVsX3VwZGF0ZV9jemNsayhkZXZfcHJp dik7Cj4gKwlpbnRlbF91cGRhdGVfcmF3Y2xrKGRldl9wcml2KTsKPiAgCWludGVsX3VwZGF0ZV9j ZGNsayhkZXYpOwo+ICAKPiAgCWludGVsX3NoYXJlZF9kcGxsX2luaXQoZGV2KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiBpbmRleCBmMjcyYjM1NDFlMDAuLjZhZmRmYTcyMDk3NCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC02NzQsMTMgKzY3NCwxMyBAQCBpbnRlbF9kcF9h dXhfd2FpdF9kb25lKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgaGFzX2F1eF9pcnEp Cj4gIHN0YXRpYyB1aW50MzJfdCBpOXh4X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kaWdfcG9y dC0+YmFzZS5iYXNlLmRldik7Cj4gIAo+ICAJLyoKPiAgCSAqIFRoZSBjbG9jayBkaXZpZGVyIGlz IGJhc2VkIG9mZiB0aGUgaHJhd2NsaywgYW5kIHdvdWxkIGxpa2UgdG8gcnVuIGF0Cj4gIAkgKiAy TUh6LiAgU28sIHRha2UgdGhlIGhyYXdjbGsgdmFsdWUgYW5kIGRpdmlkZSBieSAyIGFuZCB1c2Ug dGhhdAo+ICAJICovCgpZb3UgZm9yZ2V0IHRvIGZpeCB0aGUgY29tbWVudCBoZXJlLCBidXQgSSBz ZWUgdGhhdCB5b3UgZml4IGl0IGluIGEgbGF0ZXIKcGF0Y2guLi4gKFlvdSBrbm93IEknbSBqdXN0 IGNvbW1lbnRpbmcgdG8gc2hvdyB0aGF0IEkndmUgYWN0dWFsbHkgcmVhZAp0aGUgcGF0Y2ggcHJv cGVybHkuIDspCgo+IC0JcmV0dXJuIGluZGV4ID8gMCA6IERJVl9ST1VORF9DTE9TRVNUKGludGVs X2hyYXdjbGsoZGV2KSwgMik7Cj4gKwlyZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NF U1QoZGV2X3ByaXYtPnJhd2Nsa19mcmVxLCAyMDAwKTsKPiAgfQo+ICAKPiAgc3RhdGljIHVpbnQz Ml90IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwg aW50IGluZGV4KQo+IEBAIC02OTIsMTIgKzY5MiwxMCBAQCBzdGF0aWMgdWludDMyX3QgaWxrX2dl dF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgp Cj4gIAlpZiAoaW5kZXgpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IC0JaWYgKGludGVsX2RpZ19wb3J0 LT5wb3J0ID09IFBPUlRfQSkgewo+ICsJaWYgKGludGVsX2RpZ19wb3J0LT5wb3J0ID09IFBPUlRf QSkKPiAgCQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPmNkY2xrX2ZyZXEsIDIw MDApOwo+IC0KPiAtCX0gZWxzZSB7Cj4gLQkJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGludGVs X3BjaF9yYXdjbGsoZGV2KSwgMik7Cj4gLQl9Cj4gKwllbHNlCj4gKwkJcmV0dXJuIERJVl9ST1VO RF9DTE9TRVNUKGRldl9wcml2LT5yYXdjbGtfZnJlcSwgMjAwMCk7Cj4gIH0KPiAgCj4gIHN0YXRp YyB1aW50MzJfdCBoc3dfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsIGludCBpbmRleCkKPiBAQCAtNzE4LDcgKzcxNiw3IEBAIHN0YXRpYyB1aW50MzJfdCBo c3dfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBp bmRleCkKPiAgCQlkZWZhdWx0OiByZXR1cm4gMDsKPiAgCQl9Cj4gIAl9IGVsc2UgIHsKPiAtCQly ZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NFU1QoaW50ZWxfcGNoX3Jhd2NsayhkZXYp LCAyKTsKPiArCQlyZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYt PnJhd2Nsa19mcmVxLCAyMDAwKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtNTI1NCw3ICs1MjUyLDcg QEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1MzIgcHBfb24sIHBwX29mZiwgcHBfZGl2LCBwb3J0 X3NlbCA9IDA7Cj4gLQlpbnQgZGl2ID0gSEFTX1BDSF9TUExJVChkZXYpID8gaW50ZWxfcGNoX3Jh d2NsayhkZXYpIDogaW50ZWxfaHJhd2NsayhkZXYpOwo+ICsJaW50IGRpdiA9IGRldl9wcml2LT5y YXdjbGtfZnJlcSAvIDEwMDA7Cj4gIAlpOTE1X3JlZ190IHBwX29uX3JlZywgcHBfb2ZmX3JlZywg cHBfZGl2X3JlZywgcHBfY3RybF9yZWc7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKS0+cG9ydDsKPiAgCWNvbnN0IHN0cnVjdCBlZHBfcG93ZXJfc2VxICpzZXEg PSAmaW50ZWxfZHAtPnBwc19kZWxheXM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRl eCBjYjQxM2UyNDYyNjcuLmU3NDg1ZWMzNGY2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gQEAgLTEwODUsOCArMTA4NSw2IEBAIHZvaWQgaTkxNV9hdWRpb19jb21wb25lbnRfY2xl YW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICBleHRlcm4gY29uc3Qg c3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5jczsKPiAgdW5zaWduZWQgaW50 IGludGVsX3JvdGF0aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QgaW50ZWxfcm90YXRpb25faW5m byAqcm90X2luZm8pOwo+ICBib29sIGludGVsX2hhc19wZW5kaW5nX2ZiX3VucGluKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwo+IC1pbnQgaW50ZWxfcGNoX3Jhd2NsayhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiAtaW50IGludGVsX2hyYXdjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g IHZvaWQgaW50ZWxfbWFya19idXN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGlu dGVsX21hcmtfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBpbnRlbF9jcnRj X3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcGFuZWwuYwo+IGluZGV4IDIxZWU2NDc3YmY5OC4uNWNmMzc3NTA3MTYyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gQEAgLTEyNTEsMTYgKzEyNTEsMTQgQEAgc3RhdGlj IHUzMiBieHRfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMy IHB3bV9mcmVxX2h6KQo+ICBzdGF0aWMgdTMyIHNwdF9oel90b19wd20oc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4g LQl1MzIgbXVsLCBjbG9jazsKPiArCXUzMiBtdWw7Cj4gIAo+ICAJaWYgKEk5MTVfUkVBRChTT1VU SF9DSElDS0VOMSkgJiBTUFRfUFdNX0dSQU5VTEFSSVRZKQo+ICAJCW11bCA9IDEyODsKPiAgCWVs c2UKPiAgCQltdWwgPSAxNjsKPiAgCj4gLQljbG9jayA9IE1IeigyNCk7Cj4gLQo+IC0JcmV0dXJu IGNsb2NrIC8gKHB3bV9mcmVxX2h6ICogbXVsKTsKPiArCXJldHVybiBNSHooMjQpIC8gKHB3bV9m cmVxX2h6ICogbXVsKTsKClVucmVsYXRlZCBjaGFuZ2UsIHJlYWxseS4KCj4gIH0KPiAgCj4gIC8q Cj4gQEAgLTEyOTIsMTAgKzEyOTAsOSBAQCBzdGF0aWMgdTMyIGxwdF9oel90b19wd20oc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gICAqLwo+ICBz dGF0aWMgdTMyIHBjaF9oel90b19wd20oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LCB1MzIgcHdtX2ZyZXFfaHopCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25u ZWN0b3ItPmJhc2UuZGV2Owo+IC0JaW50IGNsb2NrID0gTUh6KGludGVsX3BjaF9yYXdjbGsoZGV2 KSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5l Y3Rvci0+YmFzZS5kZXYpOwo+ICAKPiAtCXJldHVybiBjbG9jayAvIChwd21fZnJlcV9oeiAqIDEy OCk7Cj4gKwlyZXR1cm4gS0h6KGRldl9wcml2LT5yYXdjbGtfZnJlcSkgLyAocHdtX2ZyZXFfaHog KiAxMjgpOwo+ICB9Cj4gIAo+ICAvKgo+IEBAIC0xMzA4LDE0ICsxMzA1LDEzIEBAIHN0YXRpYyB1 MzIgcGNoX2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBw d21fZnJlcV9oeikKPiAgICovCj4gIHN0YXRpYyB1MzIgaTl4eF9oel90b19wd20oc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gIHsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4g IAlpbnQgY2xvY2s7Cj4gIAo+IC0JaWYgKElTX1BJTkVWSUVXKGRldikpCj4gLQkJY2xvY2sgPSBN SHooaW50ZWxfaHJhd2NsayhkZXYpKTsKPiArCWlmIChJU19QSU5FVklFVyhkZXZfcHJpdikpCj4g KwkJY2xvY2sgPSBLSHooZGV2X3ByaXYtPnJhd2Nsa19mcmVxKTsKPiAgCWVsc2UKPiAtCQljbG9j ayA9IDEwMDAgKiBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiArCQljbG9jayA9IEtIeihkZXZfcHJp di0+Y2RjbGtfZnJlcSk7Cj4gIAo+ICAJcmV0dXJuIGNsb2NrIC8gKHB3bV9mcmVxX2h6ICogMzIp Owo+ICB9Cj4gQEAgLTEzMzIsOSArMTMyOCw5IEBAIHN0YXRpYyB1MzIgaTk2NV9oel90b19wd20o c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gIAlp bnQgY2xvY2s7Cj4gIAo+ICAJaWYgKElTX0c0WChkZXZfcHJpdikpCj4gLQkJY2xvY2sgPSBNSHoo aW50ZWxfaHJhd2NsayhkZXYpKTsKPiArCQljbG9jayA9IEtIeihkZXZfcHJpdi0+cmF3Y2xrX2Zy ZXEpOwo+ICAJZWxzZQo+IC0JCWNsb2NrID0gMTAwMCAqIGRldl9wcml2LT5jZGNsa19mcmVxOwo+ ICsJCWNsb2NrID0gS0h6KGRldl9wcml2LT5jZGNsa19mcmVxKTsKPiAgCj4gIAlyZXR1cm4gY2xv Y2sgLyAocHdtX2ZyZXFfaHogKiAxMjgpOwo+ICB9Cj4gQEAgLTEzNDYsMTkgKzEzNDIsMjEgQEAg c3RhdGljIHUzMiBpOTY1X2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IsIHUzMiBwd21fZnJlcV9oeikKPiAgICovCj4gIHN0YXRpYyB1MzIgdmx2X2h6X3RvX3B3bShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPiAgewo+ IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaW50 IGNsb2NrOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj b25uZWN0b3ItPmJhc2UuZGV2KTsKPiArCWludCBtdWwsIGNsb2NrOwo+ICAKPiAgCWlmICgoSTkx NV9SRUFEKENCUjFfVkxWKSAmIENCUl9QV01fQ0xPQ0tfTVVYX1NFTEVDVCkgPT0gMCkgewo+IC0J CWlmIChJU19DSEVSUllWSUVXKGRldikpCj4gLQkJCXJldHVybiBLSHooMTkyMDApIC8gKHB3bV9m cmVxX2h6ICogMTYpOwo+ICsJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiArCQkJY2xv Y2sgPSBLSHooMTkyMDApOwo+ICAJCWVsc2UKPiAtCQkJcmV0dXJuIE1IeigyNSkgLyAocHdtX2Zy ZXFfaHogKiAxNik7Cj4gKwkJCWNsb2NrID0gTUh6KDI1KTsKPiArCQltdWwgPSAxNjsKPiAgCX0g ZWxzZSB7Cj4gLQkJY2xvY2sgPSBpbnRlbF9ocmF3Y2xrKGRldik7Cj4gLQkJcmV0dXJuIE1Ieihj bG9jaykgLyAocHdtX2ZyZXFfaHogKiAxMjgpOwo+ICsJCWNsb2NrID0gS0h6KGRldl9wcml2LT5y YXdjbGtfZnJlcSk7Cj4gKwkJbXVsID0gMTI4Owo+ICAJfQo+ICsKPiArCXJldHVybiBjbG9jayAv IChwd21fZnJlcV9oeiAqIG11bCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB1MzIgZ2V0X2JhY2tsaWdo dF9tYXhfdmJ0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKCi0tIApKYW5pIE5p a3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==