From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH v3 4/9] drm/i915: Decode system memory bandwidth Date: Mon, 19 Sep 2016 17:41:13 -0300 Message-ID: <1474317673.2303.41.camel@intel.com> References: <20160909080106.17506-1-mahesh1.kumar@intel.com> <20160909080106.17506-5-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 28CE36E17B for ; Mon, 19 Sep 2016 20:41:19 +0000 (UTC) In-Reply-To: <20160909080106.17506-5-mahesh1.kumar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Kumar, Mahesh" , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkKCkVtIFNleCwgMjAxNi0wOS0wOSDDoHMgMTM6MzEgKzA1MzAsIEt1bWFyLCBNYWhlc2ggZXNj cmV2ZXU6Cj4gRnJvbTogTWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KPiAK PiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCB0byBkZWNvZGUgc3lzdGVtIG1lbW9yeSBiYW5kd2lk dGgKPiB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGFyYml0cmF0ZWQgZGlzcGxheSBtZW1vcnkgcGVy Y2VudGFnZQo+IGNhbGN1bGF0aW9uIGluIEdFTjkgYmFzZWQgc3lzdGVtLgoKVGhpcyBpcyBub3Qg YSBjb21wbGV0ZSByZXZpZXcgb2YgdGhpcyBwYXRjaCBzaW5jZSBJIGNhbid0IGZpbmQgdGhlCmRv Y3VtZW50YXRpb24gZm9yIHRoZSByZWdpc3RlcnMgdXNlZCBieSB0aGUgcGF0Y2gsIGJ1dCBJJ2xs IHRyeSB0bwpwcm92aWRlIHNvbWUgZWFybHkgZmVlZGJhY2suIE1vc3Qgb2YgaXQgaXMgYWJvdXQg c3R5bGluZywgc28gZmVlbCBmcmVlCnRvIHByb3ZpZGUgY291bnRlciBhcmd1bWVudHMgaWYgeW91 IGRpc2FncmVlLgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggS3VtYXIgPG1haGVzaDEua3Vt YXJAaW50ZWwuY29tPgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyB8 IDk2Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiDCoGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggfCAxOCArKysrKysrKwo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCB8IDI1ICsrKysrKysrKysrCj4gwqAzIGZpbGVzIGNoYW5nZWQs IDEzOSBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRleCAw MmMzNGQ2Li4wYTRmMThkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTk3Myw2 ICs5NzMsOTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QKPiBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAlEUk1fREVCVUdfRFJJVkVSKCJ1c2UgR1BV IHNlbXBhaG9yZXM/ICVzXG4iLAo+IHllc25vKGk5MTUuc2VtYXBob3JlcykpOwo+IMKgfQo+IMKg Cj4gK3N0YXRpYyB2b2lkCj4gK2ludGVsX2dldF9tZW1kZXZfaW5mbyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQoKSW4gb3VyIGN1cnJlbnQgc3RhbmRhcmRzIHdlIHByZWZlciB0aGF0IHlvdSB1c2Ug ZHJtX2k5MTVfcHJpdmF0ZSBhcyB0aGUKcGFyYW1ldGVyIGhlcmUuIEFuZCB0aGUgbmV3IGZ1bmN0 aW9uIGRvZXNuJ3QgZXZlbiB1c2UgZHJtX2RldmljZSBmb3IKYW55dGhpbmcsIHNvIHRoYXQgcmVp bmZvcmNlcyB0aGUgYXJndW1lbnQuCgoKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJdWludDMyX3QgdmFsID0gMDsKPiArCXVpbnQz Ml90IG1lbV9zcGVlZCA9IDA7Cj4gKwl1aW50OF90IGRyYW1fdHlwZTsKPiArCXVpbnQzMl90IGRy YW1fY2hhbm5lbDsKPiArCXVpbnQ4X3QgbnVtX2NoYW5uZWw7Cj4gKwlib29sIHJhbmtfdmFsaWQg PSBmYWxzZTsKCldlIGdlbmVyYWxseSBkb24ndCB6ZXJvLWluaXRpYWxpemUgdGhpbmdzIHRoYXQg ZG9uJ3QgbmVlZCB0byBiZSB6ZXJvLQppbml0aWFsaXplZCwgbGlrZSB0aGVzZSAzIHZhcmlhYmxl cy4gSSBrbm93IHRoaXMgaXMgYW4gZXRlcm5hbApkaXNjdXNzaW9uIGFuZCBlYWNoIHNpZGUgaGFz IHByb3MgYW5kIGNvbnMsIGJ1dCBmb2xsb3dpbmcgdGhlIGFscmVhZHkKdXNlZCBjb2Rpbmcgc3R5 bGUgdXN1YWxseSB3aW5zLgoKCkFsc28sIHBsZWFzZSBqdXN0IGFkZCB0aGlzOgoKc3RydWN0IG1l bWRldl9pbmZvICptZW1kZXZfaW5mbyA9ICZkZXZfcHJpdi0+bWVtZGV2X2luZm87CgpBbGwgdGhv c2UgImRldl9wcml2LT5tZW1kZXZfaW5mbyIgc3RhdGVtZW50cyBiZWxvdyBhcmUgYWxyZWFkeSBt YWtpbmcKbXkgZmluZ2VycyBodXJ0LCBhbmQgSSBkaWRuJ3QgZXZlbiB0eXBlIHRoZW0gOikKCgo+ ICsKPiArCWlmICghSVNfR0VOOShkZXZfcHJpdikpCj4gKwkJZ290byBleGl0OwoKSWYgeW91IGp1 c3Qgc2V0IG1lbWRldl9pbmZvLnZhbGlkIHRvIGZhbHNlIHJpZ2h0IGF0IHRoZSBiZWdpbm5pbmcg b2YKdGhlIGZ1bmN0aW9uIHRoZW4geW91IGNhbiBqdXN0IHJldHVybiBoZXJlIGFuZCBiZWxvdyB3 aXRob3V0IHVzaW5nIHRoZQpnb3RvLiBJTUhPIGl0IHdpbGwgbG9vayBiZXR0ZXIuIE9yIHlvdSBj b3VsZCBldmVuIHJlbHkgb24gdGhlIGZhY3QgdGhhdAp3ZSB1c2VkIGt6YWxsb2MgYW55d2F5LgoK Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKFBfQ1JfTUNfQklPU19SRVFfMF8wXzApOwo+ICsJbWVt X3NwZWVkID0gZGl2X3U2NCgodWludDY0X3QpICh2YWwgJiBSRVFfREFUQV9NQVNLKSAqCj4gKwkJ CU1FTU9SWV9GUkVRX01VTFRJUExJRVIsIDEwMDApOwo+ICsKPiArCWlmIChtZW1fc3BlZWQgPT0g MCkKPiArCQlnb3RvIGV4aXQ7CgpQZXJoYXBzIGEgRFJNX0RFQlVHX0tNUygic29tZXRoaW5nIHNv bWV0aGluZyBtZW1vcnkgZGF0YSBpcyBub3QgdmFsaWQiKQp3b3VsZCBiZSB1c2VmdWwgaGVyZSB0 b28uCgoKPiArCj4gKwlkZXZfcHJpdi0+bWVtZGV2X2luZm8udmFsaWQgPSB0cnVlOwo+ICsJZGV2 X3ByaXYtPm1lbWRldl9pbmZvLm1lbV9zcGVlZCA9IG1lbV9zcGVlZDsKPiArCWRyYW1fdHlwZSA9 ICh2YWwgPj4gRFJBTV9UWVBFX1NISUZUKSAmIERSQU1fVFlQRV9NQVNLOwo+ICsJZHJhbV9jaGFu bmVsID0gKHZhbCA+PiBEUkFNX0NIQU5ORUxfU0hJRlQpICYKPiBEUkFNX0NIQU5ORUxfTUFTSzsK PiArCW51bV9jaGFubmVsID0gaHdlaWdodDMyKGRyYW1fY2hhbm5lbCk7Cj4gKwo+ICsJLyoKPiAr CcKgKiBUaGUgbHBkZHIzIGFuZCBscGRkcjQgdGVjaG5vbG9naWVzIGNhbiBoYXZlIDEtNCBjaGFu bmVscwo+IGFuZCB0aGUKPiArCcKgKiBjaGFubmVscyBhcmUgMzJiaXRzIHdpZGU7IHdoaWxlIGRk cjNsIHRlY2hub2xvZ2llcyBjYW4KPiBoYXZlIDEtMgo+ICsJwqAqIGNoYW5uZWxzIGFuZCB0aGUg Y2hhbm5lbHMgYXJlIDY0IGJpdHMgd2lkZS4gQnV0IFNWIHRlYW0KPiBmb3VuZCB0aGF0IGluCj4g KwnCoCogY2FzZSBvZiBzaW5nbGUgNjQgYml0IHdpZGUgRERSM0wgZGltbXMgdHdvIGJpdHMgd2Vy ZSBzZXQKPiBhbmQgc3lzdGVtCj4gKwnCoCogd2l0aCB0d28gRERSM0wgNjRiaXQgZGltbSBhbGwg Zm91ciBiaXRzIHdlcmUgc2V0Lgo+ICsJwqAqLwoKSSBzdGlsbCBkb24ndCBoYXZlIGFjY2VzcyB0 byB0aGUgc3BlYywgYnV0IHRoaXMgY29tbWVudCBzdWdnZXN0cyB0aGUKc3BlYyBkb2Vzbid0IG1h dGNoIHRoZSBTViB0ZWFtIGZpbmRpbmdzLiBTbyBjYW4ndCB0aGUgU1YgdGVhbSByZXF1ZXN0CnRo ZSBzcGVjcyB0byByZWZsZWN0IHRoZWlyIGZpbmRpbmdzPyBBcyBhbiBvdXRzaWRlciwgSSBzZWUg dGhpcyBhcyB0aGUKU1YgdGVhbSdzIHdvcmQgYWdhaW5zdCB0aGUgSFcgdGVhbSdzIHdvcmRzLCBh bmQgSSBkb24ndCBrbm93IHdobyBtYWRlCnRoZSBtaXN0YWtlOiB0aGUgU1YgZW5naW5lZXIgb3Ig dGhlIEhXIGVuZ2luZWVyLiBTbyBJIGV4cGVjdCBhCmRpc2N1c3Npb24gYmV0d2VlbiB0aGUgdHdv IGFuZCB0aGUgY29uY2x1c2lvbnMgYmVpbmcgcmVmbGVjdGVkIG9uIHRoZQpzcGVjaWZpY2F0aW9u IDopLiBFcnJhdGEga25vd2xlZGdlIHNob3VsZG4ndCBnbyBzdHJhaWdodCB0byB0aGUKZHJpdmVy cywgdGhhdCdzIGEgcmVjaXBlIGZvciBldGVybmFsIGRvdWJ0IHRvIHRoZSBmdXR1cmUgcGVvcGxl Cm1haW50YWluaW5nIHRoaXMgY29kZS4KCgo+ICsKPiArCXN3aXRjaCAoZHJhbV90eXBlKSB7Cj4g KwljYXNlIERSQU1fVFlQRV9MUEREUjM6Cj4gKwljYXNlIERSQU1fVFlQRV9MUEREUjQ6Cj4gKwkJ ZGV2X3ByaXYtPm1lbWRldl9pbmZvLmRhdGFfd2lkdGggPSA0Owo+ICsJCWRldl9wcml2LT5tZW1k ZXZfaW5mby5udW1fY2hhbm5lbCA9IG51bV9jaGFubmVsOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBE UkFNX1RZUEVfRERSM0w6Cj4gKwkJZGV2X3ByaXYtPm1lbWRldl9pbmZvLmRhdGFfd2lkdGggPSA4 Owo+ICsJCWRldl9wcml2LT5tZW1kZXZfaW5mby5udW1fY2hhbm5lbCA9IG51bV9jaGFubmVsIC8g MjsKPiArCQlicmVhazsKPiArCWRlZmF1bHQ6CgpBZ2Fpbiwgbm8gYWNjZXNzIHRvIHRoZSBzcGVj IGhlcmUsIGJ1dCBzaG91bGRuJ3QgdGhpcyBjYXNlIHJlc2V0Cm1lbWRldl9pbmZvLnZhbGlkIHRv IGZhbHNlIGFuZCB0aGVuIHJldHVybiAocG9zc2libHkgd2l0aCBhCkRSTV9ERUJVR19LTVMpPwoK Cj4gKwkJZGV2X3ByaXYtPm1lbWRldl9pbmZvLmRhdGFfd2lkdGggPSA0Owo+ICsJCWRldl9wcml2 LT5tZW1kZXZfaW5mby5udW1fY2hhbm5lbCA9IG51bV9jaGFubmVsOwo+ICsJfQo+ICsKPiArCS8q Cj4gKwnCoCogTm93IHJlYWQgZWFjaCBEVU5JVDgvOS8xMC8xMSB0byBjaGVjayB0aGUgcmFuayBv ZiBlYWNoCj4gZGltbXMuCj4gKwnCoCogYWxsIHRoZSBkaW1tcyBzaG91bGQgaGF2ZSBzYW1lIHJh bmsgYXMgaW4gZmlyc3QgdmFsaWQKPiBEaW1tCj4gKwnCoCovCj4gCj4gKyNkZWZpbmUgRF9DUl9E UlAwX0RVTklUX0lOVkFMSUQJwqDCoMKgwqAweEZGRkZGRkZGCgpJJ20gbm90IGEgaHVnZSBmYW4g b2YgdGhlc2UgbWlkLWZpbGUgZGVmaW5lcyB3aXRoIGxhdGVyIHVuZGVmaW5lcy4KQ2FuJ3Qgd2Ug anVzdCBtb3ZlIHRoaXMgdG8gdGhlIC5oIGZpbGUsIG9yIGp1c3QgdXNlIGEgdmFyaWFibGUsIG9y IGp1c3QKZ28gd2l0aCB0aGUgcGxhaW4gMHhGRkZGRkZGRj8KCgo+ICsKPiArCWRldl9wcml2LT5t ZW1kZXZfaW5mby5yYW5rX3ZhbGlkID0gdHJ1ZTsKCldlIG5ldmVyIHNldCB0aGlzIHRvIGZhbHNl LiBCdWc/CgoKPiArCWlmIChJOTE1X1JFQUQoRF9DUl9EUlAwX0RVTklUOCkgIT0gRF9DUl9EUlAw X0RVTklUX0lOVkFMSUQpCj4gewo+ICsJCXZhbCA9IEk5MTVfUkVBRChEX0NSX0RSUDBfRFVOSVQ4 KTsKPiArCQlyYW5rX3ZhbGlkID0gdHJ1ZTsKPiArCX0gZWxzZSBpZiAoSTkxNV9SRUFEKERfQ1Jf RFJQMF9EVU5JVDkpICE9Cj4gRF9DUl9EUlAwX0RVTklUX0lOVkFMSUQpIHsKPiArCQl2YWwgPSBJ OTE1X1JFQUQoRF9DUl9EUlAwX0RVTklUOSk7Cj4gKwkJcmFua192YWxpZCA9IHRydWU7Cj4gKwl9 IGVsc2UgaWYgKEk5MTVfUkVBRChEX0NSX0RSUDBfRFVOSVQxMCkgIT0KPiBEX0NSX0RSUDBfRFVO SVRfSU5WQUxJRCkgewo+ICsJCXZhbCA9IEk5MTVfUkVBRChEX0NSX0RSUDBfRFVOSVQxMCk7Cj4g KwkJcmFua192YWxpZCA9IHRydWU7Cj4gKwl9IGVsc2UgaWYgKEk5MTVfUkVBRChEX0NSX0RSUDBf RFVOSVQxMSkgIT0KPiBEX0NSX0RSUDBfRFVOSVRfSU5WQUxJRCkgewo+ICsJCXZhbCA9IEk5MTVf UkVBRChEX0NSX0RSUDBfRFVOSVQxMSk7Cj4gKwkJcmFua192YWxpZCA9IHRydWU7Cj4gKwl9CgpZ b3UgY2FuIHJlc3RydWN0dXJlIHRoaXMgdG8gYXZvaWQgdGhlIGRvdWJsZSBJOTE1X1JFQUQgZm9y IHRoZSB2YWxpZApjYXNlLiBUaGVyZSBhcmUgbWFueSB3YXlzIHRvIGRvIHRoaXMuCgpBbHNvLCB5 b3UgY291bGQgZ2V0IHJpZCBvZiB0aGUgcmFua192YWxpZCB2YXJpYWJsZSBpZiB5b3UgcmVvcmdh bml6ZQp0aGluZ3MgYSBsaXR0bGUgYml0IGFuZCB0aGVuIGp1c3QgYWRkIGFuIGV4dHJhICJlbHNl IiBmb3IgdGhlCiJyYW5rX3ZhbGlkIGlzIGZhbHNlIiBjYXNlLgoKCj4gKyN1bmRlZiBEX0NSX0RS UDBfRFVOSVRfSU5WQUxJRAo+ICsKPiArCWlmIChyYW5rX3ZhbGlkKSB7Cj4gKwkJZGV2X3ByaXYt Pm1lbWRldl9pbmZvLnJhbmtfdmFsaWQgPSB0cnVlOwoKQnV0IHdlIGp1c3Qgc2V0IGRldl9wcml2 LT5tZW1kZXZfaW5mby5yYW5rX3ZhbGlkIHRvIHRydWUgYWJvdmUsIHNvIG5vCm5lZWQgdG8gcmVk byBpdCBoZXJlLgoKCj4gKwkJZGV2X3ByaXYtPm1lbWRldl9pbmZvLnJhbmsgPSAodmFsICYgRFJB TV9SQU5LX01BU0spOwo+ICsJfQo+ICsKPiArCURSTV9ERUJVR19EUklWRVIoInZhbGlkOiVzIHNw ZWVkLSVkIHdpZHRoLSVkIG51bV9jaGFubmVsLQo+ICVkXG4iLAoKU3BlZWQsIHdpZHRoIGFuZCBu dW1fY2hhbm5lbCBhcmUgdW5zaWduZWQsIGFuZCBub3QgYWxsIG9mIHRoZW0gYXJlIDMyCmJpdHMu IFBsZWFzZSByZXBsYWNlIHRoZSAlZCB3aXRoIHRoZSBtb3JlIGFwcHJvcHJpYXRlIG1vZGlmaWVy cyBhbmQKc3BlY2lmaWVycy4KCgo+ICsJCWRldl9wcml2LT5tZW1kZXZfaW5mby52YWxpZCA/ICJ0 cnVlIiA6ICJmYWxzZSIsCgpQZXJoYXBzIHlvdSBjb3VsZCB1c2UgeWVzbm8oKSBoZXJlIGFuZCBi ZWxvdy4KCkFsc28sIHlvdSBjb3VsZCBwcmV0dGlmeSB0aGUgdGV4dCBhIGxpdHRsZSBiaXQgc28g cGVvcGxlIHdvdWxkIGJlIGFibGUKdG8gcmVhZCBkbWVzZyBhbmQgZmlndXJlIG91dCBpbnRlcmVz dGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBEUkFNCndpdGhvdXQgbmVlZGluZyB0byBsb29r IGF0IHRoZSBjb2RlLgoKCj4gKwkJZGV2X3ByaXYtPm1lbWRldl9pbmZvLm1lbV9zcGVlZCwKPiAr CQlkZXZfcHJpdi0+bWVtZGV2X2luZm8uZGF0YV93aWR0aCwKPiArCQlkZXZfcHJpdi0+bWVtZGV2 X2luZm8ubnVtX2NoYW5uZWwpOwo+ICsJRFJNX0RFQlVHX0RSSVZFUigicmFua192YWxpZDolcyBy YW5rLSVkXG4iLAo+ICsJCWRldl9wcml2LT5tZW1kZXZfaW5mby5yYW5rX3ZhbGlkID8gInRydWUi IDogImZhbHNlIiwKPiArCQlkZXZfcHJpdi0+bWVtZGV2X2luZm8ucmFuayk7Cj4gKwlyZXR1cm47 Cj4gK2V4aXQ6Cj4gKwlkZXZfcHJpdi0+bWVtZGV2X2luZm8udmFsaWQgPSBmYWxzZTsKPiArfQo+ ICsKPiDCoC8qKgo+IMKgICogaTkxNV9kcml2ZXJfaW5pdF9odyAtIHNldHVwIHN0YXRlIHJlcXVp cmluZyBkZXZpY2UgYWNjZXNzCj4gwqAgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCj4gQEAg LTEwNzYsNiArMTE2NiwxMiBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfaHcoc3RydWN0 Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJCQlEUk1fREVCVUdfRFJJVkVSKCJj YW4ndCBlbmFibGUgTVNJIik7Cj4gwqAJfQo+IMKgCj4gKwkvKgo+ICsJwqAqIEZpbGwgdGhlIG1l bWRldiBzdHJ1Y3R1cmUgdG8gZ2V0IHRoZSBzeXN0ZW0gcmF3IGJhbmR3aWR0aAo+ICsJwqAqIFRo aXMgd2lsbCBiZSB1c2VkIGJ5IFdNIGFsZ29yaXRobSwgdG8gaW1wbGVtZW50IEdFTjkKPiBiYXNl ZCBXQQo+ICsJwqAqLwo+ICsJaW50ZWxfZ2V0X21lbWRldl9pbmZvKGRldik7Cj4gKwo+IMKgCXJl dHVybiAwOwo+IMKgCj4gwqBvdXRfZ2d0dDoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGlu ZGV4IDRlYzIzZTUuLjQzMTM5OTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAt MjAzNiw2ICsyMDM2LDI0IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiDCoAkJYm9vbCBk aXN0cnVzdF9iaW9zX3dtOwo+IMKgCX0gd207Cj4gwqAKPiArCXN0cnVjdCB7Cj4gKwkJLyoKPiAr CQnCoCogbWVtb3J5IGRldmljZSBpbmZvCj4gKwkJwqAqIHZhbGlkOiBtZW1vcnkgaW5mbyBpcyB2 YWxpZCBvciBub3QKPiArCQnCoCogbWVtX3NwZWVkOiBtZW1vcnkgZnJlcSBpbiBLSHoKPiArCQnC oCogY2hhbm5lbF93aWR0aDogQ2hhbm5lbCB3aWR0aCBpbiBieXRlcwoKY2hhbm5lbF93aWR0aCBv ciBkYXRhX3dpZHRoPwoKCj4gKwkJwqAqIG51bV9jaGFubmVsOiB0b3RhbCBudW1iZXIgb2YgY2hh bm5lbHMKPiArCQnCoCogcmFuazogMC1yYW5rIGRpc2FibGUsIDEtU2luZ2xlIHJhbmssIDItZHVh bCByYW5rCj4gKwkJwqAqLwo+ICsJCWJvb2wgdmFsaWQ7Cj4gKwkJdWludDMyX3QgbWVtX3NwZWVk Owo+ICsJCXVpbnQ4X3QgZGF0YV93aWR0aDsKPiArCQl1aW50OF90IG51bV9jaGFubmVsOwo+ICsJ CWJvb2wgcmFua192YWxpZDsKPiArCQl1aW50OF90IHJhbms7CgpZb3UgY2FuIHJlbW92ZSB0aGUg Y29tbWVudHMgaWYgeW91IGRvIHRoaXM6CgpzdHJ1Y3QgbWVtZGV2X2luZm8gewoJYm9vbCB2YWxp ZDsKCXVpbnQzMl90IG1lbV9zcGVlZF9raHo7Cgl1aW50OF90IGNoYW5uZWwvZGF0YV93aWR0aF9i eXRlczsKCXVpbnQ4X3QgbnVtX2NoYW5uZWxzOyAobm90ZSB0aGUgcGx1cmFsKQoJZW51bSB7CgkJ U09NRVRISU5HX1JBTktfRElTQUJMRSA9IDAsCgkJU09NRVRISU5HX1JBTktfU0lOR0xFLAoJCVNP TUVUSElOR19SQU5LX0RVQUwKCX0gcmFuazsKfSBtZW1kZXZfaW5mbzsKCQpJICpyZWFsbHkqIGxp a2UgZG9jdW1lbnRpbmcgdW5pdHMgaW4gdGhlIHZhcmlhYmxlIG5hbWVzLCBzaW5jZSBpdAphdm9p ZHMgY29uc3RhbnQgZG9jIGNoZWNraW5nLgoKPiArCX0gbWVtZGV2X2luZm87Cj4gKwo+ICsKPiDC oAlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtIHBtOwo+IMKgCj4gwqAJLyogQWJzdHJhY3QgdGhlIHN1 Ym1pc3Npb24gbWVjaGFuaXNtIChsZWdhY3kgcmluZ2J1ZmZlciBvcgo+IGV4ZWNsaXN0cykgYXdh eSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggYTI5ZDcwNy4uYjM4NDQ1YyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC03NzE2LDYgKzc3MTYsMzEgQEAgZW51 bSB7Cj4gwqAjZGVmaW5lwqDCoERDX1NUQVRFX0RFQlVHX01BU0tfQ09SRVMJKDE8PDApCj4gwqAj ZGVmaW5lwqDCoERDX1NUQVRFX0RFQlVHX01BU0tfTUVNT1JZX1VQCSgxPDwxKQo+IMKgCj4gKyNk ZWZpbmUgUF9DUl9NQ19CSU9TX1JFUV8wXzBfMAkJX01NSU8oTUNIQkFSX01JUlJPUl9CQQo+IFNF X1NOQiArIDB4NzExNCkKPiArI2RlZmluZSBSRVFfREFUQV9NQVNLCQkJKDB4M0YgPDwgMCkKPiAr I2RlZmluZSBEUkFNX1RZUEVfU0hJRlQJCQkyNAo+ICsjZGVmaW5lIERSQU1fVFlQRV9NQVNLCQkJ MHg3Cj4gKyNkZWZpbmUgRFJBTV9DSEFOTkVMX1NISUZUCQkxMgo+ICsjZGVmaW5lIERSQU1fQ0hB Tk5FTF9NQVNLCQkweEYKPiArCj4gKyNkZWZpbmUgRFJBTV9UWVBFX0xQRERSMwkJMHgxCj4gKyNk ZWZpbmUgRFJBTV9UWVBFX0xQRERSNAkJMHgyCj4gKyNkZWZpbmUgRFJBTV9UWVBFX0REUjNMCQkJ MHg0Cj4gKy8qCj4gKyAqIEJJT1MgcHJvZ3JhbXMgdGhpcyBmaWVsZCBvZiBSRVFfREFUQSBbNTow XSBpbiBpbnRlZ2VyCj4gKyAqIG11bHRpcGxlIG9mIDEzMzMzMCBLSHogKDEzMy4zM01IeikKPiAr ICovCj4gKyNkZWZpbmUgTUVNT1JZX0ZSRVFfTVVMVElQTElFUgkJMHgyMDhEMgo+ICsjZGVmaW5l IERfQ1JfRFJQMF9EVU5JVDgJCV9NTUlPKE1DSEJBUl9NSVJST1JfQkFTRV9TTkIKPiArIDB4MTAw MCkKPiArI2RlZmluZSBEX0NSX0RSUDBfRFVOSVQ5CQlfTU1JTyhNQ0hCQVJfTUlSUk9SX0JBU0Vf U05CCj4gKyAweDEyMDApCj4gKyNkZWZpbmUgRF9DUl9EUlAwX0RVTklUMTAJCV9NTUlPKE1DSEJB Ul9NSVJST1JfQkFTRV9TTgo+IEIgKyAweDE0MDApCj4gKyNkZWZpbmUgRF9DUl9EUlAwX0RVTklU MTEJCV9NTUlPKE1DSEJBUl9NSVJST1JfQkFTRV9TTgo+IEIgKyAweDE2MDApCj4gKyNkZWZpbmUg RF9DUl9EUlAwX1JLRU4wCQkJKDEgPDwgMCkKPiArI2RlZmluZSBEX0NSX0RSUDBfUktFTjEJCQko MSA8PCAxKQo+ICsjZGVmaW5lIERSQU1fUkFOS19NQVNLCQkJMHgzCj4gKyNkZWZpbmUgRFJBTV9T SU5HTEVfUkFOSwkJMHgxCj4gKyNkZWZpbmUgRFJBTV9EVUFMX1JBTksJCQkweDMKCkknZCBwcmVm aXggYWxsL21vc3Qgb2YgdGhlc2UgZGVmaW5pdGlvbnMgd2l0aCBzb21ldGhpbmcgdG8gZ3JvdXAg dGhlbQphbGwuIEdlbmVyaWMgbmFtZXMgc3VjaCBhcyBNRU1PUllfRlJFUV9NVUxUSVBMSUVSIG9y IERSQU1fVFlQRV9MUEREMwptYXkgYmUgY29uZnVzaW5nIGFuZC9vciBjYXVzZSBwcm9ibGVtcyBs YXRlci4KCgpUaGFua3MsClBhdWxvCgo+ICsKPiDCoC8qIFBsZWFzZSBzZWUgaHN3X3JlYWRfZGNv bXAoKSBhbmQgaHN3X3dyaXRlX2Rjb21wKCkgYmVmb3JlIHVzaW5nCj4gdGhpcyByZWdpc3RlciwK PiDCoCAqIHNpbmNlIG9uIEhTVyB3ZSBjYW4ndCB3cml0ZSB0byBpdCB1c2luZyBJOTE1X1dSSVRF LiAqLwo+IMKgI2RlZmluZSBEX0NPTVBfSFNXCQkJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1MK PiBOQiArIDB4NUYwQykKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==