From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/11] drm/i915: Store rawclk_freq in dev_priv Date: Tue, 1 Dec 2015 15:25:13 +0200 Message-ID: <20151201132513.GV4437@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> 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 67D606E078 for ; Tue, 1 Dec 2015 05:25:16 -0800 (PST) Content-Disposition: inline In-Reply-To: <87oaea49oy.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 T24gVHVlLCBEZWMgMDEsIDIwMTUgYXQgMDI6NDc6NDFQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gTW9uLCAzMCBOb3YgMjAxNSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20g 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 cnkgdG8gcmVhZCBpdCBvdXQgdGhlcmUuCj4gCj4gTG9va3Mgc2Vuc2libGUgYnV0IG1vZGVyYXRl bHkgc2NhcnksIGRpZCBub3QgcmV2aWV3IHByb3Blcmx5IHlldCwKPiBob3dldmVyIGEgZmV3IG5p dHBpY2tzIGJlbG93Lgo+IAo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgMTYgKysrKystLS0t LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiAtLQo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgICB8IDI0ICsrKysrKysrLS0tLS0t LS0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygt KQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggOWFiM2UyNWRkZjM4Li42 NGZhY2Q0MTAwMzcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMTc4 MSw2ICsxNzgxLDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gIAl1bnNpZ25lZCBp bnQgc2tsX2Jvb3RfY2RjbGs7Cj4gPiAgCXVuc2lnbmVkIGludCBjZGNsa19mcmVxLCBtYXhfY2Rj bGtfZnJlcTsKPiA+ICAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJlcTsKPiA+ICsJdW5zaWdu ZWQgaW50IHJhd2Nsa19mcmVxOwo+ID4gIAl1bnNpZ25lZCBpbnQgaHBsbF9mcmVxOwo+ID4gIAl1 bnNpZ25lZCBpbnQgY3pjbGtfZnJlcTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPiA+IGluZGV4IDg0Mzk1YzhjOWRjZS4uODRhMTM1OWVjYmE1IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0xNjgsNDkgKzE2OCw2MSBA QCBzdGF0aWMgaW50IHZsdl9nZXRfY2NrX2Nsb2NrX2hwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gIAlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPmhw bGxfZnJlcSA8PCAxLCBkaXZpZGVyICsgMSk7Cj4gPiAgfQo+ID4gIAo+ID4gLWludAo+ID4gLWlu dGVsX3BjaF9yYXdjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICtzdGF0aWMgaW50Cj4g PiAraW50ZWxfcGNoX3Jhd2NsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g Cj4gSSBndWVzcyBpbnRlbF8gcHJlZml4IHdvdWxkIG5vdCBiZSBuZWVkZWQgYW55bW9yZS4gKnNo cnVnKi4KClllYWgsIGxhenluZXNzIHdvbiBhbmQgSSBkaWRuJ3Qgc3RhcnQgcmVuYW1pbmcgc3R1 ZmYgdG9vIG11Y2guCgo+IAo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+IC0KPiA+IC0JV0FSTl9PTighSEFTX1BDSF9T UExJVChkZXYpKTsKPiA+ICsJcmV0dXJuIChJOTE1X1JFQUQoUENIX1JBV0NMS19GUkVRKSAmIFJB V0NMS19GUkVRX01BU0spICogMTAwMDsKPiA+ICt9Cj4gPiAgCj4gPiAtCXJldHVybiBJOTE1X1JF QUQoUENIX1JBV0NMS19GUkVRKSAmIFJBV0NMS19GUkVRX01BU0s7Cj4gPiArc3RhdGljIGludAo+ ID4gK2ludGVsX3Zsdl9ocmF3Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiA+ICt7Cj4gPiArCXJldHVybiAyMDAwMDA7Cj4gPiAgfQo+ID4gIAo+ID4gLS8qIGhyYXdjbG9j ayBpcyAxLzQgdGhlIEZTQiBmcmVxdWVuY3kgKi8KPiA+IC1pbnQgaW50ZWxfaHJhd2NsayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gK3N0YXRpYyBpbnQKPiA+ICtpbnRlbF9nNHhfaHJhd2Ns ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAl1aW50 MzJfdCBjbGtjZmc7Cj4gPiAgCj4gPiAtCS8qIFRoZXJlIGlzIG5vIENMS0NGRyByZWcgaW4gVmFs bGV5dmlldy4gVkxWIGhyYXdjbGsgaXMgMjAwIE1IeiAqLwo+ID4gLQlpZiAoSVNfVkFMTEVZVklF 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+ICsJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4g PiArCQlkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEgPSBpbnRlbF92bHZfaHJhd2NsayhkZXZfcHJpdik7 Cj4gPiArCWVsc2UgaWYgKElTX0c0WChkZXZfcHJpdikgfHwgSVNfUElORVZJRVcoZGV2X3ByaXYp KQo+ID4gKwkJZGV2X3ByaXYtPnJhd2Nsa19mcmVxID0gaW50ZWxfZzR4X2hyYXdjbGsoZGV2X3By aXYpOwo+ID4gKwllbHNlCj4gPiArCQlyZXR1cm47IC8qIG5vIHJhd2NsayBvbiBvdGhlciBwbGF0 Zm9ybXMsIG9yIG5vIG5lZWQgdG8ga25vdyBpdCAqLwo+ID4gKwo+ID4gKwlEUk1fREVCVUdfRFJJ VkVSKCJyYXdjbGsgcmF0ZTogJWQga0h6XG4iLCBkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEpOwo+ID4g K30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfY3pjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIHsKPiA+ICAJaWYgKCFJU19WQUxMRVlWSUVXKGRl dl9wcml2KSkKPiA+IEBAIC0xNTE0NSw2ICsxNTE1Nyw3IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCX0KPiA+ICAKPiA+ICAJaW50ZWxfdXBk YXRlX2N6Y2xrKGRldl9wcml2KTsKPiA+ICsJaW50ZWxfdXBkYXRlX3Jhd2NsayhkZXZfcHJpdik7 Cj4gPiAgCWludGVsX3VwZGF0ZV9jZGNsayhkZXYpOwo+ID4gIAo+ID4gIAlpbnRlbF9zaGFyZWRf ZHBsbF9pbml0KGRldik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IGYzMzVj OTJiNGZhNy4uMmE5YjU3MTBlZTgzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gQEAgLTY3NSwxMyArNjc1LDEzIEBAIGludGVsX2RwX2F1eF93YWl0X2RvbmUoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwgYm9vbCBoYXNfYXV4X2lycSkKPiA+ICBzdGF0aWMgdWludDMyX3Qg aTl4eF9nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 IGluZGV4KQo+ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNl LmRldik7Cj4gPiAgCj4gPiAgCS8qCj4gPiAgCSAqIFRoZSBjbG9jayBkaXZpZGVyIGlzIGJhc2Vk IG9mZiB0aGUgaHJhd2NsaywgYW5kIHdvdWxkIGxpa2UgdG8gcnVuIGF0Cj4gPiAgCSAqIDJNSHou ICBTbywgdGFrZSB0aGUgaHJhd2NsayB2YWx1ZSBhbmQgZGl2aWRlIGJ5IDIgYW5kIHVzZSB0aGF0 Cj4gPiAgCSAqLwo+IAo+IFRoZSBjb21tZW50IG5lZWRzIHVwZGF0aW5nLiBQb3NzaWJseSBlbHNl d2hlcmUgdG9vIG91dHNpZGUgb2YgcGF0Y2gKPiBjb250ZXh0LgoKVGhhdCdzIGJlaW5nIGRvbmUg aW4gcGF0Y2ggMTEvMTEuIEkgYXNzdW1lIHRoYXQncyBnb29kIGVub3VnaCBwbGFjZSBmb3IKeW91 PwoKPiAKPiA+IC0JcmV0dXJuIGluZGV4ID8gMCA6IERJVl9ST1VORF9DTE9TRVNUKGludGVsX2hy YXdjbGsoZGV2KSwgMik7Cj4gPiArCXJldHVybiBpbmRleCA/IDAgOiBESVZfUk9VTkRfQ0xPU0VT VChkZXZfcHJpdi0+cmF3Y2xrX2ZyZXEsIDIwMDApOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMg dWludDMyX3QgaWxrX2dldF9hdXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLCBpbnQgaW5kZXgpCj4gPiBAQCAtNjkzLDEyICs2OTMsMTAgQEAgc3RhdGljIHVpbnQzMl90 IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50 IGluZGV4KQo+ID4gIAlpZiAoaW5kZXgpCj4gPiAgCQlyZXR1cm4gMDsKPiA+ICAKPiA+IC0JaWYg KGludGVsX2RpZ19wb3J0LT5wb3J0ID09IFBPUlRfQSkgewo+ID4gKwlpZiAoaW50ZWxfZGlnX3Bv cnQtPnBvcnQgPT0gUE9SVF9BKQo+ID4gIAkJcmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGRldl9w cml2LT5jZGNsa19mcmVxLCAyMDAwKTsKPiA+IC0KPiA+IC0JfSBlbHNlIHsKPiA+IC0JCXJldHVy biBESVZfUk9VTkRfQ0xPU0VTVChpbnRlbF9wY2hfcmF3Y2xrKGRldiksIDIpOwo+ID4gLQl9Cj4g PiArCWVsc2UKPiA+ICsJCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVChkZXZfcHJpdi0+cmF3Y2xr X2ZyZXEsIDIwMDApOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdWludDMyX3QgaHN3X2dldF9h dXhfY2xvY2tfZGl2aWRlcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgaW5kZXgpCj4g PiBAQCAtNzE5LDcgKzcxNyw3IEBAIHN0YXRpYyB1aW50MzJfdCBoc3dfZ2V0X2F1eF9jbG9ja19k aXZpZGVyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBpbmRleCkKPiA+ICAJCWRlZmF1 bHQ6IHJldHVybiAwOwo+ID4gIAkJfQo+ID4gIAl9IGVsc2UgIHsKPiA+IC0JCXJldHVybiBpbmRl eCA/IDAgOiBESVZfUk9VTkRfQ0xPU0VTVChpbnRlbF9wY2hfcmF3Y2xrKGRldiksIDIpOwo+ID4g KwkJcmV0dXJuIGluZGV4ID8gMCA6IERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2LT5yYXdjbGtf ZnJlcSwgMjAwMCk7Cj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiBAQCAtNTIzNyw3ICs1MjM1LDcg QEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAl1MzIgcHBfb24sIHBwX29mZiwgcHBfZGl2 LCBwb3J0X3NlbCA9IDA7Cj4gPiAtCWludCBkaXYgPSBIQVNfUENIX1NQTElUKGRldikgPyBpbnRl bF9wY2hfcmF3Y2xrKGRldikgOiBpbnRlbF9ocmF3Y2xrKGRldik7Cj4gPiArCWludCBkaXYgPSBk ZXZfcHJpdi0+cmF3Y2xrX2ZyZXEgLyAxMDAwOwoKQlRXIGhlcmUgc3RpbGwgcm91bmQgZG93biB3 aGVuIGNhbGN1bGF0aW5nIHRoZSBwb3dlciBzZXF1ZW5jZXIgZGl2aXNvci4KQ29uc2lkZXJpbmcg dGhhdCBvbmUgaXMgdXNlZCB0byBlbmZvcmNlIHRoZSBwYW5lbCBwb3dlciBkZWxheXMsIEknbQp0 aGlua2luZyB3ZSBzaG91bGQgcmVhbGx5IHJvdW5kIHVwIHRvIG1ha2Ugc3VyZSB3ZSBuZXZlciBl bmQgdXAgd2l0aCBhCnNob3J0ZXIgZGVsYXkgdGhhbiBzcGVjaWZpZWQuIEJ1dCB0aGF0IGRpc2Fn cmVlcyB3aXRoIHRoZSBleGFtcGxlcyBpbgp0aGUgc3BlYywgc28gbm90IHJlYWxseSBzdXJlIHdo YXQncyBiZXN0LgoKPiA+ICAJaTkxNV9yZWdfdCBwcF9vbl9yZWcsIHBwX29mZl9yZWcsIHBwX2Rp dl9yZWcsIHBwX2N0cmxfcmVnOwo+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKS0+cG9ydDsKPiA+ICAJY29uc3Qgc3RydWN0IGVkcF9wb3dlcl9zZXEgKnNlcSA9 ICZpbnRlbF9kcC0+cHBzX2RlbGF5czsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBp bmRleCAxZmZkOGQ1YzMyMzUuLjU0YjY1OTUxNjIyZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gQEAgLTEwNTAsOCArMTA1MCw2IEBAIHZvaWQgaTkxNV9hdWRpb19jb21w b25lbnRfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gIC8q IGludGVsX2Rpc3BsYXkuYyAqLwo+ID4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1 bmNzIGludGVsX3BsYW5lX2Z1bmNzOwo+ID4gIGJvb2wgaW50ZWxfaGFzX3BlbmRpbmdfZmJfdW5w aW4oc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAtaW50IGludGVsX3BjaF9yYXdjbGsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAtaW50IGludGVsX2hyYXdjbGsoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4gPiAgdm9pZCBpbnRlbF9tYXJrX2J1c3koc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gPiAgdm9pZCBpbnRlbF9tYXJrX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gPiAgdm9pZCBpbnRlbF9jcnRjX3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gPiBpbmRleCA4OTFhNTg3MjI1ZTIu LmI4Yzc4ZDg4NTMxMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BhbmVsLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiA+ IEBAIC0xMzE0LDggKzEzMTQsOCBAQCBzdGF0aWMgdTMyIGxwdF9oel90b19wd20oc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gPiAgICovCj4gPiAg c3RhdGljIHUzMiBwY2hfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gPiAtCWludCBjbG9jayA9IE1IeihpbnRlbF9wY2hfcmF3 Y2xrKGRldikpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ID4gKwlpbnQgY2xvY2sgPSAxMDAwICogZGV2X3By aXYtPnJhd2Nsa19mcmVxOwo+ID4gIAo+ID4gIAlyZXR1cm4gY2xvY2sgLyAocHdtX2ZyZXFfaHog KiAxMjgpOwo+IAo+IENvdWxkIHVzZToKPiAKPiAJcmV0dXJuIEtIeihkZXZfcHJpdi0+cmF3Y2xr X2ZyZXEpIC8gKHB3bV9mcmVxX2h6ICogMTI4KTsKPiAKPiBTYW1lIHRoaW5nIGFsbCBhcm91bmQu CgpJIGNhbiByZXNwaW4gd2l0aCB0aGF0LgoKPiAKPiBTaWRlIG5vdGUsIG1heWJlIHRoZXNlIHNo b3VsZCBhbHNvIHJvdW5kIGNsb3Nlc3QgKGZvbGxvdy11cCkuCgpIbW0uIFllYWgsIEkgZ3Vlc3Mg Y2xvc2VzdCB3b3VsZCBiZSB3YXJyYW50ZWQgZm9yIFBXTS4KCj4gCj4gCj4gPiAgfQo+ID4gQEAg LTEzMzAsMTIgKzEzMzAsMTEgQEAgc3RhdGljIHUzMiBwY2hfaHpfdG9fcHdtKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gICAqLwo+ID4gIHN0 YXRpYyB1MzIgaTl4eF9oel90b19wd20oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LCB1MzIgcHdtX2ZyZXFfaHopCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y29ubmVjdG9yLT5iYXNlLmRldjsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiA+ICAJaW50IGNsb2NrOwo+ ID4gIAo+ID4gLQlpZiAoSVNfUElORVZJRVcoZGV2KSkKPiA+IC0JCWNsb2NrID0gTUh6KGludGVs X2hyYXdjbGsoZGV2KSk7Cj4gPiArCWlmIChJU19QSU5FVklFVyhkZXZfcHJpdikpCj4gPiArCQlj bG9jayA9IDEwMDAgKiBkZXZfcHJpdi0+cmF3Y2xrX2ZyZXE7Cj4gPiAgCWVsc2UKPiA+ICAJCWNs b2NrID0gMTAwMCAqIGRldl9wcml2LT5jZGNsa19mcmVxOwo+ID4gIAo+ID4gQEAgLTEzNTQsNyAr MTM1Myw3IEBAIHN0YXRpYyB1MzIgaTk2NV9oel90b19wd20oc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gPiAgCWludCBjbG9jazsKPiA+ICAKPiA+ ICAJaWYgKElTX0c0WChkZXZfcHJpdikpCj4gPiAtCQljbG9jayA9IE1IeihpbnRlbF9ocmF3Y2xr KGRldikpOwo+ID4gKwkJY2xvY2sgPSAxMDAwICogZGV2X3ByaXYtPnJhd2Nsa19mcmVxOwo+ID4g IAllbHNlCj4gPiAgCQljbG9jayA9IDEwMDAgKiBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiA+ICAK PiA+IEBAIC0xMzY4LDE4ICsxMzY3LDE3IEBAIHN0YXRpYyB1MzIgaTk2NV9oel90b19wd20oc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gPiAgICov Cj4gPiAgc3RhdGljIHUzMiB2bHZfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAtCWludCBjbG9jazsKPiA+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2Uu ZGV2KTsKPiA+ICAKPiA+ICAJaWYgKChJOTE1X1JFQUQoQ0JSMV9WTFYpICYgQ0JSX1BXTV9DTE9D S19NVVhfU0VMRUNUKSA9PSAwKSB7Cj4gPiAtCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ID4g KwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gIAkJCXJldHVybiBLSHooMTkyMDAp IC8gKHB3bV9mcmVxX2h6ICogMTYpOwo+ID4gIAkJZWxzZQo+ID4gIAkJCXJldHVybiBNSHooMjUp IC8gKHB3bV9mcmVxX2h6ICogMTYpOwo+ID4gIAl9IGVsc2Ugewo+ID4gLQkJY2xvY2sgPSBpbnRl bF9ocmF3Y2xrKGRldik7Cj4gPiAtCQlyZXR1cm4gTUh6KGNsb2NrKSAvIChwd21fZnJlcV9oeiAq IDEyOCk7Cj4gPiArCQlpbnQgY2xvY2sgPSAxMDAwICogZGV2X3ByaXYtPnJhd2Nsa19mcmVxOwo+ ID4gKwo+ID4gKwkJcmV0dXJuIGNsb2NrIC8gKHB3bV9mcmVxX2h6ICogMTI4KTsKPiA+ICAJfQo+ ID4gIH0KPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9n eSBDZW50ZXIKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==