From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 07/11] drm/i915: Store rawclk_freq in dev_priv Date: Tue, 01 Dec 2015 17:43:33 +0200 Message-ID: <877fky41ju.fsf@intel.com> References: <1448893432-6978-1-git-send-email-ville.syrjala@linux.intel.com> <1448893432-6978-8-git-send-email-ville.syrjala@linux.intel.com> <87oaea49oy.fsf@intel.com> <20151201132513.GV4437@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 8AFF26E0ED for ; Tue, 1 Dec 2015 07:39:35 -0800 (PST) In-Reply-To: <20151201132513.GV4437@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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAwMSBEZWMgMjAxNSwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVHVlLCBEZWMgMDEsIDIwMTUgYXQgMDI6NDc6NDFQTSAr MDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IE9uIE1vbiwgMzAgTm92IDIwMTUsIHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tIHdyb3RlOgo+PiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+ID4KPj4gPiBHZW5lcmFsaXplIHJhd2Ns ayBoYW5kbGluZyBieSBzdG9yaW5nIGl0IGluIGRldl9wcml2Lgo+PiA+Cj4+ID4gUHJlc3VtYWJs eSBvdXIgaHJhd2NsayByZWFkb3V0IHdvcmtzIGF0IGxlYXN0IGZvciBDVEcgYW5kIEVMSwo+PiA+ IHNpbmNlIHdlJ3ZlIGJlZW4gdXNpbmcgaXQgZm9yIERQIEFVWCBvbiB0aG9zZSBwbGF0Zm9ybXMu IFRoZXJlCj4+ID4gYXJlIG5vIHJlYWwgZG9jcyBhbnltb3JlIGFmdGVyIGNvbmZpZ2RiIHZhbmlz aGVkLCBzbyB0aGUgb25seQo+PiA+IHJlZmVyZW5jZSBpcyB0aGUgcHVibGljIENURyBHTUNIIHNw ZWMuIFdoYXQgYml0cyBhcmUgbGlzdGVkIGluCj4+ID4gdGhhdCBkb2MgbWF0Y2ggb3VyIGNvZGUu IFRoZSBFTEsgR01DSCBzcGVjIGhhdmUgbm8gcmVsZXZhbnQKPj4gPiBkZXRhaWxzIHVuZm9ydHVu YXRlbHkuCj4+ID4KPj4gPiBUaGUgUE5WIHNpdHVhdGlvbiBpcyBsZXNzIGNsZWFyLiBTdGFydGlu ZyBmcm9tCj4+ID4gY29tbWl0IGFhMTdjZGI0ZjgzNiAoImRybS9pOTE1OiBpbml0aWFsaXplIGJh Y2tsaWdodCBtYXggZnJvbSBWQlQiKQo+PiA+IHdlIGFzc3VtZSB0aGF0IHRoZSBDVEcvRUxLIGhy YXdjbGsgcmVhZG91dCB3b3JrcyBmb3IgUE5WIGFzIHdlbGwuCj4+ID4gQXQgbGVhc3QgdGhlIHJl c3VsdHMgKnNlZW0qIHJlYXNvbmFibGUgZm9yIG9uZSBQTlYgbWFjaGluZSAoTGVub3ZvCj4+ID4g SWRlYXBhZCBTMTAtM3QpLiBTYWRseSB0aGUgUE5WIEdNQ0ggc3BlYyBkb2Vzbid0IGhhdmUgdGhl IGdvb2RzIG9uCj4+ID4gdGhlIHJlbGV2YW50IHJlZ2lzdGVyIGVpdGhlci4KPj4gPgo+PiA+IFNv IGxldCdzIGtlZXAgYXNzdW1pbmcgaXQgd29ya3MgZm9yIFBOVixFTEssQ1RHIGFuZCByZWFkIGl0 IG91dCBvbgo+PiA+IHRob3NlIHBsYXRmb3Jtcy4gRzMzIGFsc28gaGFzIGhyYXdjbGsgYWNjb3Jk aW5nIHRvIHNvbWUgbm90ZXMKPj4gPiBpbiBCU3BlYywgYnV0IHdlIGRvbid0IGFjdHVhbGx5IG5l ZWQgaXQgZm9yIGFueXRoaW5nLCBzbyBsZXQncyBub3QKPj4gPiBldmVuIHRyeSB0byByZWFkIGl0 IG91dCB0aGVyZS4KPj4gCj4+IExvb2tzIHNlbnNpYmxlIGJ1dCBtb2RlcmF0ZWx5IHNjYXJ5LCBk aWQgbm90IHJldmlldyBwcm9wZXJseSB5ZXQsCj4+IGhvd2V2ZXIgYSBmZXcgbml0cGlja3MgYmVs b3cuCj4+IAo+PiA+Cj4+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgIHwgIDEgKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgfCA1NSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgMTYgKysrKystLS0tLS0K Pj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDIgLS0KPj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyAgIHwgMjQgKysrKysrKystLS0tLS0t LQo+PiA+ICA1IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygt KQo+PiA+Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ID4gaW5kZXggOWFiM2UyNWRkZjM4 Li42NGZhY2Q0MTAwMzcgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gPiBA QCAtMTc4MSw2ICsxNzgxLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+PiA+ICAJdW5z aWduZWQgaW50IHNrbF9ib290X2NkY2xrOwo+PiA+ICAJdW5zaWduZWQgaW50IGNkY2xrX2ZyZXEs IG1heF9jZGNsa19mcmVxOwo+PiA+ICAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJlcTsKPj4g PiArCXVuc2lnbmVkIGludCByYXdjbGtfZnJlcTsKPj4gPiAgCXVuc2lnbmVkIGludCBocGxsX2Zy ZXE7Cj4+ID4gIAl1bnNpZ25lZCBpbnQgY3pjbGtfZnJlcTsKPj4gPiAgCj4+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiA+IGluZGV4IDg0Mzk1YzhjOWRjZS4uODRhMTM1OWVj YmE1IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiA+IEBA IC0xNjgsNDkgKzE2OCw2MSBAQCBzdGF0aWMgaW50IHZsdl9nZXRfY2NrX2Nsb2NrX2hwbGwoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiA+ICAJcmV0dXJuIERJVl9ST1VORF9D TE9TRVNUKGRldl9wcml2LT5ocGxsX2ZyZXEgPDwgMSwgZGl2aWRlciArIDEpOwo+PiA+ICB9Cj4+ ID4gIAo+PiA+IC1pbnQKPj4gPiAtaW50ZWxfcGNoX3Jhd2NsayhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+PiA+ICtzdGF0aWMgaW50Cj4+ID4gK2ludGVsX3BjaF9yYXdjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAKPj4gSSBndWVzcyBpbnRlbF8gcHJlZml4IHdvdWxk IG5vdCBiZSBuZWVkZWQgYW55bW9yZS4gKnNocnVnKi4KPgo+IFllYWgsIGxhenluZXNzIHdvbiBh bmQgSSBkaWRuJ3Qgc3RhcnQgcmVuYW1pbmcgc3R1ZmYgdG9vIG11Y2guCgpObyB3b3JyaWVzLgoK Pgo+PiAKPj4gPiAgewo+PiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPj4gPiAtCj4+ID4gLQlXQVJOX09OKCFIQVNfUENIX1NQTElUKGRl dikpOwo+PiA+ICsJcmV0dXJuIChJOTE1X1JFQUQoUENIX1JBV0NMS19GUkVRKSAmIFJBV0NMS19G UkVRX01BU0spICogMTAwMDsKPj4gPiArfQo+PiA+ICAKPj4gPiAtCXJldHVybiBJOTE1X1JFQUQo UENIX1JBV0NMS19GUkVRKSAmIFJBV0NMS19GUkVRX01BU0s7Cj4+ID4gK3N0YXRpYyBpbnQKPj4g PiAraW50ZWxfdmx2X2hyYXdjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ PiA+ICt7Cj4+ID4gKwlyZXR1cm4gMjAwMDAwOwo+PiA+ICB9Cj4+ID4gIAo+PiA+IC0vKiBocmF3 Y2xvY2sgaXMgMS80IHRoZSBGU0IgZnJlcXVlbmN5ICovCj4+ID4gLWludCBpbnRlbF9ocmF3Y2xr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ID4gK3N0YXRpYyBpbnQKPj4gPiAraW50ZWxfZzR4 X2hyYXdjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiA+ICB7Cj4+ID4g LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ PiA+ICAJdWludDMyX3QgY2xrY2ZnOwo+PiA+ICAKPj4gPiAtCS8qIFRoZXJlIGlzIG5vIENMS0NG RyByZWcgaW4gVmFsbGV5dmlldy4gVkxWIGhyYXdjbGsgaXMgMjAwIE1IeiAqLwo+PiA+IC0JaWYg KElTX1ZBTExFWVZJRVcoZGV2KSkKPj4gPiAtCQlyZXR1cm4gMjAwOwo+PiA+IC0KPj4gPiArCS8q IGhyYXdjbG9jayBpcyAxLzQgdGhlIEZTQiBmcmVxdWVuY3kgKi8KPj4gPiAgCWNsa2NmZyA9IEk5 MTVfUkVBRChDTEtDRkcpOwo+PiA+ICAJc3dpdGNoIChjbGtjZmcgJiBDTEtDRkdfRlNCX01BU0sp IHsKPj4gPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl80MDA6Cj4+ID4gLQkJcmV0dXJuIDEwMDsKPj4gPiAr CQlyZXR1cm4gMTAwMDAwOwo+PiA+ICAJY2FzZSBDTEtDRkdfRlNCXzUzMzoKPj4gPiAtCQlyZXR1 cm4gMTMzOwo+PiA+ICsJCXJldHVybiAxMzMzMzM7Cj4+ID4gIAljYXNlIENMS0NGR19GU0JfNjY3 Ogo+PiA+IC0JCXJldHVybiAxNjY7Cj4+ID4gKwkJcmV0dXJuIDE2NjY2NzsKPj4gPiAgCWNhc2Ug Q0xLQ0ZHX0ZTQl84MDA6Cj4+ID4gLQkJcmV0dXJuIDIwMDsKPj4gPiArCQlyZXR1cm4gMjAwMDAw Owo+PiA+ICAJY2FzZSBDTEtDRkdfRlNCXzEwNjc6Cj4+ID4gLQkJcmV0dXJuIDI2NjsKPj4gPiAr CQlyZXR1cm4gMjY2NjY3Owo+PiA+ICAJY2FzZSBDTEtDRkdfRlNCXzEzMzM6Cj4+ID4gLQkJcmV0 dXJuIDMzMzsKPj4gPiArCQlyZXR1cm4gMzMzMzMzOwo+PiA+ICAJLyogdGhlc2UgdHdvIGFyZSBq dXN0IGEgZ3Vlc3M7IG9uZSBvZiB0aGVtIG1pZ2h0IGJlIHJpZ2h0ICovCj4+ID4gIAljYXNlIENM S0NGR19GU0JfMTYwMDoKPj4gPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl8xNjAwX0FMVDoKPj4gPiAtCQly ZXR1cm4gNDAwOwo+PiA+ICsJCXJldHVybiA0MDAwMDA7Cj4+ID4gIAlkZWZhdWx0Ogo+PiA+IC0J CXJldHVybiAxMzM7Cj4+ID4gKwkJcmV0dXJuIDEzMzMzMzsKPj4gPiAgCX0KPj4gPiAgfQo+PiA+ ICAKPj4gPiArc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3Jhd2NsayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4+ID4gK3sKPj4gPiArCWlmIChIQVNfUENIX1NQTElUKGRldl9w cml2KSkKPj4gPiArCQlkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEgPSBpbnRlbF9wY2hfcmF3Y2xrKGRl dl9wcml2KTsKPj4gPiArCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKQo+PiA+ICsJ CWRldl9wcml2LT5yYXdjbGtfZnJlcSA9IGludGVsX3Zsdl9ocmF3Y2xrKGRldl9wcml2KTsKPj4g PiArCWVsc2UgaWYgKElTX0c0WChkZXZfcHJpdikgfHwgSVNfUElORVZJRVcoZGV2X3ByaXYpKQo+ PiA+ICsJCWRldl9wcml2LT5yYXdjbGtfZnJlcSA9IGludGVsX2c0eF9ocmF3Y2xrKGRldl9wcml2 KTsKPj4gPiArCWVsc2UKPj4gPiArCQlyZXR1cm47IC8qIG5vIHJhd2NsayBvbiBvdGhlciBwbGF0 Zm9ybXMsIG9yIG5vIG5lZWQgdG8ga25vdyBpdCAqLwo+PiA+ICsKPj4gPiArCURSTV9ERUJVR19E UklWRVIoInJhd2NsayByYXRlOiAlZCBrSHpcbiIsIGRldl9wcml2LT5yYXdjbGtfZnJlcSk7Cj4+ ID4gK30KPj4gPiArCj4+ID4gIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jemNsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ID4gIHsKPj4gPiAgCWlmICghSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikpCj4+ID4gQEAgLTE1MTQ1LDYgKzE1MTU3LDcgQEAgdm9pZCBpbnRlbF9t b2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gPiAgCX0KPj4gPiAgCj4+ID4g IAlpbnRlbF91cGRhdGVfY3pjbGsoZGV2X3ByaXYpOwo+PiA+ICsJaW50ZWxfdXBkYXRlX3Jhd2Ns ayhkZXZfcHJpdik7Cj4+ID4gIAlpbnRlbF91cGRhdGVfY2RjbGsoZGV2KTsKPj4gPiAgCj4+ID4g IAlpbnRlbF9zaGFyZWRfZHBsbF9pbml0KGRldik7Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4+ID4gaW5kZXggZjMzNWM5MmI0ZmE3Li4yYTliNTcxMGVlODMgMTAwNjQ0Cj4+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPj4gPiBAQCAtNjc1LDEzICs2NzUsMTMgQEAgaW50ZWxfZHBfYXV4 X3dhaXRfZG9uZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIGhhc19hdXhfaXJxKQo+ PiA+ICBzdGF0aWMgdWludDMyX3QgaTl4eF9nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwgaW50IGluZGV4KQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsK Pj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNl LmRldjsKPj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+PiA+ICAKPj4gPiAgCS8qCj4+ID4gIAkg KiBUaGUgY2xvY2sgZGl2aWRlciBpcyBiYXNlZCBvZmYgdGhlIGhyYXdjbGssIGFuZCB3b3VsZCBs aWtlIHRvIHJ1biBhdAo+PiA+ICAJICogMk1Iei4gIFNvLCB0YWtlIHRoZSBocmF3Y2xrIHZhbHVl IGFuZCBkaXZpZGUgYnkgMiBhbmQgdXNlIHRoYXQKPj4gPiAgCSAqLwo+PiAKPj4gVGhlIGNvbW1l bnQgbmVlZHMgdXBkYXRpbmcuIFBvc3NpYmx5IGVsc2V3aGVyZSB0b28gb3V0c2lkZSBvZiBwYXRj aAo+PiBjb250ZXh0Lgo+Cj4gVGhhdCdzIGJlaW5nIGRvbmUgaW4gcGF0Y2ggMTEvMTEuIEkgYXNz dW1lIHRoYXQncyBnb29kIGVub3VnaCBwbGFjZSBmb3IKPiB5b3U/CgpZZXMuCgo+Cj4+IAo+PiA+ IC0JcmV0dXJuIGluZGV4ID8gMCA6IERJVl9ST1VORF9DTE9TRVNUKGludGVsX2hyYXdjbGsoZGV2 KSwgMik7Cj4+ID4gKwlyZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NFU1QoZGV2X3By aXYtPnJhd2Nsa19mcmVxLCAyMDAwKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGljIHVpbnQz Ml90IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwg aW50IGluZGV4KQo+PiA+IEBAIC02OTMsMTIgKzY5MywxMCBAQCBzdGF0aWMgdWludDMyX3QgaWxr X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5k ZXgpCj4+ID4gIAlpZiAoaW5kZXgpCj4+ID4gIAkJcmV0dXJuIDA7Cj4+ID4gIAo+PiA+IC0JaWYg KGludGVsX2RpZ19wb3J0LT5wb3J0ID09IFBPUlRfQSkgewo+PiA+ICsJaWYgKGludGVsX2RpZ19w b3J0LT5wb3J0ID09IFBPUlRfQSkKPj4gPiAgCQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoZGV2 X3ByaXYtPmNkY2xrX2ZyZXEsIDIwMDApOwo+PiA+IC0KPj4gPiAtCX0gZWxzZSB7Cj4+ID4gLQkJ cmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGludGVsX3BjaF9yYXdjbGsoZGV2KSwgMik7Cj4+ID4g LQl9Cj4+ID4gKwllbHNlCj4+ID4gKwkJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2 LT5yYXdjbGtfZnJlcSwgMjAwMCk7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyB1aW50MzJf dCBoc3dfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGlu dCBpbmRleCkKPj4gPiBAQCAtNzE5LDcgKzcxNyw3IEBAIHN0YXRpYyB1aW50MzJfdCBoc3dfZ2V0 X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBpbmRleCkK Pj4gPiAgCQlkZWZhdWx0OiByZXR1cm4gMDsKPj4gPiAgCQl9Cj4+ID4gIAl9IGVsc2UgIHsKPj4g PiAtCQlyZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NFU1QoaW50ZWxfcGNoX3Jhd2Ns ayhkZXYpLCAyKTsKPj4gPiArCQlyZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NFU1Qo ZGV2X3ByaXYtPnJhd2Nsa19mcmVxLCAyMDAwKTsKPj4gPiAgCX0KPj4gPiAgfQo+PiA+ICAKPj4g PiBAQCAtNTIzNyw3ICs1MjM1LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5j ZXJfcmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ID4gIHsKPj4gPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ID4gIAl1 MzIgcHBfb24sIHBwX29mZiwgcHBfZGl2LCBwb3J0X3NlbCA9IDA7Cj4+ID4gLQlpbnQgZGl2ID0g SEFTX1BDSF9TUExJVChkZXYpID8gaW50ZWxfcGNoX3Jhd2NsayhkZXYpIDogaW50ZWxfaHJhd2Ns ayhkZXYpOwo+PiA+ICsJaW50IGRpdiA9IGRldl9wcml2LT5yYXdjbGtfZnJlcSAvIDEwMDA7Cj4K PiBCVFcgaGVyZSBzdGlsbCByb3VuZCBkb3duIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHBvd2VyIHNl cXVlbmNlciBkaXZpc29yLgo+IENvbnNpZGVyaW5nIHRoYXQgb25lIGlzIHVzZWQgdG8gZW5mb3Jj ZSB0aGUgcGFuZWwgcG93ZXIgZGVsYXlzLCBJJ20KPiB0aGlua2luZyB3ZSBzaG91bGQgcmVhbGx5 IHJvdW5kIHVwIHRvIG1ha2Ugc3VyZSB3ZSBuZXZlciBlbmQgdXAgd2l0aCBhCj4gc2hvcnRlciBk ZWxheSB0aGFuIHNwZWNpZmllZC4gQnV0IHRoYXQgZGlzYWdyZWVzIHdpdGggdGhlIGV4YW1wbGVz IGluCj4gdGhlIHNwZWMsIHNvIG5vdCByZWFsbHkgc3VyZSB3aGF0J3MgYmVzdC4KPgo+PiA+ICAJ aTkxNV9yZWdfdCBwcF9vbl9yZWcsIHBwX29mZl9yZWcsIHBwX2Rpdl9yZWcsIHBwX2N0cmxfcmVn Owo+PiA+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7 Cj4+ID4gIAljb25zdCBzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSAqc2VxID0gJmludGVsX2RwLT5wcHNf ZGVsYXlzOwo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ID4gaW5kZXggMWZmZDhkNWMz MjM1Li41NGI2NTk1MTYyMmQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ PiA+IEBAIC0xMDUwLDggKzEwNTAsNiBAQCB2b2lkIGk5MTVfYXVkaW9fY29tcG9uZW50X2NsZWFu dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gPiAgLyogaW50ZWxfZGlz cGxheS5jICovCj4+ID4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVs X3BsYW5lX2Z1bmNzOwo+PiA+ICBib29sIGludGVsX2hhc19wZW5kaW5nX2ZiX3VucGluKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwo+PiA+IC1pbnQgaW50ZWxfcGNoX3Jhd2NsayhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPj4gPiAtaW50IGludGVsX2hyYXdjbGsoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4+ID4gIHZvaWQgaW50ZWxfbWFya19idXN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+PiA+ICB2b2lkIGludGVsX21hcmtfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4g PiAgdm9pZCBpbnRlbF9jcnRjX3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+PiA+IGluZGV4IDg5MWE1ODcyMjVlMi4u YjhjNzhkODg1MzExIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+ ID4gQEAgLTEzMTQsOCArMTMxNCw4IEBAIHN0YXRpYyB1MzIgbHB0X2h6X3RvX3B3bShzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPj4gPiAgICovCj4+ ID4gIHN0YXRpYyB1MzIgcGNoX2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPj4gPiAgewo+PiA+IC0Jc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4+ID4gLQlpbnQgY2xvY2sgPSBNSHooaW50ZWxf cGNoX3Jhd2NsayhkZXYpKTsKPj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4+ID4gKwlpbnQgY2xvY2sgPSAxMDAw ICogZGV2X3ByaXYtPnJhd2Nsa19mcmVxOwo+PiA+ICAKPj4gPiAgCXJldHVybiBjbG9jayAvIChw d21fZnJlcV9oeiAqIDEyOCk7Cj4+IAo+PiBDb3VsZCB1c2U6Cj4+IAo+PiAJcmV0dXJuIEtIeihk ZXZfcHJpdi0+cmF3Y2xrX2ZyZXEpIC8gKHB3bV9mcmVxX2h6ICogMTI4KTsKPj4gCj4+IFNhbWUg dGhpbmcgYWxsIGFyb3VuZC4KPgo+IEkgY2FuIHJlc3BpbiB3aXRoIHRoYXQuCgpZb3UgY2FuIGNo b29zZSB0byByZXNwaW4sIG9yIHRvIHdhaXQgdW50aWwgSSBnZXQgYXJvdW5kIHRvIGFjdHVhbGx5 CnJldmlld2luZyB0aGUgcGF0Y2ggaW5zdGVhZCBvZiBqdXN0IGJpa2VzaGVkZGluZy4gOykKCkJS LApKYW5pLgoKPgo+PiAKPj4gU2lkZSBub3RlLCBtYXliZSB0aGVzZSBzaG91bGQgYWxzbyByb3Vu ZCBjbG9zZXN0IChmb2xsb3ctdXApLgo+Cj4gSG1tLiBZZWFoLCBJIGd1ZXNzIGNsb3Nlc3Qgd291 bGQgYmUgd2FycmFudGVkIGZvciBQV00uCj4KPj4gCj4+IAo+PiA+ICB9Cj4+ID4gQEAgLTEzMzAs MTIgKzEzMzAsMTEgQEAgc3RhdGljIHUzMiBwY2hfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+PiA+ICAgKi8KPj4gPiAgc3RhdGlj IHUzMiBpOXh4X2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUz MiBwd21fZnJlcV9oeikKPj4gPiAgewo+PiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNv bm5lY3Rvci0+YmFzZS5kZXY7Cj4+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPj4gPiAgCWludCBjbG9jazsK Pj4gPiAgCj4+ID4gLQlpZiAoSVNfUElORVZJRVcoZGV2KSkKPj4gPiAtCQljbG9jayA9IE1Ieihp bnRlbF9ocmF3Y2xrKGRldikpOwo+PiA+ICsJaWYgKElTX1BJTkVWSUVXKGRldl9wcml2KSkKPj4g PiArCQljbG9jayA9IDEwMDAgKiBkZXZfcHJpdi0+cmF3Y2xrX2ZyZXE7Cj4+ID4gIAllbHNlCj4+ ID4gIAkJY2xvY2sgPSAxMDAwICogZGV2X3ByaXYtPmNkY2xrX2ZyZXE7Cj4+ID4gIAo+PiA+IEBA IC0xMzU0LDcgKzEzNTMsNyBAQCBzdGF0aWMgdTMyIGk5NjVfaHpfdG9fcHdtKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+PiA+ICAJaW50IGNsb2Nr Owo+PiA+ICAKPj4gPiAgCWlmIChJU19HNFgoZGV2X3ByaXYpKQo+PiA+IC0JCWNsb2NrID0gTUh6 KGludGVsX2hyYXdjbGsoZGV2KSk7Cj4+ID4gKwkJY2xvY2sgPSAxMDAwICogZGV2X3ByaXYtPnJh d2Nsa19mcmVxOwo+PiA+ICAJZWxzZQo+PiA+ICAJCWNsb2NrID0gMTAwMCAqIGRldl9wcml2LT5j ZGNsa19mcmVxOwo+PiA+ICAKPj4gPiBAQCAtMTM2OCwxOCArMTM2NywxNyBAQCBzdGF0aWMgdTMy IGk5NjVfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3 bV9mcmVxX2h6KQo+PiA+ICAgKi8KPj4gPiAgc3RhdGljIHUzMiB2bHZfaHpfdG9fcHdtKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+PiA+ICB7Cj4+ ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ ID4gLQlpbnQgY2xvY2s7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+PiA+ICAKPj4gPiAgCWlmICgoSTkxNV9S RUFEKENCUjFfVkxWKSAmIENCUl9QV01fQ0xPQ0tfTVVYX1NFTEVDVCkgPT0gMCkgewo+PiA+IC0J CWlmIChJU19DSEVSUllWSUVXKGRldikpCj4+ID4gKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3By aXYpKQo+PiA+ICAJCQlyZXR1cm4gS0h6KDE5MjAwKSAvIChwd21fZnJlcV9oeiAqIDE2KTsKPj4g PiAgCQllbHNlCj4+ID4gIAkJCXJldHVybiBNSHooMjUpIC8gKHB3bV9mcmVxX2h6ICogMTYpOwo+ PiA+ICAJfSBlbHNlIHsKPj4gPiAtCQljbG9jayA9IGludGVsX2hyYXdjbGsoZGV2KTsKPj4gPiAt CQlyZXR1cm4gTUh6KGNsb2NrKSAvIChwd21fZnJlcV9oeiAqIDEyOCk7Cj4+ID4gKwkJaW50IGNs b2NrID0gMTAwMCAqIGRldl9wcml2LT5yYXdjbGtfZnJlcTsKPj4gPiArCj4+ID4gKwkJcmV0dXJu IGNsb2NrIC8gKHB3bV9mcmVxX2h6ICogMTI4KTsKPj4gPiAgCX0KPj4gPiAgfQo+PiAKPj4gLS0g Cj4+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0g CkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=