From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH v2 08/14] drm/i915: Track full cdclk state for the logical and actual cdclk frequencies Date: Fri, 23 Dec 2016 13:53:37 +0200 Message-ID: <1482494017.2633.36.camel@gmail.com> References: <20161219172840.31842-1-ville.syrjala@linux.intel.com> <20161219172840.31842-9-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x243.google.com (mail-pf0-x243.google.com [IPv6:2607:f8b0:400e:c00::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8BAD26E2AD for ; Fri, 23 Dec 2016 11:53:44 +0000 (UTC) Received: by mail-pf0-x243.google.com with SMTP id 127so3921476pfg.0 for ; Fri, 23 Dec 2016 03:53:44 -0800 (PST) In-Reply-To: <20161219172840.31842-9-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 Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE2LTEyLTE5IGF0IDE5OjI4ICswMjAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgo+IAo+IFRoZSBjdXJyZW50IGRldl9jZGNsayB2cy4gY2RjbGsgdnMuIGF0 b21pY19jZGNsa19mcmVxIGlzIHF1aXRlIGEgbWVzcy4KPiBTbyBoZXJlIEknbSBpbnRyb2R1Y2lu ZyB0aGUgImFjdHVhbCIgYW5kICJsb2dpY2FsIiBuYW1pbmcgZm9yIG91cgo+IGNkY2xrIHN0YXRl LiAiYWN0dWFsIiBpcyB3aGF0IHdlJ2xsIGJhc2ggaW50byB0aGUgaGFyZHdhcmUgYW5kICJsb2dp Y2FsIgo+IGlzIHdoYXQgZXZlcnlvbmUgc2hvdWxkIHVzZSBmb3Igc3RhdGUgY29tcHV0YWlvbi9j aGVja2luZyBhbmQgd2hhdG5vdC4KPiBXZSdsbCB0cmFjayBib3RoIHVzaW5nIHRoZSBpbnRlbF9j ZGNsa19zdGF0ZSBhcyBib3RoIHdpbGwgbmVlZCBvdGhlcgo+IGRpZmZlcmluZyBwYXJhbWV0ZXJz IHRoYW4ganVzdCB0aGUgYWN0dWFsIGNkY2xrIGZyZXF1ZW5jeS4KPiAKPiBXaGlsZSBkb2luZyB0 aGF0IHdlIGNhbiBhdCB0aGUgc2FtZSB0aW1lIHVuaWZ5IHRoZSBhcHBlYXJhbmNlIG9mIHRoZQo+ IC5tb2Rlc2V0X2NhbGNfY2RjbGsoKSBpbXBsZW1lbnRhdGlvbnMgYSBsaXR0bGUgYml0Lgo+IAo+ IHYyOiBDb21taXQgZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCBzaW5jZSB0aGF0IGFscmVhZHkgaGFz IHRoZQo+IMKgwqDCoMKgbmV3IHN0YXRlIGJ5IHRoZSB0aW1lIC5tb2Rlc2V0X2NvbW1pdF9jZGNs aygpIGlzIGNhbGxlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaMKgwqDCoMKgwqDCoHzCoMKgMTMgKystLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY2RjbGsuY8KgwqDCoHwgMTIzICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfMKgwqAzOSAr KysrKystLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuY8KgwqDCoMKgwqDC oHzCoMKgwqAyICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKg wqB8wqDCoDI0ICsrKystLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmPCoMKg wqDCoMKgwqB8wqDCoMKgNCArLQo+IMKgNiBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygr KSwgODQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggYTRm MTIzMWZmOGNhLi5iNWE4ZDBmNGNmYmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBA QCAtMjIzNywxOCArMjIzNywxOSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gwqAJdW5z aWduZWQgaW50IHNrbF9wcmVmZXJyZWRfdmNvX2ZyZXE7Cj4gwqAJdW5zaWduZWQgaW50IG1heF9j ZGNsa19mcmVxOwo+IMKgCj4gLQkvKgo+IC0JwqAqIEZvciByZWFkaW5nIGhvbGRpbmcgYW55IGNy dGMgbG9jayBpcyBzdWZmaWNpZW50LAo+IC0JwqAqIGZvciB3cml0aW5nIG11c3QgaG9sZCBhbGwg b2YgdGhlbS4KPiAtCcKgKi8KPiAtCXVuc2lnbmVkIGludCBhdG9taWNfY2RjbGtfZnJlcTsKPiAt Cj4gwqAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJlcTsKPiDCoAl1bnNpZ25lZCBpbnQgcmF3 Y2xrX2ZyZXE7Cj4gwqAJdW5zaWduZWQgaW50IGhwbGxfZnJlcTsKPiDCoAl1bnNpZ25lZCBpbnQg Y3pjbGtfZnJlcTsKPiDCoAo+IMKgCXN0cnVjdCB7Cj4gKwkJLyoKPiArCQnCoCogVGhlIGN1cnJl bnQgbG9naWNhbCBjZGNsayBzdGF0ZS4KPiArCQnCoCogRm9yIHJlYWRpbmcgaG9sZGluZyBhbnkg Y3J0YyBsb2NrIGlzIHN1ZmZpY2llbnQsCj4gKwkJwqAqIGZvciB3cml0aW5nIG11c3QgaG9sZCBh bGwgb2YgdGhlbS4KPiArCQnCoCovCj4gKwkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGxvZ2lj YWw7Cj4gKwkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGFjdHVhbDsKPiDCoAkJc3RydWN0IGlu dGVsX2NkY2xrX3N0YXRlIGh3OwoKSXQgd291bGQgYmUgZ3JlYXQgaWYgYWxsIHRocmVlIGZpZWxk cyB3ZXJlIGRvY3VtZW50ZWQsIGluY2x1ZGluZyBhbiBleGFtcGxlCmNvbmZpZ3VyYXRpb24gd2hl cmUgdGhlIGxvZ2ljYWwgYW5kIGFjdHVhbCBmaWVsZHMgZGlmZmVyIGFuZCB3aGF0IHdoaWNoIGZp ZWxkcwpob2xkLCB0byBtYWtlIHRoZSBkaXN0aW5jdGlvbiBjbGVhci4KCj4gwqAJfSBjZGNsazsK PiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+IGluZGV4IDEzYzNiNTU1NTQ3My4u MDhhZTNiNzhiOGVkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nk Y2xrLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gQEAgLTEz NjgsMTIgKzEzNjgsMjYgQEAgc3RhdGljIGludCB2bHZfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiDCoAlpbnQgbWF4X3BpeGNsayA9IGludGVsX21h eF9waXhlbF9yYXRlKHN0YXRlKTsKPiDCoAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRl bF9zdGF0ZSA9Cj4gwqAJCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gKwlpbnQgY2Rj bGs7Cj4gKwo+ICsJY2RjbGsgPSB2bHZfY2FsY19jZGNsayhkZXZfcHJpdiwgbWF4X3BpeGNsayk7 Cj4gKwo+ICsJaWYgKGNkY2xrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gKwkJRFJN X0RFQlVHX0tNUygicmVxdWVzdGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4ICglZCBrSHop XG4iLAo+ICsJCQnCoMKgwqDCoMKgwqBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKTsK PiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiDCoAo+IC0JaW50ZWxfc3RhdGUtPmNkY2xrID0g aW50ZWxfc3RhdGUtPmRldl9jZGNsayA9Cj4gLQkJdmx2X2NhbGNfY2RjbGsoZGV2X3ByaXYsIG1h eF9waXhjbGspOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsK PiDCoAo+IC0JaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKQo+IC0JCWludGVsX3N0YXRl LT5kZXZfY2RjbGsgPSB2bHZfY2FsY19jZGNsayhkZXZfcHJpdiwgMCk7Cj4gKwlpZiAoIWludGVs X3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPiArCQljZGNsayA9IHZsdl9jYWxjX2NkY2xrKGRldl9w cml2LCAwKTsKPiArCj4gKwkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC5jZGNsayA9IGNkY2xr Owo+ICsJfSBlbHNlIHsKPiArCQlpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsID0KPiArCQkJaW50 ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWw7Cj4gKwl9Cj4gwqAKPiDCoAlyZXR1cm4gMDsKPiDCoH0K PiBAQCAtMTM4Miw5ICsxMzk2LDcgQEAgc3RhdGljIHZvaWQgdmx2X21vZGVzZXRfY29tbWl0X2Nk Y2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gwqB7Cj4gwqAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IG9sZF9zdGF0ZS0+ZGV2Owo+IMKgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9Cj4gLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9z dGF0ZSk7Cj4gLQl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gb2xkX2ludGVsX3N0YXRlLT5kZXZf Y2RjbGs7Cj4gKwl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gZGV2X3ByaXYtPmNkY2xrLmFjdHVh bC5jZGNsazsKPiDCoAo+IMKgCS8qCj4gwqAJwqAqIEZJWE1FOiBXZSBjYW4gZW5kIHVwIGhlcmUg d2l0aCBhbGwgcG93ZXIgZG9tYWlucyBvZmYsIHlldAo+IEBAIC0xNDI2LDkgKzE0MzgsMTYgQEAg c3RhdGljIGludCBiZHdfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPiDCoAkJcmV0dXJuIC1FSU5WQUw7Cj4gwqAJfQo+IMKgCj4gLQlpbnRlbF9zdGF0 ZS0+Y2RjbGsgPSBpbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrID0gY2RjbGs7Cj4gLQlpZiAoIWludGVs X3N0YXRlLT5hY3RpdmVfY3J0Y3MpCj4gLQkJaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9IGJkd19j YWxjX2NkY2xrKDApOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNs azsKPiArCj4gKwlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPiArCQljZGNsayA9 IGJkd19jYWxjX2NkY2xrKDApOwo+ICsKPiArCQlpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLmNk Y2xrID0gY2RjbGs7Cj4gKwl9IGVsc2Ugewo+ICsJCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwg PQo+ICsJCQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPiArCX0KPiDCoAo+IMKgCXJldHVy biAwOwo+IMKgfQo+IEBAIC0xNDM2LDkgKzE0NTUsNyBAQCBzdGF0aWMgaW50IGJkd19tb2Rlc2V0 X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IMKgc3RhdGljIHZv aWQgYmR3X21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRf c3RhdGUpCj4gwqB7Cj4gwqAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9sZF9zdGF0ZS0+ZGV2 Owo+IC0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KPiAtCQl0 b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKPiAtCXVuc2lnbmVkIGludCByZXFfY2Rj bGsgPSBvbGRfaW50ZWxfc3RhdGUtPmRldl9jZGNsazsKPiArCXVuc2lnbmVkIGludCByZXFfY2Rj bGsgPSB0b19pOTE1KGRldiktPmNkY2xrLmFjdHVhbC5jZGNsazsKPiDCoAo+IMKgCWJkd19zZXRf Y2RjbGsoZGV2LCByZXFfY2RjbGspOwo+IMKgfQo+IEBAIC0xNDQ4LDggKzE0NjUsMTEgQEAgc3Rh dGljIGludCBza2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiDCoAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2lu dGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiDCoAljb25zdCBpbnQgbWF4X3BpeGNsayA9 IGludGVsX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPiAtCWludCB2Y28gPSBpbnRlbF9zdGF0ZS0+ Y2RjbGtfcGxsX3ZjbzsKPiAtCWludCBjZGNsazsKPiArCWludCBjZGNsaywgdmNvOwo+ICsKPiAr CXZjbyA9IGludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLnZjbzsKPiArCWlmICghdmNvKQo+ICsJ CXZjbyA9IGRldl9wcml2LT5za2xfcHJlZmVycmVkX3Zjb19mcmVxOwo+IMKgCj4gwqAJLyoKPiDC oAnCoCogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPiBAQCAtMTQ1 NywxOSArMTQ3NywyNCBAQCBzdGF0aWMgaW50IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IMKgCcKgKi8KPiDCoAljZGNsayA9IHNrbF9jYWxj X2NkY2xrKG1heF9waXhjbGssIHZjbyk7Cj4gwqAKPiAtCS8qCj4gLQnCoCogRklYTUUgbW92ZSB0 aGUgY2RjbGsgY2FjbHVsYXRpb24gdG8KPiAtCcKgKiBjb21wdXRlX2NvbmZpZygpIHNvIHdlIGNh biBmYWlsIGdyYWNlZ3VsbHkuCj4gLQnCoCovCj4gwqAJaWYgKGNkY2xrID4gZGV2X3ByaXYtPm1h eF9jZGNsa19mcmVxKSB7Cj4gLQkJRFJNX0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikg ZXhjZWVkcyBtYXggKCVkIGtIeilcbiIsCj4gLQkJCcKgwqBjZGNsaywgZGV2X3ByaXYtPm1heF9j ZGNsa19mcmVxKTsKPiAtCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPiArCQlE Uk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtI eilcbiIsCj4gKwkJCcKgwqDCoMKgwqDCoGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEp Owo+ICsJCXJldHVybiAtRUlOVkFMOwo+IMKgCX0KPiDCoAo+IC0JaW50ZWxfc3RhdGUtPmNkY2xr ID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9IGNkY2xrOwo+IC0JaWYgKCFpbnRlbF9zdGF0ZS0+ YWN0aXZlX2NydGNzKQo+IC0JCWludGVsX3N0YXRlLT5kZXZfY2RjbGsgPSBza2xfY2FsY19jZGNs aygwLCB2Y28pOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwudmNvID0gdmNvOwo+ICsJ aW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKPiArCj4gKwlpZiAoIWlu dGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPiArCQljZGNsayA9IHNrbF9jYWxjX2NkY2xrKDAs IHZjbyk7Cj4gKwo+ICsJCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwudmNvID0gdmNvOwo+ICsJ CWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwuY2RjbGsgPSBjZGNsazsKPiArCX0gZWxzZSB7Cj4g KwkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9Cj4gKwkJCWludGVsX3N0YXRlLT5jZGNsay5s b2dpY2FsOwo+ICsJfQo+IMKgCj4gwqAJcmV0dXJuIDA7Cj4gwqB9Cj4gQEAgLTE0NzcsMTAgKzE1 MDIsOCBAQCBzdGF0aWMgaW50IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQo+IMKgc3RhdGljIHZvaWQgc2tsX21vZGVzZXRfY29tbWl0X2NkY2xr KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gwqB7Cj4gwqAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvbGRfc3RhdGUtPmRldik7Cj4gLQlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Cj4gLQkJdG9faW50ZWxfYXRv bWljX3N0YXRlKG9sZF9zdGF0ZSk7Cj4gLQl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gaW50ZWxf c3RhdGUtPmRldl9jZGNsazsKPiAtCXVuc2lnbmVkIGludCByZXFfdmNvID0gaW50ZWxfc3RhdGUt PmNkY2xrX3BsbF92Y287Cj4gKwl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gZGV2X3ByaXYtPmNk Y2xrLmFjdHVhbC5jZGNsazsKPiArCXVuc2lnbmVkIGludCByZXFfdmNvID0gZGV2X3ByaXYtPmNk Y2xrLmFjdHVhbC52Y287Cj4gwqAKPiDCoAlza2xfc2V0X2NkY2xrKGRldl9wcml2LCByZXFfY2Rj bGssIHJlcV92Y28pOwo+IMKgfQo+IEBAIC0xNDkxLDIyICsxNTE0LDM5IEBAIHN0YXRpYyBpbnQg Ynh0X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g wqAJaW50IG1heF9waXhjbGsgPSBpbnRlbF9tYXhfcGl4ZWxfcmF0ZShzdGF0ZSk7Cj4gwqAJc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQo+IMKgCQl0b19pbnRlbF9hdG9t aWNfc3RhdGUoc3RhdGUpOwo+IC0JaW50IGNkY2xrOwo+ICsJaW50IGNkY2xrLCB2Y287Cj4gwqAK PiAtCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkKPiArCWlmIChJU19HRU1JTklMQUtFKGRl dl9wcml2KSkgewo+IMKgCQljZGNsayA9IGdsa19jYWxjX2NkY2xrKG1heF9waXhjbGspOwo+IC0J ZWxzZQo+ICsJCXZjbyA9IGdsa19kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4gKwl9IGVs c2Ugewo+IMKgCQljZGNsayA9IGJ4dF9jYWxjX2NkY2xrKG1heF9waXhjbGspOwo+ICsJCXZjbyA9 IGJ4dF9kZV9wbGxfdmNvKGRldl9wcml2LCBjZGNsayk7Cj4gKwl9Cj4gKwo+ICsJaWYgKGNkY2xr ID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gKwkJRFJNX0RFQlVHX0tNUygicmVxdWVz dGVkIGNkY2xrICglZCBrSHopIGV4Y2VlZHMgbWF4ICglZCBrSHopXG4iLAo+ICsJCQnCoMKgwqDC oMKgwqBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKTsKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCX0KPiDCoAo+IC0JaW50ZWxfc3RhdGUtPmNkY2xrID0gaW50ZWxfc3RhdGUtPmRldl9j ZGNsayA9IGNkY2xrOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwudmNvID0gdmNvOwo+ ICsJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGsgPSBjZGNsazsKPiDCoAo+IMKgCWlm ICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgewo+IC0JCWlmIChJU19HRU1JTklMQUtFKGRl dl9wcml2KSkKPiArCQlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpIHsKPiDCoAkJCWNkY2xr ID0gZ2xrX2NhbGNfY2RjbGsoMCk7Cj4gLQkJZWxzZQo+ICsJCQl2Y28gPSBnbGtfZGVfcGxsX3Zj byhkZXZfcHJpdiwgY2RjbGspOwo+ICsJCX0gZWxzZSB7Cj4gwqAJCQljZGNsayA9IGJ4dF9jYWxj X2NkY2xrKDApOwo+ICsJCQl2Y28gPSBieHRfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+ ICsJCX0KPiDCoAo+IC0JCWludGVsX3N0YXRlLT5kZXZfY2RjbGsgPSBjZGNsazsKPiArCQlpbnRl bF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLnZjbyA9IHZjbzsKPiArCQlpbnRlbF9zdGF0ZS0+Y2RjbGsu YWN0dWFsLmNkY2xrID0gY2RjbGs7Cj4gKwl9IGVsc2Ugewo+ICsJCWludGVsX3N0YXRlLT5jZGNs ay5hY3R1YWwgPQo+ICsJCQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPiDCoAl9Cj4gwqAK PiDCoAlyZXR1cm4gMDsKPiBAQCAtMTUxNSwxNSArMTU1NSw4IEBAIHN0YXRpYyBpbnQgYnh0X21v ZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gwqBzdGF0 aWMgdm9pZCBieHRfbW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg Km9sZF9zdGF0ZSkKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KG9sZF9zdGF0ZS0+ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg Km9sZF9pbnRlbF9zdGF0ZSA9Cj4gLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSk7 Cj4gLQl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gb2xkX2ludGVsX3N0YXRlLT5kZXZfY2RjbGs7 Cj4gLQl1bnNpZ25lZCBpbnQgcmVxX3ZjbzsKPiAtCj4gLQlpZiAoSVNfR0VNSU5JTEFLRShkZXZf cHJpdikpCj4gLQkJcmVxX3ZjbyA9IGdsa19kZV9wbGxfdmNvKGRldl9wcml2LCByZXFfY2RjbGsp Owo+IC0JZWxzZQo+IC0JCXJlcV92Y28gPSBieHRfZGVfcGxsX3ZjbyhkZXZfcHJpdiwgcmVxX2Nk Y2xrKTsKPiArCXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSBkZXZfcHJpdi0+Y2RjbGsuYWN0dWFs LmNkY2xrOwo+ICsJdW5zaWduZWQgaW50IHJlcV92Y28gPSBkZXZfcHJpdi0+Y2RjbGsuYWN0dWFs LnZjbzsKPiDCoAo+IMKgCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsaywgcmVxX3Zj byk7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDZjMzhh YjI5OTUwNi4uZmIzYWJiNThiNmNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IEBAIC0xMjQxNiw2ICsxMjQxNiw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9j aGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IMKgCj4gwqAJaW50ZWxfc3Rh dGUtPm1vZGVzZXQgPSB0cnVlOwo+IMKgCWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgPSBkZXZf cHJpdi0+YWN0aXZlX2NydGNzOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLmxvZ2ljYWwgPSBkZXZf cHJpdi0+Y2RjbGsubG9naWNhbDsKPiArCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwgPSBkZXZf cHJpdi0+Y2RjbGsuYWN0dWFsOwoKTm90IGFuIGlzc3VlIHdpdGggdGhpcyBwYXRjaCBzcGVjaWZp Y2FsbHksIGJ1dCBzaG91bGRuJ3QgdGhpcyBiZSBwYXJ0IG9mIGEKZHVwbGljYXRlX2NkY2xrX3N0 YXRlKCkgdG8gYmUgaW5saW5lIHdpdGggb3RoZXIgYXRvbWljIHN0dWZmPwo+IMKgCj4gwqAJZm9y X2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewo+IMKgCQlp ZiAoY3J0Y19zdGF0ZS0+YWN0aXZlKQo+IEBAIC0xMjQzNSwzOCArMTI0MzcsMzUgQEAgc3RhdGlj IGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gwqAJwqAqIGFkanVzdGVkX21vZGUgYml0cyBpbiB0aGUgY3J0YyBkaXJlY3RseS4KPiDCoAnC oCovCj4gwqAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsaykgewo+IC0J CWlmICghaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28pCj4gLQkJCWludGVsX3N0YXRlLT5jZGNs a19wbGxfdmNvID0gZGV2X3ByaXYtPmNkY2xrLmh3LnZjbzsKPiAtCQlpZiAoIWludGVsX3N0YXRl LT5jZGNsa19wbGxfdmNvKQo+IC0JCQlpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9IGRldl9w cml2LT5za2xfcHJlZmVycmVkX3Zjb19mcmVxOwo+IC0KPiDCoAkJcmV0ID0gZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jYWxjX2NkY2xrKHN0YXRlKTsKPiDCoAkJaWYgKHJldCA8IDApCj4gwqAJ CQlyZXR1cm4gcmV0Owo+IMKgCj4gwqAJCS8qCj4gLQkJwqAqIFdyaXRlcyB0byBkZXZfcHJpdi0+ YXRvbWljX2NkY2xrX2ZyZXEgbXVzdCBwcm90ZWN0ZWQgYnkKPiArCQnCoCogV3JpdGVzIHRvIGRl dl9wcml2LT5jZGNsa19sb2NpY2FsIG11c3QgcHJvdGVjdGVkIGJ5Cgpsb2dpY2FsCgo+IMKgCQnC oCogaG9sZGluZyBhbGwgdGhlIGNydGMgbG9ja3MsIGV2ZW4gaWYgd2UgZG9uJ3QgZW5kIHVwCj4g wqAJCcKgKiB0b3VjaGluZyB0aGUgaGFyZHdhcmUKPiDCoAkJwqAqLwo+IC0JCWlmIChpbnRlbF9z dGF0ZS0+Y2RjbGsgIT0gZGV2X3ByaXYtPmF0b21pY19jZGNsa19mcmVxKSB7Cj4gKwkJaWYgKCFp bnRlbF9jZGNsa19zdGF0ZV9jb21wYXJlKCZkZXZfcHJpdi0+Y2RjbGsubG9naWNhbCwKPiArCQkJ CQnCoMKgwqDCoMKgwqDCoCZpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbCkpIHsKPiDCoAkJCXJl dCA9IGludGVsX2xvY2tfYWxsX3BpcGVzKHN0YXRlKTsKPiDCoAkJCWlmIChyZXQgPCAwKQo+IMKg CQkJCXJldHVybiByZXQ7Cj4gwqAJCX0KPiDCoAo+IMKgCQkvKiBBbGwgcGlwZXMgbXVzdCBiZSBz d2l0Y2hlZCBvZmYgd2hpbGUgd2UgY2hhbmdlIHRoZSBjZGNsay4gKi8KPiAtCQlpZiAoaW50ZWxf c3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGsgfHwKPiAtCQnCoMKg wqDCoGludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvICE9IGRldl9wcml2LT5jZGNsay5ody52Y28p IHsKPiArCQlpZiAoIWludGVsX2NkY2xrX3N0YXRlX2NvbXBhcmUoJmRldl9wcml2LT5jZGNsay5h Y3R1YWwsCj4gKwkJCQkJwqDCoMKgwqDCoMKgwqAmaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCkp IHsKPiDCoAkJCXJldCA9IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKPiDCoAkJCWlm IChyZXQgPCAwKQo+IMKgCQkJCXJldHVybiByZXQ7Cj4gwqAJCX0KPiDCoAo+IC0JCURSTV9ERUJV R19LTVMoIk5ldyBjZGNsayBjYWxjdWxhdGVkIHRvIGJlIGF0b21pYyAldSwgYWN0dWFsICV1XG4i LAo+IC0JCQnCoMKgwqDCoMKgwqBpbnRlbF9zdGF0ZS0+Y2RjbGssIGludGVsX3N0YXRlLT5kZXZf Y2RjbGspOwo+ICsJCURSTV9ERUJVR19LTVMoIk5ldyBjZGNsayBjYWxjdWxhdGVkIHRvIGJlIGxv Z2ljYWwgJXUga0h6LCBhY3R1YWwgJXUga0h6XG4iLAo+ICsJCQnCoMKgwqDCoMKgwqBpbnRlbF9z dGF0ZS0+Y2RjbGsubG9naWNhbC5jZGNsaywKPiArCQkJwqDCoMKgwqDCoMKgaW50ZWxfc3RhdGUt PmNkY2xrLmFjdHVhbC5jZGNsayk7Cj4gwqAJfSBlbHNlIHsKPiAtCQl0b19pbnRlbF9hdG9taWNf c3RhdGUoc3RhdGUpLT5jZGNsayA9IGRldl9wcml2LT5hdG9taWNfY2RjbGtfZnJlcTsKPiArCQl0 b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsay5sb2dpY2FsID0gZGV2X3ByaXYtPmNk Y2xrLmxvZ2ljYWw7Cj4gwqAJfQo+IMKgCj4gwqAJaW50ZWxfbW9kZXNldF9jbGVhcl9wbGxzKHN0 YXRlKTsKPiBAQCAtMTI1NjksNyArMTI1NjgsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IMKgCQlpZiAocmV0KQo+IMKgCQkJcmV0dXJu IHJldDsKPiDCoAl9IGVsc2Ugewo+IC0JCWludGVsX3N0YXRlLT5jZGNsayA9IGRldl9wcml2LT5h dG9taWNfY2RjbGtfZnJlcTsKPiArCQlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbCA9IGRldl9w cml2LT5jZGNsay5sb2dpY2FsOwo+IMKgCX0KPiDCoAo+IMKgCXJldCA9IGRybV9hdG9taWNfaGVs cGVyX2NoZWNrX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiBAQCAtMTI4NzQsOCArMTI4NzMsOCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQo+IMKgCQlkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRf c3RhdGUoc3RhdGUtPmRldiwgc3RhdGUpOwo+IMKgCj4gwqAJCWlmIChkZXZfcHJpdi0+ZGlzcGxh eS5tb2Rlc2V0X2NvbW1pdF9jZGNsayAmJgo+IC0JCcKgwqDCoMKgKGludGVsX3N0YXRlLT5kZXZf Y2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrLmh3LmNkY2xrIHx8Cj4gLQkJwqDCoMKgwqDCoGludGVs X3N0YXRlLT5jZGNsa19wbGxfdmNvICE9IGRldl9wcml2LT5jZGNsay5ody52Y28pKQo+ICsJCcKg wqDCoMKgIWludGVsX2NkY2xrX3N0YXRlX2NvbXBhcmUoJmRldl9wcml2LT5jZGNsay5odywKPiAr CQkJCQnCoMKgwqDCoMKgwqDCoCZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsKSkKPiDCoAkJCWRldl9w cml2LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrKHN0YXRlKTsKPiDCoAo+IMKgCQkvKgo+ IEBAIC0xMzA1Niw3ICsxMzA1NSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IMKgCQltZW1jcHkoZGV2X3ByaXYtPm1pbl9waXhjbGss IGludGVsX3N0YXRlLT5taW5fcGl4Y2xrLAo+IMKgCQnCoMKgwqDCoMKgwqDCoHNpemVvZihpbnRl bF9zdGF0ZS0+bWluX3BpeGNsaykpOwo+IMKgCQlkZXZfcHJpdi0+YWN0aXZlX2NydGNzID0gaW50 ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjczsKPiAtCQlkZXZfcHJpdi0+YXRvbWljX2NkY2xrX2ZyZXEg PSBpbnRlbF9zdGF0ZS0+Y2RjbGs7Cj4gKwkJZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWwgPSBpbnRl bF9zdGF0ZS0+Y2RjbGsubG9naWNhbDsKPiArCQlkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsID0gaW50 ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbDsKPiDCoAl9Cj4gwqAKPiDCoAlkcm1fYXRvbWljX3N0YXRl X2dldChzdGF0ZSk7Cj4gQEAgLTEzMjk4LDcgKzEzMjk4LDcgQEAgc2tsX21heF9zY2FsZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUKPiDCoAkJcmV0dXJuIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKPiDCoAo+IMKg CWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsK PiAtCWNkY2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUp LT5jZGNsazsKPiArCWNkY2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJh c2Uuc3RhdGUpLT5jZGNsay5sb2dpY2FsLmNkY2xrOwo+IMKgCj4gwqAJaWYgKFdBUk5fT05fT05D RSghY3J0Y19jbG9jayB8fCBjZGNsayA8IGNydGNfY2xvY2spKQo+IMKgCQlyZXR1cm4gRFJNX1BM QU5FX0hFTFBFUl9OT19TQ0FMSU5HOwo+IEBAIC0xNDcyMyw4ICsxNDcyMyw3IEBAIHZvaWQgaW50 ZWxfbW9kZXNldF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gwqAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IMKgCj4gwqAJaW50ZWxf dXBkYXRlX2NkY2xrKGRldl9wcml2KTsKPiAtCj4gLQlkZXZfcHJpdi0+YXRvbWljX2NkY2xrX2Zy ZXEgPSBkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGs7Cj4gKwlkZXZfcHJpdi0+Y2RjbGsubG9naWNh bCA9IGRldl9wcml2LT5jZGNsay5hY3R1YWwgPSBkZXZfcHJpdi0+Y2RjbGsuaHc7Cj4gwqAKPiDC oAlpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyhkZXZfcHJpdik7Cj4gwqB9Cj4gQEAgLTE0ODk3LDcg KzE0ODk2LDcgQEAgaW50IGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+IMKgCj4gwqAJaW50ZWxfdXBkYXRlX2N6Y2xrKGRldl9wcml2KTsKPiDCoAlpbnRlbF91cGRh dGVfY2RjbGsoZGV2X3ByaXYpOwo+IC0JZGV2X3ByaXYtPmF0b21pY19jZGNsa19mcmVxID0gZGV2 X3ByaXYtPmNkY2xrLmh3LmNkY2xrOwo+ICsJZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWwgPSBkZXZf cHJpdi0+Y2RjbGsuYWN0dWFsID0gZGV2X3ByaXYtPmNkY2xrLmh3Owo+IMKgCj4gwqAJaW50ZWxf c2hhcmVkX2RwbGxfaW5pdChkZXYpOwo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5k ZXggNzNhNzA4YjhkODg3Li40MzA5NTA5ZThhMzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiBAQCAtMTczNCw3ICsxNzM0LDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqAJCQlicmVhazsKPiDCoAkJfQo+IMKgCj4gLQkJ dG9faW50ZWxfYXRvbWljX3N0YXRlKHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlKS0+Y2RjbGtfcGxs X3ZjbyA9IHZjbzsKPiArCQl0b19pbnRlbF9hdG9taWNfc3RhdGUocGlwZV9jb25maWctPmJhc2Uu c3RhdGUpLT5jZGNsay5sb2dpY2FsLnZjbyA9IHZjbzsKPiDCoAl9Cj4gwqAKPiDCoAlpZiAoIUhB U19EREkoZGV2X3ByaXYpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggY2MwMTIy MjgyYTdiLi5kMTY3ZWU0NThkNjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBA IC0zMzMsMTMgKzMzMywyMCBAQCBzdHJ1Y3QgZHBsbCB7Cj4gwqBzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlIHsKPiDCoAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSBiYXNlOwo+IMKgCj4gLQl1bnNp Z25lZCBpbnQgY2RjbGs7Cj4gLQo+IC0JLyoKPiAtCcKgKiBDYWxjdWxhdGVkIGRldmljZSBjZGNs aywgY2FuIGJlIGRpZmZlcmVudCBmcm9tIGNkY2xrCj4gLQnCoCogb25seSB3aGVuIGFsbCBjcnRj J3MgYXJlIERQTVMgb2ZmLgo+IC0JwqAqLwo+IC0JdW5zaWduZWQgaW50IGRldl9jZGNsazsKPiAr CXN0cnVjdCB7Cj4gKwkJLyoKPiArCQnCoCogTG9naWNhbCBzdGF0ZSBvZiBjZGNsayAodXNlZCBm b3IgYWxsIHNjYWxpbmcsIHdhdGVybWFyaywKPiArCQnCoCogZXRjLiBjYWxjdWxhdGlvbnMgYW5k IGNoZWNrcykuIFRoaXMgaXMgY29tcHV0ZWQgYXMgaWYgYWxsCj4gKwkJwqAqIGVuYWJsZWQgY3J0 Y3Mgd2VyZSBhY3RpdmUuCj4gKwkJwqAqLwo+ICsJCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSBs b2dpY2FsOwo+ICsKPiArCQkvKgo+ICsJCcKgKiBBY3R1YWwgc3RhdGUgb2YgY2RjbGssIGNhbiBi ZSBkaWZmZXJlbnQgZnJvbSB0aGUgbG9naWNhbAo+ICsJCcKgKiBzdGF0ZSBvbmx5IHdoZW4gYWxs IGNydGMncyBhcmUgRFBNUyBvZmYuCj4gKwkJwqAqLwo+ICsJCXN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSBhY3R1YWw7Cj4gKwl9IGNkY2xrOwoKQWgsIGhlcmUncyB0aGUgZmllbGQgZGVzY3JpcHRp b25zLiBNYXliZSB0aGUgZmllbGRzIGluIGRldl9wcml2IHNob3VsZCBwb2ludCBhdApoZXJlLiBD b21wYXJlZCB0byB0aGUgb3RoZXIgYXRvbWljIHN0YXRlcywgdGhlIGNkY2xrIG9uZSBpcyBhIGJp dCBkaWZmZXJlbnQsCnNpbmNlIHRoZXJlJ3Mgb25seSBvbmNlIGNkY2xrIHBlciBkZXZpY2UgYnV0 IHdlIGhhdmUgbXVsdGlwbGUgc3RhdGVzLiBNYXliZSB0aGUKc3RhdGUgc3RydWN0IHNob3VsZCBo YXZlIGJvdGggbG9naWNhbCBhbmQgYWN0dWFsLCBhbmQgZGV2X3ByaXYgd291bGQgaW5jbHVkZQpv bmx5IG9uZSBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGU/IFRoZW4gdGhlcmUgd291bGQgYmUgb25s eSBvbmUgcGxhY2UgZm9yCmRvY3VtZW50YXRpb24gYW5kIGl0IHdvdWxkIGJlIG1vcmUgaW5saW5l IHdpdGggb3RoZXIgYXRvbWljIHN0dWZmLgoKSSBhZ3JlZSB0aGF0IHRoZSBwYXRjaCBkb2VzIG1h a2UgdGhpbmdzIGxlc3MgY29uZnVzaW5nLCB0aG91Z2gsIHNvwqAKClJldmlld2VkLWJ5OiBBbmRl ciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJAZ21haWwuY29tPgoKPiDCoAo+IMKg CWJvb2wgZHBsbF9zZXQsIG1vZGVzZXQ7Cj4gwqAKPiBAQCAtMzU2LDkgKzM2Myw2IEBAIHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgewo+IMKgCXVuc2lnbmVkIGludCBhY3RpdmVfY3J0Y3M7Cj4g wqAJdW5zaWduZWQgaW50IG1pbl9waXhjbGtbSTkxNV9NQVhfUElQRVNdOwo+IMKgCj4gLQkvKiBT S0wvS0JMIE9ubHkgKi8KPiAtCXVuc2lnbmVkIGludCBjZGNsa19wbGxfdmNvOwo+IC0KPiDCoAlz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHNoYXJlZF9kcGxsW0k5MTVfTlVNX1BMTFNd Owo+IMKgCj4gwqAJLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCA3OWUyYmU0MjE2 ZTQuLmZlNTIyZWMyMTUwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC0yMDk1 LDcgKzIwOTUsNyBAQCBoc3dfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlKQo+IMKgCQlyZXR1cm4gMDsKPiDCoAlpZiAoV0FSTl9PTihhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID09IDApKQo+IMKgCQlyZXR1cm4gMDsKPiAtCWlmIChXQVJO X09OKGludGVsX3N0YXRlLT5jZGNsayA9PSAwKSkKPiArCWlmIChXQVJOX09OKGludGVsX3N0YXRl LT5jZGNsay5sb2dpY2FsLmNkY2xrID09IDApKQo+IMKgCQlyZXR1cm4gMDsKPiDCoAo+IMKgCS8q IFRoZSBXTSBhcmUgY29tcHV0ZWQgd2l0aCBiYXNlIG9uIGhvdyBsb25nIGl0IHRha2VzIHRvIGZp bGwgYSBzaW5nbGUKPiBAQCAtMjEwNCw3ICsyMTA0LDcgQEAgaHN3X2NvbXB1dGVfbGluZXRpbWVf d20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiDCoAlsaW5ldGltZSA9 IERJVl9ST1VORF9DTE9TRVNUKGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsICogMTAwMCAqIDgs Cj4gwqAJCQkJwqDCoMKgwqDCoGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOwo+IMKgCWlwc19s aW5ldGltZSA9IERJVl9ST1VORF9DTE9TRVNUKGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsICog MTAwMCAqIDgsCj4gLQkJCQkJwqBpbnRlbF9zdGF0ZS0+Y2RjbGspOwo+ICsJCQkJCcKgaW50ZWxf c3RhdGUtPmNkY2xrLmxvZ2ljYWwuY2RjbGspOwo+IMKgCj4gwqAJcmV0dXJuIFBJUEVfV01fTElO RVRJTUVfSVBTX0xJTkVUSU1FKGlwc19saW5ldGltZSkgfAo+IMKgCcKgwqDCoMKgwqDCoMKgUElQ RV9XTV9MSU5FVElNRV9USU1FKGxpbmV0aW1lKTsKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==