From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH 5/6] drm/i915: add query uAPI Date: Thu, 11 Jan 2018 17:08:54 +0000 Message-ID: <79de8cd8-5930-b1a3-6a83-c867a9412f71@intel.com> References: <20171218153520.14181-1-lionel.g.landwerlin@intel.com> <20171218153520.14181-6-lionel.g.landwerlin@intel.com> <70295384-7b38-771c-feb7-7f9fa8a40c29@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0DBE6E454 for ; Thu, 11 Jan 2018 17:08:56 +0000 (UTC) In-Reply-To: <70295384-7b38-771c-feb7-7f9fa8a40c29@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QXBwbGllZCBhbGwgb2YgeW91ciBjb21tZW50cyBoZXJlLgoKT24gMTEvMDEvMTggMTI6MTksIFR2 cnRrbyBVcnN1bGluIHdyb3RlOgo+Cj4gT24gMTgvMTIvMjAxNyAxNTozNSwgTGlvbmVsIExhbmR3 ZXJsaW4gd3JvdGU6Cj4+IFRoZXJlIGFyZSBhIG51bWJlciBvZiBpbmZvcm1hdGlvbiB0aGF0IGFy ZSByZWFkYWJsZSBmcm9tIGhhcmR3YXJlCj4+IHJlZ2lzdGVycyBhbmQgdGhhdCB3ZSB3b3VsZCBs aWtlIHRvIG1ha2UgYWNjZXNzaWJsZSB0byB1c2Vyc3BhY2UuIE9uZQo+PiBwYXJ0aWN1bGFyIGV4 YW1wbGUgaXMgdGhlIHRvcG9sb2d5IG9mIHRoZSBleGVjdXRpb24gdW5pdHMgKGhvdyBhcmUKPj4g ZXhlY3V0aW9uIHVuaXRzIGdyb3VwZWQgaW4gc3Vic2xpY2VzIGFuZCBzbGljZXMgYW5kIGFsc28g d2hpY2ggb25lcwo+PiBoYXZlIGJlZW4gZnVzZWQgb2ZmIGZvciBkaWUgcmVjb3ZlcnkpLgo+Pgo+ PiBBdCB0aGUgbW9tZW50IHRoZSBHRVRfUEFSQU0gaW9jdGwgY292ZXJzIHNvbWUgYmFzaWMgbmVl ZHMsIGJ1dAo+PiBnZW5lcmFsbHkgaXMgb25seSBhYmxlIHRvIHJldHVybiBhIHNpbmdsZSB2YWx1 ZSBmb3IgZWFjaCBkZWZpbmVkCj4+IHBhcmFtZXRlci4gVGhpcyBpcyBhIGJpdCBwcm9ibGVtYXRp YyB3aXRoIHRvcG9sb2d5IGRlc2NyaXB0aW9ucyB3aGljaAo+PiBhcmUgYXJyYXkvbWFwcyBvZiBh dmFpbGFibGUgdW5pdHMuCj4+Cj4+IFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYSBuZXcgaW9jdGwg dGhhdCBjYW4gZGVhbCB3aXRoIHJlcXVlc3RzIHRvIGZpbGwKPj4gc3RydWN0dXJlcyBvZiBwb3Rl bnRpYWxseSB2YXJpYWJsZSBsZW5ndGhzLiBUaGUgdXNlciBpcyBleHBlY3RlZCBmaWxsCj4+IGEg cXVlcnkgd2l0aCBsZW5ndGggZmllbGRzIHNldCBhdCAwIG9uIHRoZSBmaXJzdCBjYWxsLCB0aGUg a2VybmVsIHRoZW4KPj4gc2V0cyB0aGUgbGVuZ3RoIGZpZWxkcyB0byB0aGUgdGhlaXIgZXhwZWN0 ZWQgdmFsdWVzLiBBIHNlY29uZCBjYWxsIHRvCj4+IHRoZSBrZXJuZWwgd2l0aCBsZW5ndGggZmll bGRzIGF0IHRoZWlyIGV4cGVjdGVkIHZhbHVlcyB3aWxsIHRyaWdnZXIgYQo+PiBjb3B5IG9mIHRo ZSBkYXRhIHRvIHRoZSBwb2ludGVkIG1lbW9yeSBsb2NhdGlvbnMuCj4+Cj4+IFRoZSBzY29wZSBv ZiB0aGlzIHVBUEkgaXMgb25seSB0byBwcm92aWRlIGluZm9ybWF0aW9uIHRvIHVzZXJzcGFjZSwK Pj4gbm90IHRvIGFsbG93IGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRldmljZS4KPj4KPj4gU2lnbmVk LW9mZi1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29t Pgo+PiAtLS0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGXCoMKgwqDCoCB8wqAg MSArCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmPCoMKgIHzCoCAxICsKPj4g wqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqAgfMKgIDMgKysrCj4+IMKgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcXVlcnkuYyB8IDUyIAo+PiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o wqDCoMKgwqDCoMKgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgNSBmaWxlcyBj aGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspCj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+ IGluZGV4IDA5MWFlZjI4MTk2My4uOTYyN2U3ZTMwOWRjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtl ZmlsZQo+PiBAQCAtNjksNiArNjksNyBAQCBpOTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8gXAo+ PiDCoMKgwqDCoMKgwqDCoCBpOTE1X2dlbV90aW1lbGluZS5vIFwKPj4gwqDCoMKgwqDCoMKgwqAg aTkxNV9nZW1fdXNlcnB0ci5vIFwKPj4gwqDCoMKgwqDCoMKgwqAgaTkxNV9nZW1mcy5vIFwKPj4g K8KgwqDCoMKgwqAgaTkxNV9xdWVyeS5vIFwKPj4gwqDCoMKgwqDCoMKgwqAgaTkxNV90cmFjZV9w b2ludHMubyBcCj4+IMKgwqDCoMKgwqDCoMKgIGk5MTVfdm1hLm8gXAo+PiDCoMKgwqDCoMKgwqDC oCBpbnRlbF9icmVhZGNydW1icy5vIFwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiBp bmRleCA4Yjk5ZTQxNWMzNDUuLmE5MGVkOWYyYjc1OSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jCj4+IEBAIC0yODE0LDYgKzI4MTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9p b2N0bF9kZXNjIAo+PiBpOTE1X2lvY3Rsc1tdID0gewo+PiDCoMKgwqDCoMKgIERSTV9JT0NUTF9E RUZfRFJWKEk5MTVfUEVSRl9PUEVOLCBpOTE1X3BlcmZfb3Blbl9pb2N0bCwgCj4+IERSTV9SRU5E RVJfQUxMT1cpLAo+PiDCoMKgwqDCoMKgIERSTV9JT0NUTF9ERUZfRFJWKEk5MTVfUEVSRl9BRERf Q09ORklHLCAKPj4gaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwsIERSTV9VTkxPQ0tFRHxEUk1f UkVOREVSX0FMTE9XKSwKPj4gwqDCoMKgwqDCoCBEUk1fSU9DVExfREVGX0RSVihJOTE1X1BFUkZf UkVNT1ZFX0NPTkZJRywgCj4+IGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsLCBEUk1fVU5M T0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCj4+ICvCoMKgwqAgRFJNX0lPQ1RMX0RFRl9EUlYoSTkx NV9RVUVSWSwgaTkxNV9xdWVyeV9pb2N0bCwgCj4+IERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FM TE9XKSwKPj4gwqAgfTsKPj4gwqAgwqAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9 IHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCA4MmZjNTkwNzhjNmEuLjM0 MTVhM2QyMzk5YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC00MDg0LDYg KzQwODQsOSBAQCBleHRlcm4gdm9pZCBpOTE1X3BlcmZfZmluaShzdHJ1Y3QgCj4+IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gwqAgZXh0ZXJuIHZvaWQgaTkxNV9wZXJmX3JlZ2lzdGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+IMKgIGV4dGVybiB2b2lkIGk5 MTVfcGVyZl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ IMKgICsvKiBpOTE1X3F1ZXJ5LmMgKi8KPj4gK2ludCBpOTE1X3F1ZXJ5X2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCAKPj4gZHJtX2ZpbGUgKmZpbGUpOwo+ PiArCj4+IMKgIC8qIGk5MTVfc3VzcGVuZC5jICovCj4+IMKgIGV4dGVybiBpbnQgaTkxNV9zYXZl X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+IMKgIGV4dGVybiBp bnQgaTkxNV9yZXN0b3JlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3F1ZXJ5LmMgCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uMjI3YTI4OTc4MTkwCj4+IC0tLSAvZGV2L251bGwKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5jCj4+IEBAIC0wLDAgKzEsNTIg QEAKPj4gKy8qCj4+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNyBJbnRlbCBDb3Jwb3JhdGlvbgo+PiAr ICoKPj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIAo+PiBvYnRhaW5pbmcgYQo+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAKPj4gIlNvZnR3YXJlIiks Cj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCAKPj4gbGltaXRhdGlvbgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIAo+PiBzdWJsaWNlbnNlLAo+ PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gCj4+IHRoZQo+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBU aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5j bHVkaW5nIAo+PiB0aGUgbmV4dAo+PiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBp biBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIAo+PiBwb3J0aW9ucyBvZiB0aGUKPj4gKyAqIFNv ZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCAKPj4gRVhQUkVTUyBPUgo+PiArICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiAKPj4gTUVS Q0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC7CoCBJTiBOTyAKPj4gRVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IAo+PiBPUiBPVEhFUgo+PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIAo+PiBBUklTSU5HCj4+ICsgKiBGUk9NLCBPVVQg T0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIAo+PiBP VEhFUiBERUFMSU5HUwo+PiArICogSU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqLwo+PiAr Cj4+ICsjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPj4gKyNpbmNsdWRlIDx1YXBpL2RybS9pOTE1X2Ry bS5oPgo+PiArCj4+ICtpbnQgaTkxNV9xdWVyeV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgCj4+IGRybV9maWxlICpmaWxlKQo+PiArewo+PiArwqDCoMKg IHN0cnVjdCBkcm1faTkxNV9xdWVyeSAqYXJncyA9IGRhdGE7Cj4KPiBBbiBhbHRlcm5hdGl2ZSBJ IHRoaW5rIGNvdWxkIGJlOgo+Cj4gc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gX191c2VyICp1 c2VyX2l0ZW1fcHRyID0gCj4gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPml0ZW1zX3B0cik7Cj4KPj4g K8KgwqDCoCB1MzIgaTsKPj4gKwo+PiArwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBhcmdzLT5udW1f aXRlbXM7IGkrKykgewo+Cj4gaSsrLCB1c2VyX2l0ZW1fcHRyKysKPgo+PiArwqDCoMKgwqDCoMKg wqAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbTsKPj4gK8KgwqDCoMKgwqDCoMKgIHU2 NCBpdGVtX3VzZXJfcHRyID0gYXJncy0+aXRlbXNfcHRyICsgc2l6ZW9mKGl0ZW0pICogaTsKPiBT byB5b3UgY2FuIGRyb3AgdGhpcyBsaW5lLgo+Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChj b3B5X2Zyb21fdXNlcigmaXRlbSwgdTY0X3RvX3VzZXJfcHRyKGl0ZW1fdXNlcl9wdHIpLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVvZihpdGVtKSkpCj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUZBVUxUOwo+Cj4gQW5kIGRyb3AgdTY0X3Rv X3VzZXJfcHRyIGZyb20gaGVyZS4uLgo+Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIHN3aXRjaCAo aXRlbS5xdWVyeV9pZCkgewo+PiArwqDCoMKgwqDCoMKgwqAgZGVmYXVsdDoKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ICsK Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChjb3B5X3RvX3VzZXIodTY0X3RvX3VzZXJfcHRyKGl0ZW1f dXNlcl9wdHIpLCAmaXRlbSwKPgo+IC4uLiBhbmQgaGVyZS4KPgo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGl0ZW0pKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIC1FRkFVTFQ7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIDA7 Cj4+ICt9Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPj4gaW5kZXggNTM2ZWU0ZmViZDc0Li44N2RkOGIxNTU0 OGMgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAo+PiArKysgYi9p bmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPj4gQEAgLTMxOCw2ICszMTgsNyBAQCB0eXBlZGVm IHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEgewo+PiDCoCAjZGVmaW5lIERSTV9JOTE1X1BFUkZfT1BF TsKgwqDCoMKgwqDCoMKgIDB4MzYKPj4gwqAgI2RlZmluZSBEUk1fSTkxNV9QRVJGX0FERF9DT05G SUfCoMKgwqAgMHgzNwo+PiDCoCAjZGVmaW5lIERSTV9JOTE1X1BFUkZfUkVNT1ZFX0NPTkZJR8Kg wqDCoCAweDM4Cj4+ICsjZGVmaW5lIERSTV9JOTE1X1FVRVJZwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAweDM5Cj4+IMKgIMKgICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfSU5JVMKgwqDCoMKgwqDCoMKg IERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyAKPj4gRFJNX0k5MTVfSU5JVCwgZHJtX2k5MTVf aW5pdF90KQo+PiDCoCAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0ZMVVNIwqDCoMKgwqDCoMKgwqAg RFJNX0lPICggRFJNX0NPTU1BTkRfQkFTRSArIAo+PiBEUk1fSTkxNV9GTFVTSCkKPj4gQEAgLTM3 NSw2ICszNzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfc2FyZWEgewo+PiDCoCAjZGVm aW5lIERSTV9JT0NUTF9JOTE1X1BFUkZfT1BFTsKgwqDCoCBEUk1fSU9XKERSTV9DT01NQU5EX0JB U0UgKyAKPj4gRFJNX0k5MTVfUEVSRl9PUEVOLCBzdHJ1Y3QgZHJtX2k5MTVfcGVyZl9vcGVuX3Bh cmFtKQo+PiDCoCAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X1BFUkZfQUREX0NPTkZJRyBEUk1fSU9X KERSTV9DT01NQU5EX0JBU0UgKyAKPj4gRFJNX0k5MTVfUEVSRl9BRERfQ09ORklHLCBzdHJ1Y3Qg ZHJtX2k5MTVfcGVyZl9vYV9jb25maWcpCj4+IMKgICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfUEVS Rl9SRU1PVkVfQ09ORklHIERSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSAKPj4gKyBEUk1fSTkxNV9Q RVJGX1JFTU9WRV9DT05GSUcsIF9fdTY0KQo+PiArI2RlZmluZSBEUk1fSU9DVExfSTkxNV9RVUVS WSBEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyAKPj4gRFJNX0k5MTVfUVVFUlksIHN0cnVjdCBk cm1faTkxNV9xdWVyeSkKPgo+IERSTV9JT1dSIEkgdGhpbmsuCj4KPj4gwqAgwqAgLyogQWxsb3cg ZHJpdmVycyB0byBzdWJtaXQgYmF0Y2hidWZmZXJzIGRpcmVjdGx5IHRvIGhhcmR3YXJlLCAKPj4g cmVseWluZwo+PiDCoMKgICogb24gdGhlIHNlY3VyaXR5IG1lY2hhbmlzbXMgcHJvdmlkZWQgYnkg aGFyZHdhcmUuCj4+IEBAIC0xNjEzLDYgKzE2MTUsMzUgQEAgc3RydWN0IGRybV9pOTE1X3BlcmZf b2FfY29uZmlnIHsKPj4gwqDCoMKgwqDCoCBfX3U2NCBmbGV4X3JlZ3NfcHRyOwo+PiDCoCB9Owo+ PiDCoCArCj4+ICtzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSB7Cj4+ICvCoMKgwqAgX191MzIg cXVlcnlfaWQ7Cj4KPiBNYXliZSBtYWtlIGl0IDY0LWJpdCwganVzdCBpbiBjYXNlIHdlIGdldCBh IG5lZWQgdG8gcmVzZXJ2ZSBibG9ja3Mgb2YgCj4gYml0cyBzbyB3ZSBoYXZlIHNvbWUgbW9yZSBz cGFjZSB0aGVuLgo+Cj4+ICsKPj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAgKiBXaGVuIGxlZnQg dG8gMCBieSB1c2Vyc3BhY2UsIHRoaXMgaXMgZmlsbGVkIHdpdGggdGhlIHNpemUgdGhlIAo+PiBk YXRhCj4KPiBzL2xlZnQgdG8gMC9zZXQgdG8gemVyby8/Cj4gcy90aGUgZGF0YS9vZiB0aGUgZGF0 YS8KPgo+PiArwqDCoMKgwqAgKiB0byBiZSB3cml0dGVuIGF0IHRoZSBxdWVyeV9kYXRhIHBvaW50 ZXIuCj4KPiBzL3F1ZXJ5X2RhdGEvZGF0YV9wdHIvID8gT3IgcmVuYW1lIHRoZSBmaWVsZCB0byBx dWVyeV9kYXRhIC0gSSBkb24ndCAKPiBoYXZlIGEgY2FzZSBmb3Igb25lIHZlcnN1cyB0aGUgb3Ro ZXIuCj4KPj4gK8KgwqDCoMKgICovCj4+ICvCoMKgwqAgX191MzIgbGVuZ3RoOwo+PiArCj4+ICvC oMKgwqAgLyoKPj4gK8KgwqDCoMKgICogRGF0YSB3aWxsIGJlIHdyaXR0ZW4gYXQgdGhlIGxvY2F0 aW9uIHBvaW50ZWQgYnkgZGF0YV9wdHIgd2hlbiAKPj4gdGhlCj4+ICvCoMKgwqDCoCAqIHZhbHVl IG9mIGxlbmd0aCBtYXRjaGVzIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgdG8gYmUgd3JpdHRlbiAK Pj4gYnkgdGhlCj4+ICvCoMKgwqDCoCAqIGtlcm5lbC4KPj4gK8KgwqDCoMKgICovCj4+ICvCoMKg wqAgX191NjQgZGF0YV9wdHI7ID4gK307Cj4+ICsKPj4gK3N0cnVjdCBkcm1faTkxNV9xdWVyeSB7 Cj4+ICvCoMKgwqAgX191MzIgbnVtX2l0ZW1zOwo+PiArwqDCoMKgIF9fdTMyIF9wYWQ7Cj4+ICsK Pj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAgKiBUaGlzIHBvaW50cyBhbiBhcnJheSBvZiBzdHJ1 Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSBvZiBsZW5ndGgKPgo+ICJUaGlzIHBvaW50IHRvIGFuIGFy cmF5IG9mIG51bV9pdGVtcyBkcm1faTkxNV9xdWVyeV9pdGVtIHN0cnVjdHVyZXMiID8KPgo+PiAr wqDCoMKgwqAgKiBudW1faXRlbXMuCj4+ICvCoMKgwqDCoCAqLwo+PiArwqDCoMKgIF9fdTY0IGl0 ZW1zX3B0cjsKPj4gK307Cj4+ICsKPj4gwqAgI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCj4+IMKg IH0KPj4gwqAgI2VuZGlmCj4+Cj4KPiBCdXQgaW4gZ2VuZXJhbCB0aGlzIHdvcmtzIGZvciBtZS4K Pgo+IENhbid0IHJlbWVtYmVyIHdobyBsYXN0IHRpbWUgcmFpc2VkIGEgY29tcGxhaW50IGFib3V0 IGRpc3BhdGNoZXIsIAo+IHdpdGhpbiBhIGRpc3BhdGNoZXIsIHdpdGhpbi4uLCBidXQgd2UgY2Fu J3QgaGF2ZSBpdCBhbGwuIEl0J3MgZWl0aGVyIAo+IG5lc3RlZCBkaXNwYXRjaGVycywgb3IgbXVs dGlwbGUgc2luZ2xlIHB1cnBvc2UgaW9jdGxzLCBvciBzeXNmcy4gCj4gRXhlY3V0aXZlIGRlY2lz aW9uIHRpbWUuIDopCj4KPiBBZ2FpbiwgdGhpcyBhcHByb2FjaCBsb29rcyBxdWl0ZSBlYXN5IHRv IGV4dGVuZCwgYW5kIHdpdGggbG93IAo+IGJvaWxlcnBsYXRlIGNvZGUgcmVxdWlyZW1lbnRzIHNv IGl0IGxvb2tzIGdvb2QgdG8gbWUuCj4KPiBSZWdhcmRzLAo+Cj4gVHZydGtvCj4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=