From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 1/6] drm/i915: Store rawclk_freq in dev_priv Date: Thu, 3 Mar 2016 12:59:40 +0200 Message-ID: <20160303105940.GB10446@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> <87k2lkrlqt.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 613DB6E0C1 for ; Thu, 3 Mar 2016 10:59:43 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87k2lkrlqt.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-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMDMsIDIwMTYgYXQgMTA6NDc6MzhBTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gV2VkLCAwMiBNYXIgMjAxNiwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20g d3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+ID4KPiA+IEdlbmVyYWxpemUgcmF3Y2xrIGhhbmRsaW5nIGJ5IHN0b3JpbmcgaXQg aW4gZGV2X3ByaXYuCj4gPgo+ID4gUHJlc3VtYWJseSBvdXIgaHJhd2NsayByZWFkb3V0IHdvcmtz IGF0IGxlYXN0IGZvciBDVEcgYW5kIEVMSwo+ID4gc2luY2Ugd2UndmUgYmVlbiB1c2luZyBpdCBm b3IgRFAgQVVYIG9uIHRob3NlIHBsYXRmb3Jtcy4gVGhlcmUKPiA+IGFyZSBubyByZWFsIGRvY3Mg YW55bW9yZSBhZnRlciBjb25maWdkYiB2YW5pc2hlZCwgc28gdGhlIG9ubHkKPiA+IHJlZmVyZW5j ZSBpcyB0aGUgcHVibGljIENURyBHTUNIIHNwZWMuIFdoYXQgYml0cyBhcmUgbGlzdGVkIGluCj4g PiB0aGF0IGRvYyBtYXRjaCBvdXIgY29kZS4gVGhlIEVMSyBHTUNIIHNwZWMgaGF2ZSBubyByZWxl dmFudAo+ID4gZGV0YWlscyB1bmZvcnR1bmF0ZWx5Lgo+ID4KPiA+IFRoZSBQTlYgc2l0dWF0aW9u IGlzIGxlc3MgY2xlYXIuIFN0YXJ0aW5nIGZyb20KPiA+IGNvbW1pdCBhYTE3Y2RiNGY4MzYgKCJk cm0vaTkxNTogaW5pdGlhbGl6ZSBiYWNrbGlnaHQgbWF4IGZyb20gVkJUIikKPiA+IHdlIGFzc3Vt ZSB0aGF0IHRoZSBDVEcvRUxLIGhyYXdjbGsgcmVhZG91dCB3b3JrcyBmb3IgUE5WIGFzIHdlbGwu Cj4gPiBBdCBsZWFzdCB0aGUgcmVzdWx0cyAqc2VlbSogcmVhc29uYWJsZSBmb3Igb25lIFBOViBt YWNoaW5lIChMZW5vdm8KPiA+IElkZWFwYWQgUzEwLTN0KS4gU2FkbHkgdGhlIFBOViBHTUNIIHNw ZWMgZG9lc24ndCBoYXZlIHRoZSBnb29kcyBvbgo+ID4gdGhlIHJlbGV2YW50IHJlZ2lzdGVyIGVp dGhlci4KPiA+Cj4gPiBTbyBsZXQncyBrZWVwIGFzc3VtaW5nIGl0IHdvcmtzIGZvciBQTlYsRUxL LENURyBhbmQgcmVhZCBpdCBvdXQgb24KPiA+IHRob3NlIHBsYXRmb3Jtcy4gRzMzIGFsc28gaGFz IGhyYXdjbGsgYWNjb3JkaW5nIHRvIHNvbWUgbm90ZXMKPiA+IGluIEJTcGVjLCBidXQgd2UgZG9u J3QgYWN0dWFsbHkgbmVlZCBpdCBmb3IgYW55dGhpbmcsIHNvIGxldCdzIG5vdAo+ID4gZXZlbiB0 cnkgdG8gcmVhZCBpdCBvdXQgdGhlcmUuCj4gCj4gV2hpbGUgdGhlIGFib3ZlIGlzIHVzZWZ1bCBp bmZvcm1hdGlvbiwgSSBkb24ndCB0aGluayBpdCdzIHNwZWNpZmljYWxseQo+IHJlbGF0ZWQgdG8g dGhlIGNoYW5nZXMgaW4gdGhpcyBwYXRjaC4gVGhlIG9ubHkgdGhpbmcgdGhhdCBjaGFuZ2VzIGhl cmUKPiBpcyB0aGF0IHRoZSByYXdjbGsgaXMgcmVhZCBhbmQgc3RvcmVkIG9uY2UsIGluc3RlYWQg b2YgYmVpbmcgcmVhZCBldmVyeQo+IHRpbWUuCgpTdXJlLiBCdXQgSSB3YW50ZWQgdGhvc2UgY29u c2lkZXJhdGlvbnMgb24gc29tZSByZWNvcmQgaW4gY2FzZSBzb21lb25lCmV2ZXIgd29uZGVycyBh Ym91dCB0aGlzIGNvZGUuCgo+IAo+IFRoZXJlIGFyZSBhIGZldyBuaXRwaWNrcyBiZWxvdywgYnV0 IEkgZG9uJ3QgaW5zaXN0IG9uIGRvaW5nIGFueXRoaW5nCj4gd2l0aCB0aGVtLgo+IAo+IFJldmll d2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+IAo+ID4KPiA+IHYy OiBSZWJhc2UgZHVlIHRvIElTX1ZBTExZVklFVyB2cy4gSVNfQ0hFUlJZVklFVyBzcGxpdAo+ID4g ICAgIFVzZSBLSHooKSBhbGwgb3ZlciwgYW5kIGtpbGwgb2ZmIGEgZmV3IHVzZWxlc3MgdGVtcCB2 YXJpYWJsZXMKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgIHwgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8IDU1ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE2ICsrKysrLS0tLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDIgLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAgfCA0MiArKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9u cygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggMmNiMGE0MTFjMTBl Li5iMGU3ZjM1YThiZTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAt MTgzNyw2ICsxODM3LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gIAl1bnNpZ25l ZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4gPiAgCXVuc2lnbmVkIGludCBjZGNsa19mcmVxLCBtYXhf Y2RjbGtfZnJlcSwgYXRvbWljX2NkY2xrX2ZyZXE7Cj4gPiAgCXVuc2lnbmVkIGludCBtYXhfZG90 Y2xrX2ZyZXE7Cj4gPiArCXVuc2lnbmVkIGludCByYXdjbGtfZnJlcTsKPiA+ICAJdW5zaWduZWQg aW50IGhwbGxfZnJlcTsKPiA+ICAJdW5zaWduZWQgaW50IGN6Y2xrX2ZyZXE7Cj4gPiAgCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA0NGZjZmYwMzQzZjIuLjMz MDUyOGMxZmIyOCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiBAQCAtMTY5LDQ5ICsxNjksNjEgQEAgc3RhdGljIGludCB2bHZfZ2V0X2Nja19jbG9ja19ocGxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJcmV0dXJuIERJVl9ST1VO RF9DTE9TRVNUKGRldl9wcml2LT5ocGxsX2ZyZXEgPDwgMSwgZGl2aWRlciArIDEpOwo+ID4gIH0K PiA+ICAKPiA+IC1pbnQKPiA+IC1pbnRlbF9wY2hfcmF3Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gPiArc3RhdGljIGludAo+ID4gK2ludGVsX3BjaF9yYXdjbGsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+IAo+IE5vdyB0aGF0IHlvdSBtYWtlIHRoZXNlIHN0YXRpYywg aXQgZmVlbHMgYSBiaXQgc2lsbHkgdG8gaGF2ZSBib3RoIGludGVsCj4gYW5kIHBsYXRmb3JtIGlu IHRoZSBuYW1lLiBCdXQgbWVoLCBubyBuZWVkIHRvIHJlc2VuZCBvdmVyIHRoYXQuCgpZZWFoLCB5 b3UgY29tbWVudGVkIG9uIHRoYXQgYmVmb3JlIHRvbyBJIHRoaW5rLCBhbmQgSSBqdXN0IGZvcmdv dCB0bwpjaGFuZ2UgaXQgd2hlbiBJIHJlYWxpemVkIEkgc2hvdWxkIHJlc2VuZC4KCj4gCj4gPiAg ewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ID4gLQo+ID4gLQlXQVJOX09OKCFIQVNfUENIX1NQTElUKGRldikpOwo+ID4gKwlyZXR1 cm4gKEk5MTVfUkVBRChQQ0hfUkFXQ0xLX0ZSRVEpICYgUkFXQ0xLX0ZSRVFfTUFTSykgKiAxMDAw Owo+ID4gK30KPiA+ICAKPiA+IC0JcmV0dXJuIEk5MTVfUkVBRChQQ0hfUkFXQ0xLX0ZSRVEpICYg UkFXQ0xLX0ZSRVFfTUFTSzsKPiA+ICtzdGF0aWMgaW50Cj4gPiAraW50ZWxfdmx2X2hyYXdjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gK3sKPiA+ICsJcmV0dXJuIDIw MDAwMDsKPiA+ICB9Cj4gPiAgCj4gPiAtLyogaHJhd2Nsb2NrIGlzIDEvNCB0aGUgRlNCIGZyZXF1 ZW5jeSAqLwo+ID4gLWludCBpbnRlbF9ocmF3Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g PiArc3RhdGljIGludAo+ID4gK2ludGVsX2c0eF9ocmF3Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAgCXVpbnQzMl90IGNsa2NmZzsKPiA+ICAKPiA+ IC0JLyogVGhlcmUgaXMgbm8gQ0xLQ0ZHIHJlZyBpbiBWYWxsZXl2aWV3LiBWTFYgaHJhd2NsayBp cyAyMDAgTUh6ICovCj4gPiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklF VyhkZXYpKQo+ID4gLQkJcmV0dXJuIDIwMDsKPiA+IC0KPiA+ICsJLyogaHJhd2Nsb2NrIGlzIDEv NCB0aGUgRlNCIGZyZXF1ZW5jeSAqLwo+ID4gIAljbGtjZmcgPSBJOTE1X1JFQUQoQ0xLQ0ZHKTsK PiA+ICAJc3dpdGNoIChjbGtjZmcgJiBDTEtDRkdfRlNCX01BU0spIHsKPiA+ICAJY2FzZSBDTEtD RkdfRlNCXzQwMDoKPiA+IC0JCXJldHVybiAxMDA7Cj4gPiArCQlyZXR1cm4gMTAwMDAwOwo+ID4g IAljYXNlIENMS0NGR19GU0JfNTMzOgo+ID4gLQkJcmV0dXJuIDEzMzsKPiA+ICsJCXJldHVybiAx MzMzMzM7Cj4gPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl82Njc6Cj4gPiAtCQlyZXR1cm4gMTY2Owo+ID4g KwkJcmV0dXJuIDE2NjY2NzsKPiA+ICAJY2FzZSBDTEtDRkdfRlNCXzgwMDoKPiA+IC0JCXJldHVy biAyMDA7Cj4gPiArCQlyZXR1cm4gMjAwMDAwOwo+ID4gIAljYXNlIENMS0NGR19GU0JfMTA2NzoK PiA+IC0JCXJldHVybiAyNjY7Cj4gPiArCQlyZXR1cm4gMjY2NjY3Owo+ID4gIAljYXNlIENMS0NG R19GU0JfMTMzMzoKPiA+IC0JCXJldHVybiAzMzM7Cj4gPiArCQlyZXR1cm4gMzMzMzMzOwo+ID4g IAkvKiB0aGVzZSB0d28gYXJlIGp1c3QgYSBndWVzczsgb25lIG9mIHRoZW0gbWlnaHQgYmUgcmln aHQgKi8KPiA+ICAJY2FzZSBDTEtDRkdfRlNCXzE2MDA6Cj4gPiAgCWNhc2UgQ0xLQ0ZHX0ZTQl8x NjAwX0FMVDoKPiA+IC0JCXJldHVybiA0MDA7Cj4gPiArCQlyZXR1cm4gNDAwMDAwOwo+ID4gIAlk ZWZhdWx0Ogo+ID4gLQkJcmV0dXJuIDEzMzsKPiA+ICsJCXJldHVybiAxMzMzMzM7Cj4gPiAgCX0K PiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3Jhd2NsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiArewo+ID4gKwlpZiAoSEFTX1BDSF9TUExJ VChkZXZfcHJpdikpCj4gPiArCQlkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEgPSBpbnRlbF9wY2hfcmF3 Y2xrKGRldl9wcml2KTsKPiA+ICsJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwg SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gPiArCQlkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEgPSBp bnRlbF92bHZfaHJhd2NsayhkZXZfcHJpdik7Cj4gPiArCWVsc2UgaWYgKElTX0c0WChkZXZfcHJp dikgfHwgSVNfUElORVZJRVcoZGV2X3ByaXYpKQo+ID4gKwkJZGV2X3ByaXYtPnJhd2Nsa19mcmVx ID0gaW50ZWxfZzR4X2hyYXdjbGsoZGV2X3ByaXYpOwo+ID4gKwllbHNlCj4gPiArCQlyZXR1cm47 IC8qIG5vIHJhd2NsayBvbiBvdGhlciBwbGF0Zm9ybXMsIG9yIG5vIG5lZWQgdG8ga25vdyBpdCAq Lwo+ID4gKwo+ID4gKwlEUk1fREVCVUdfRFJJVkVSKCJyYXdjbGsgcmF0ZTogJWQga0h6XG4iLCBk ZXZfcHJpdi0+cmF3Y2xrX2ZyZXEpOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBpbnRl bF91cGRhdGVfY3pjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIHsK PiA+ICAJaWYgKCEoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpKQo+ID4gQEAgLTE1NjE3LDYgKzE1NjI5LDcgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJfQo+ID4gIAo+ID4gIAlpbnRlbF91cGRh dGVfY3pjbGsoZGV2X3ByaXYpOwo+ID4gKwlpbnRlbF91cGRhdGVfcmF3Y2xrKGRldl9wcml2KTsK PiA+ICAJaW50ZWxfdXBkYXRlX2NkY2xrKGRldik7Cj4gPiAgCj4gPiAgCWludGVsX3NoYXJlZF9k cGxsX2luaXQoZGV2KTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggZjI3MmIz NTQxZTAwLi42YWZkZmE3MjA5NzQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g PiBAQCAtNjc0LDEzICs2NzQsMTMgQEAgaW50ZWxfZHBfYXV4X3dhaXRfZG9uZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCBib29sIGhhc19hdXhfaXJxKQo+ID4gIHN0YXRpYyB1aW50MzJfdCBp OXh4X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQg aW5kZXgpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2Uu ZGV2KTsKPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogVGhlIGNsb2NrIGRpdmlkZXIgaXMgYmFzZWQg b2ZmIHRoZSBocmF3Y2xrLCBhbmQgd291bGQgbGlrZSB0byBydW4gYXQKPiA+ICAJICogMk1Iei4g IFNvLCB0YWtlIHRoZSBocmF3Y2xrIHZhbHVlIGFuZCBkaXZpZGUgYnkgMiBhbmQgdXNlIHRoYXQK PiA+ICAJICovCj4gCj4gWW91IGZvcmdldCB0byBmaXggdGhlIGNvbW1lbnQgaGVyZSwgYnV0IEkg c2VlIHRoYXQgeW91IGZpeCBpdCBpbiBhIGxhdGVyCj4gcGF0Y2guLi4gKFlvdSBrbm93IEknbSBq dXN0IGNvbW1lbnRpbmcgdG8gc2hvdyB0aGF0IEkndmUgYWN0dWFsbHkgcmVhZAo+IHRoZSBwYXRj aCBwcm9wZXJseS4gOykKCkkgdGhpbmsgeW91IGhhZCB0aGUgZXhhY3Qgc2FtZSBjb21tZW50IGxh c3QgdGltZSBhcm91bmQgOikKCj4gCj4gPiAtCXJldHVybiBpbmRleCA/IDAgOiBESVZfUk9VTkRf Q0xPU0VTVChpbnRlbF9ocmF3Y2xrKGRldiksIDIpOwo+ID4gKwlyZXR1cm4gaW5kZXggPyAwIDog RElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPnJhd2Nsa19mcmVxLCAyMDAwKTsKPiA+ICB9Cj4g PiAgCj4gPiAgc3RhdGljIHVpbnQzMl90IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgaW50IGluZGV4KQo+ID4gQEAgLTY5MiwxMiArNjkyLDEwIEBA IHN0YXRpYyB1aW50MzJfdCBpbGtfZ2V0X2F1eF9jbG9ja19kaXZpZGVyKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiA+ICAJaWYgKGluZGV4KQo+ID4gIAkJcmV0dXJuIDA7 Cj4gPiAgCj4gPiAtCWlmIChpbnRlbF9kaWdfcG9ydC0+cG9ydCA9PSBQT1JUX0EpIHsKPiA+ICsJ aWYgKGludGVsX2RpZ19wb3J0LT5wb3J0ID09IFBPUlRfQSkKPiA+ICAJCXJldHVybiBESVZfUk9V TkRfQ0xPU0VTVChkZXZfcHJpdi0+Y2RjbGtfZnJlcSwgMjAwMCk7Cj4gPiAtCj4gPiAtCX0gZWxz ZSB7Cj4gPiAtCQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoaW50ZWxfcGNoX3Jhd2NsayhkZXYp LCAyKTsKPiA+IC0JfQo+ID4gKwllbHNlCj4gPiArCQlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1Qo ZGV2X3ByaXYtPnJhd2Nsa19mcmVxLCAyMDAwKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHVp bnQzMl90IGhzd19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwgaW50IGluZGV4KQo+ID4gQEAgLTcxOCw3ICs3MTYsNyBAQCBzdGF0aWMgdWludDMyX3QgaHN3 X2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5k ZXgpCj4gPiAgCQlkZWZhdWx0OiByZXR1cm4gMDsKPiA+ICAJCX0KPiA+ICAJfSBlbHNlICB7Cj4g PiAtCQlyZXR1cm4gaW5kZXggPyAwIDogRElWX1JPVU5EX0NMT1NFU1QoaW50ZWxfcGNoX3Jhd2Ns ayhkZXYpLCAyKTsKPiA+ICsJCXJldHVybiBpbmRleCA/IDAgOiBESVZfUk9VTkRfQ0xPU0VTVChk ZXZfcHJpdi0+cmF3Y2xrX2ZyZXEsIDIwMDApOwo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gQEAg LTUyNTQsNyArNTI1Miw3IEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3Jl Z2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICAJdTMyIHBwX29u LCBwcF9vZmYsIHBwX2RpdiwgcG9ydF9zZWwgPSAwOwo+ID4gLQlpbnQgZGl2ID0gSEFTX1BDSF9T UExJVChkZXYpID8gaW50ZWxfcGNoX3Jhd2NsayhkZXYpIDogaW50ZWxfaHJhd2NsayhkZXYpOwo+ ID4gKwlpbnQgZGl2ID0gZGV2X3ByaXYtPnJhd2Nsa19mcmVxIC8gMTAwMDsKPiA+ICAJaTkxNV9y ZWdfdCBwcF9vbl9yZWcsIHBwX29mZl9yZWcsIHBwX2Rpdl9yZWcsIHBwX2N0cmxfcmVnOwo+ID4g IAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKPiA+ICAJ Y29uc3Qgc3RydWN0IGVkcF9wb3dlcl9zZXEgKnNlcSA9ICZpbnRlbF9kcC0+cHBzX2RlbGF5czsK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBjYjQxM2UyNDYyNjcuLmU3NDg1 ZWMzNGY2MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTEwODUs OCArMTA4NSw2IEBAIHZvaWQgaTkxNV9hdWRpb19jb21wb25lbnRfY2xlYW51cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNzOwo+ID4gIHVuc2lnbmVkIGludCBpbnRlbF9yb3Rh dGlvbl9pbmZvX3NpemUoY29uc3Qgc3RydWN0IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9pbmZv KTsKPiA+ICBib29sIGludGVsX2hhc19wZW5kaW5nX2ZiX3VucGluKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwo+ID4gLWludCBpbnRlbF9wY2hfcmF3Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+ID4gLWludCBpbnRlbF9ocmF3Y2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIHZv aWQgaW50ZWxfbWFya19idXN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIHZvaWQgaW50 ZWxfbWFya19pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIHZvaWQgaW50ZWxfY3J0 Y19yZXN0b3JlX21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYwo+ID4gaW5kZXggMjFlZTY0NzdiZjk4Li41Y2YzNzc1MDcxNjIgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gPiBAQCAtMTI1MSwxNiArMTI1MSwx NCBAQCBzdGF0aWMgdTMyIGJ4dF9oel90b19wd20oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gPiAgc3RhdGljIHUzMiBzcHRfaHpfdG9fcHdtKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gIHsK PiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0 b3ItPmJhc2UuZGV2KTsKPiA+IC0JdTMyIG11bCwgY2xvY2s7Cj4gPiArCXUzMiBtdWw7Cj4gPiAg Cj4gPiAgCWlmIChJOTE1X1JFQUQoU09VVEhfQ0hJQ0tFTjEpICYgU1BUX1BXTV9HUkFOVUxBUklU WSkKPiA+ICAJCW11bCA9IDEyODsKPiA+ICAJZWxzZQo+ID4gIAkJbXVsID0gMTY7Cj4gPiAgCj4g PiAtCWNsb2NrID0gTUh6KDI0KTsKPiA+IC0KPiA+IC0JcmV0dXJuIGNsb2NrIC8gKHB3bV9mcmVx X2h6ICogbXVsKTsKPiA+ICsJcmV0dXJuIE1IeigyNCkgLyAocHdtX2ZyZXFfaHogKiBtdWwpOwo+ IAo+IFVucmVsYXRlZCBjaGFuZ2UsIHJlYWxseS4KCllvdSBjb21wbGFpbmVkIGFib3V0IHRoaXMg c29ydCBvZiBzdHVmZiBsYXN0IHRpbWUgaW4gdGhlIGZ1bmN0aW9ucyB0aGF0CnVzZWQgcmF3Y2xr L2NkY2xrLCBzbyBhZnRlciBJIGNoYW5nZWQgdGhvc2UgdGhlIGluY29uc2lzdGVuY3kgZHJvdmUg bWUKbWFkIGFuZCBJIGhhZCB0byBjaGFuZ2UgZXZlcnl0aGluZyBlbHNlIGFzIHdlbGwuCgo+IAo+ ID4gIH0KPiA+ICAKPiA+ICAvKgo+ID4gQEAgLTEyOTIsMTAgKzEyOTAsOSBAQCBzdGF0aWMgdTMy IGxwdF9oel90b19wd20oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdt X2ZyZXFfaHopCj4gPiAgICovCj4gPiAgc3RhdGljIHUzMiBwY2hfaHpfdG9fcHdtKHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gIHsKPiA+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gPiAtCWludCBj bG9jayA9IE1IeihpbnRlbF9wY2hfcmF3Y2xrKGRldikpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ID4gIAo+ ID4gLQlyZXR1cm4gY2xvY2sgLyAocHdtX2ZyZXFfaHogKiAxMjgpOwo+ID4gKwlyZXR1cm4gS0h6 KGRldl9wcml2LT5yYXdjbGtfZnJlcSkgLyAocHdtX2ZyZXFfaHogKiAxMjgpOwo+ID4gIH0KPiA+ ICAKPiA+ICAvKgo+ID4gQEAgLTEzMDgsMTQgKzEzMDUsMTMgQEAgc3RhdGljIHUzMiBwY2hfaHpf dG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6 KQo+ID4gICAqLwo+ID4gIHN0YXRpYyB1MzIgaTl4eF9oel90b19wd20oc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gPiAgewo+ID4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiA+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsK PiA+ICAJaW50IGNsb2NrOwo+ID4gIAo+ID4gLQlpZiAoSVNfUElORVZJRVcoZGV2KSkKPiA+IC0J CWNsb2NrID0gTUh6KGludGVsX2hyYXdjbGsoZGV2KSk7Cj4gPiArCWlmIChJU19QSU5FVklFVyhk ZXZfcHJpdikpCj4gPiArCQljbG9jayA9IEtIeihkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEpOwo+ID4g IAllbHNlCj4gPiAtCQljbG9jayA9IDEwMDAgKiBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiA+ICsJ CWNsb2NrID0gS0h6KGRldl9wcml2LT5jZGNsa19mcmVxKTsKPiA+ICAKPiA+ICAJcmV0dXJuIGNs b2NrIC8gKHB3bV9mcmVxX2h6ICogMzIpOwo+ID4gIH0KPiA+IEBAIC0xMzMyLDkgKzEzMjgsOSBA QCBzdGF0aWMgdTMyIGk5NjVfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gIAlpbnQgY2xvY2s7Cj4gPiAgCj4gPiAgCWlmIChJ U19HNFgoZGV2X3ByaXYpKQo+ID4gLQkJY2xvY2sgPSBNSHooaW50ZWxfaHJhd2NsayhkZXYpKTsK PiA+ICsJCWNsb2NrID0gS0h6KGRldl9wcml2LT5yYXdjbGtfZnJlcSk7Cj4gPiAgCWVsc2UKPiA+ IC0JCWNsb2NrID0gMTAwMCAqIGRldl9wcml2LT5jZGNsa19mcmVxOwo+ID4gKwkJY2xvY2sgPSBL SHooZGV2X3ByaXYtPmNkY2xrX2ZyZXEpOwo+ID4gIAo+ID4gIAlyZXR1cm4gY2xvY2sgLyAocHdt X2ZyZXFfaHogKiAxMjgpOwo+ID4gIH0KPiA+IEBAIC0xMzQ2LDE5ICsxMzQyLDIxIEBAIHN0YXRp YyB1MzIgaTk2NV9oel90b19wd20oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1 MzIgcHdtX2ZyZXFfaHopCj4gPiAgICovCj4gPiAgc3RhdGljIHUzMiB2bHZfaHpfdG9fcHdtKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gIHsK PiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g PiAtCWludCBjbG9jazsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiA+ICsJaW50IG11bCwgY2xvY2s7Cj4gPiAg Cj4gPiAgCWlmICgoSTkxNV9SRUFEKENCUjFfVkxWKSAmIENCUl9QV01fQ0xPQ0tfTVVYX1NFTEVD VCkgPT0gMCkgewo+ID4gLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiA+IC0JCQlyZXR1cm4g S0h6KDE5MjAwKSAvIChwd21fZnJlcV9oeiAqIDE2KTsKPiA+ICsJCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkKPiA+ICsJCQljbG9jayA9IEtIeigxOTIwMCk7Cj4gPiAgCQllbHNlCj4gPiAt CQkJcmV0dXJuIE1IeigyNSkgLyAocHdtX2ZyZXFfaHogKiAxNik7Cj4gPiArCQkJY2xvY2sgPSBN SHooMjUpOwo+ID4gKwkJbXVsID0gMTY7Cj4gPiAgCX0gZWxzZSB7Cj4gPiAtCQljbG9jayA9IGlu dGVsX2hyYXdjbGsoZGV2KTsKPiA+IC0JCXJldHVybiBNSHooY2xvY2spIC8gKHB3bV9mcmVxX2h6 ICogMTI4KTsKPiA+ICsJCWNsb2NrID0gS0h6KGRldl9wcml2LT5yYXdjbGtfZnJlcSk7Cj4gPiAr CQltdWwgPSAxMjg7Cj4gPiAgCX0KPiA+ICsKPiA+ICsJcmV0dXJuIGNsb2NrIC8gKHB3bV9mcmVx X2h6ICogbXVsKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHUzMiBnZXRfYmFja2xpZ2h0X21h eF92YnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IAo+IC0tIAo+IEphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==