From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Deng, Emily" Subject: RE: [PATCH 7/7] drm/amd/amdgpu: For virtual display, enable multi crtcs. (v3) Date: Sat, 8 Oct 2016 08:22:39 +0000 Message-ID: References: <1475255328-21598-1-git-send-email-alexander.deucher@amd.com> <1475255328-21598-7-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1475255328-21598-7-git-send-email-alexander.deucher-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Alex Deucher , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Deucher, Alexander" UmV2aWV3ZWQtQnk6IEVtaWx5IERlbmcgPEVtaWx5LkRlbmdAYW1kLmNvbT4KCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBBbGV4IERldWNoZXIgW21haWx0bzphbGV4ZGV1Y2hl ckBnbWFpbC5jb21dCj4gU2VudDogU2F0dXJkYXksIE9jdG9iZXIgMDEsIDIwMTYgMTowOSBBTQo+ IFRvOiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IENjOiBEZW5nLCBFbWlseSA8RW1p bHkuRGVuZ0BhbWQuY29tPjsgRGV1Y2hlciwgQWxleGFuZGVyCj4gPEFsZXhhbmRlci5EZXVjaGVy QGFtZC5jb20+Cj4gU3ViamVjdDogW1BBVENIIDcvN10gZHJtL2FtZC9hbWRncHU6IEZvciB2aXJ0 dWFsIGRpc3BsYXksIGVuYWJsZSBtdWx0aQo+IGNydGNzLiAodjMpCj4gCj4gRnJvbTogRW1pbHkg RGVuZyA8RW1pbHkuRGVuZ0BhbWQuY29tPgo+IAo+IEVuYWJsZSBtdWx0aSBjcnRjcyBmb3Igdmly dHVhbCBkaXNwbGF5LCB1c2VyIGNhbiBzZXQgdGhlIG51bWJlciBvZiBjcnRjcyBieQo+IGFtZGdw dSBtb2R1bGUgcGFyYW1ldGVyICB2aXJ0dWFsX2Rpc3BsYXkuCj4gCj4gdjI6IG1ha2UgdGltZXJz IHBlciBjcnRjCj4gdjM6IGFnZDogc2ltcGxpZnkgaW1wbGVtZW50YXRpb24KPiAKPiBTaWduZWQt b2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDI4ICsrKysrKysr KysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyAgICB8 ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmggICB8ICA1 ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYyAgIHwgNDgg KysrKysrKysrKysrKysrLS0tLS0tLS0KPiAtLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNTIg aW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4gaW5kZXggMTNjYWE1Mi4uOTFkYzg1MSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiBAQCAtMTIzOCwy MCArMTIzOCwzOCBAQCBzdGF0aWMgdm9pZAo+IGFtZGdwdV9kZXZpY2VfZW5hYmxlX3ZpcnR1YWxf ZGlzcGxheShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgCWlmIChhbWRncHVfdmlydHVh bF9kaXNwbGF5KSB7Cj4gIAkJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBhZGV2LT5kZGV2Owo+ ICAJCWNvbnN0IGNoYXIgKnBjaV9hZGRyZXNzX25hbWUgPSBwY2lfbmFtZShkZGV2LT5wZGV2KTsK PiAtCQljaGFyICpwY2lhZGRzdHIsICpwY2lhZGRzdHJfdG1wLCAqcGNpYWRkbmFtZTsKPiArCQlj aGFyICpwY2lhZGRzdHIsICpwY2lhZGRzdHJfdG1wLCAqcGNpYWRkbmFtZV90bXAsCj4gKnBjaWFk ZG5hbWU7Cj4gCj4gIAkJcGNpYWRkc3RyID0ga3N0cmR1cChhbWRncHVfdmlydHVhbF9kaXNwbGF5 LCBHRlBfS0VSTkVMKTsKPiAgCQlwY2lhZGRzdHJfdG1wID0gcGNpYWRkc3RyOwo+IC0JCXdoaWxl ICgocGNpYWRkbmFtZSA9IHN0cnNlcCgmcGNpYWRkc3RyX3RtcCwgIjsiKSkpIHsKPiArCQl3aGls ZSAoKHBjaWFkZG5hbWVfdG1wID0gc3Ryc2VwKCZwY2lhZGRzdHJfdG1wLCAiOyIpKSkgewo+ICsJ CQlwY2lhZGRuYW1lID0gc3Ryc2VwKCZwY2lhZGRuYW1lX3RtcCwgIiwiKTsKPiAgCQkJaWYgKCFz dHJjbXAocGNpX2FkZHJlc3NfbmFtZSwgcGNpYWRkbmFtZSkpIHsKPiArCQkJCWxvbmcgbnVtX2Ny dGM7Cj4gKwkJCQlpbnQgcmVzID0gLTE7Cj4gKwo+ICAJCQkJYWRldi0+ZW5hYmxlX3ZpcnR1YWxf ZGlzcGxheSA9IHRydWU7Cj4gKwo+ICsJCQkJaWYgKHBjaWFkZG5hbWVfdG1wKQo+ICsJCQkJCXJl cyA9IGtzdHJ0b2wocGNpYWRkbmFtZV90bXAsIDEwLAo+ICsJCQkJCQkgICAgICAmbnVtX2NydGMp Owo+ICsKPiArCQkJCWlmICghcmVzKSB7Cj4gKwkJCQkJaWYgKG51bV9jcnRjIDwgMSkKPiArCQkJ CQkJbnVtX2NydGMgPSAxOwo+ICsJCQkJCWlmIChudW1fY3J0YyA+IDYpCj4gKwkJCQkJCW51bV9j cnRjID0gNjsKPiArCQkJCQlhZGV2LT5tb2RlX2luZm8ubnVtX2NydGMgPQo+IG51bV9jcnRjOwo+ ICsJCQkJfSBlbHNlIHsKPiArCQkJCQlhZGV2LT5tb2RlX2luZm8ubnVtX2NydGMgPSAxOwo+ICsJ CQkJfQo+ICAJCQkJYnJlYWs7Cj4gIAkJCX0KPiAgCQl9Cj4gCj4gLQkJRFJNX0lORk8oInZpcnR1 YWwgZGlzcGxheQo+IHN0cmluZzolcywgJXM6dmlydHVhbF9kaXNwbGF5OiVkXG4iLAo+IC0JCQkJ IGFtZGdwdV92aXJ0dWFsX2Rpc3BsYXksIHBjaV9hZGRyZXNzX25hbWUsCj4gLQkJCQkgYWRldi0+ ZW5hYmxlX3ZpcnR1YWxfZGlzcGxheSk7Cj4gKwkJRFJNX0lORk8oInZpcnR1YWwgZGlzcGxheSBz dHJpbmc6JXMsICVzOnZpcnR1YWxfZGlzcGxheTolZCwKPiBudW1fY3J0YzolZFxuIiwKPiArCQkJ IGFtZGdwdV92aXJ0dWFsX2Rpc3BsYXksIHBjaV9hZGRyZXNzX25hbWUsCj4gKwkJCSBhZGV2LT5l bmFibGVfdmlydHVhbF9kaXNwbGF5LCBhZGV2LQo+ID5tb2RlX2luZm8ubnVtX2NydGMpOwo+IAo+ ICAJCWtmcmVlKHBjaWFkZHN0cik7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2Rydi5jCj4gaW5kZXggNzI4ZThjYS4uNzIxZWYyNCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPiBAQCAtMjAxLDcgKzIwMSw4IEBAIG1vZHVsZV9w YXJhbV9uYW1lZChwZ19tYXNrLCBhbWRncHVfcGdfbWFzaywKPiB1aW50LCAwNDQ0KTsgIE1PRFVM RV9QQVJNX0RFU0MoZGlzYWJsZV9jdSwgIkRpc2FibGUgQ1VzIChzZS5zaC5jdSwuLi4pIik7Cj4g bW9kdWxlX3BhcmFtX25hbWVkKGRpc2FibGVfY3UsIGFtZGdwdV9kaXNhYmxlX2N1LCBjaGFycCwg MDQ0NCk7Cj4gCj4gLU1PRFVMRV9QQVJNX0RFU0ModmlydHVhbF9kaXNwbGF5LCAiRW5hYmxlIHZp cnR1YWwgZGlzcGxheSBmZWF0dXJlICh0aGUKPiB2aXJ0dWFsX2Rpc3BsYXkgd2lsbCBiZSBzZXQg bGlrZSB4eHh4Onh4Onh4Lng7eHh4eDp4eDp4eC54KSIpOwo+ICtNT0RVTEVfUEFSTV9ERVNDKHZp cnR1YWxfZGlzcGxheSwKPiArCQkgIkVuYWJsZSB2aXJ0dWFsIGRpc3BsYXkgZmVhdHVyZSAodGhl IHZpcnR1YWxfZGlzcGxheSB3aWxsIGJlIHNldAo+ICtsaWtlIHh4eHg6eHg6eHgueCx4O3h4eHg6 eHg6eHgueCx4KSIpOwo+ICBtb2R1bGVfcGFyYW1fbmFtZWQodmlydHVhbF9kaXNwbGF5LCBhbWRn cHVfdmlydHVhbF9kaXNwbGF5LCBjaGFycCwKPiAwNDQ0KTsKPiAKPiAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkIHBjaWlkbGlzdFtdID0geyBkaWZmIC0tZ2l0Cj4gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfbW9kZS5oCj4gaW5kZXggN2IwZWZmNy4uMWUyMzMzNCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaAo+IEBAIC0zNDEsOCArMzQxLDYg QEAgc3RydWN0IGFtZGdwdV9tb2RlX2luZm8gewo+ICAJaW50CQkJbnVtX2RpZzsgLyogbnVtYmVy IG9mIGRpZyBibG9ja3MgKi8KPiAgCWludAkJCWRpc3BfcHJpb3JpdHk7Cj4gIAljb25zdCBzdHJ1 Y3QgYW1kZ3B1X2Rpc3BsYXlfZnVuY3MgKmZ1bmNzOwo+IC0Jc3RydWN0IGhydGltZXIgdmJsYW5r X3RpbWVyOwo+IC0JZW51bSBhbWRncHVfaW50ZXJydXB0X3N0YXRlIHZzeW5jX3RpbWVyX2VuYWJs ZWQ7Cj4gIH07Cj4gCj4gICNkZWZpbmUgQU1ER1BVX01BWF9CTF9MRVZFTCAweEZGCj4gQEAgLTQx Myw2ICs0MTEsOSBAQCBzdHJ1Y3QgYW1kZ3B1X2NydGMgewo+ICAJdTMyIHdtX2hpZ2g7Cj4gIAl1 MzIgbGJfdmJsYW5rX2xlYWRfbGluZXM7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBod19t b2RlOwo+ICsJLyogZm9yIHZpcnR1YWwgZGNlICovCj4gKwlzdHJ1Y3QgaHJ0aW1lciB2Ymxhbmtf dGltZXI7Cj4gKwllbnVtIGFtZGdwdV9pbnRlcnJ1cHRfc3RhdGUgdnN5bmNfdGltZXJfZW5hYmxl ZDsKPiAgfTsKPiAKPiAgc3RydWN0IGFtZGdwdV9lbmNvZGVyX2F0b21fZGlnIHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYwo+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYwo+IGluZGV4IDBjOGIyMWUuLjY4MmUw NjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMKPiBAQCAt MzM1LDYgKzMzNSw3IEBAIHN0YXRpYyBpbnQgZGNlX3ZpcnR1YWxfY3J0Y19pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlCj4gKmFkZXYsIGludCBpbmRleCkKPiAgCWFtZGdwdV9jcnRjLT5wbGxfaWQg PSBBVE9NX1BQTExfSU5WQUxJRDsKPiAgCWFtZGdwdV9jcnRjLT5lbmNvZGVyID0gTlVMTDsKPiAg CWFtZGdwdV9jcnRjLT5jb25uZWN0b3IgPSBOVUxMOwo+ICsJYW1kZ3B1X2NydGMtPnZzeW5jX3Rp bWVyX2VuYWJsZWQgPQo+IEFNREdQVV9JUlFfU1RBVEVfRElTQUJMRTsKPiAgCWRybV9jcnRjX2hl bHBlcl9hZGQoJmFtZGdwdV9jcnRjLT5iYXNlLAo+ICZkY2VfdmlydHVhbF9jcnRjX2hlbHBlcl9m dW5jcyk7Cj4gCj4gIAlyZXR1cm4gMDsKPiBAQCAtMzQ0LDExICszNDUsOSBAQCBzdGF0aWMgaW50 IGRjZV92aXJ0dWFsX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKSAgewo+ICAJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Cj4gCj4gLQlh ZGV2LT5tb2RlX2luZm8udnN5bmNfdGltZXJfZW5hYmxlZCA9Cj4gQU1ER1BVX0lSUV9TVEFURV9E SVNBQkxFOwo+ICAJZGNlX3ZpcnR1YWxfc2V0X2Rpc3BsYXlfZnVuY3MoYWRldik7Cj4gIAlkY2Vf dmlydHVhbF9zZXRfaXJxX2Z1bmNzKGFkZXYpOwo+IAo+IC0JYWRldi0+bW9kZV9pbmZvLm51bV9j cnRjID0gMTsKPiAgCWFkZXYtPm1vZGVfaW5mby5udW1faHBkID0gMTsKPiAgCWFkZXYtPm1vZGVf aW5mby5udW1fZGlnID0gMTsKPiAgCXJldHVybiAwOwo+IEBAIC03NjAsMTQgKzc1OSwxMyBAQCBz dGF0aWMgaW50IGRjZV92aXJ0dWFsX3BhZ2VmbGlwKHN0cnVjdAo+IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCj4gCj4gIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBkY2VfdmlydHVhbF92Ymxhbmtf dGltZXJfaGFuZGxlKHN0cnVjdCBocnRpbWVyCj4gKnZibGFua190aW1lcikgIHsKPiAtCXN0cnVj dCBhbWRncHVfbW9kZV9pbmZvICptb2RlX2luZm8gPQo+IC0JCWNvbnRhaW5lcl9vZih2Ymxhbmtf dGltZXIsIHN0cnVjdCBhbWRncHVfbW9kZV9pbmZvICwKPiB2YmxhbmtfdGltZXIpOwo+IC0Jc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPQo+IC0JCWNvbnRhaW5lcl9vZihtb2RlX2luZm8sIHN0 cnVjdCBhbWRncHVfZGV2aWNlICwKPiBtb2RlX2luZm8pOwo+IC0JdW5zaWduZWQgY3J0YyA9IDA7 Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2NydGMgKmFtZGdwdV9jcnRjID0gY29udGFpbmVyX29mKHZibGFu a190aW1lciwKPiArCQkJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfY3J0YywKPiB2YmxhbmtfdGlt ZXIpOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBhbWRncHVfY3J0Yy0+YmFzZS5kZXY7 Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2YXRlOwo+IAo+ IC0JZHJtX2hhbmRsZV92YmxhbmsoYWRldi0+ZGRldiwgY3J0Yyk7Cj4gLQlkY2VfdmlydHVhbF9w YWdlZmxpcChhZGV2LCBjcnRjKTsKPiArCWRybV9oYW5kbGVfdmJsYW5rKGRkZXYsIGFtZGdwdV9j cnRjLT5jcnRjX2lkKTsKPiArCWRjZV92aXJ0dWFsX3BhZ2VmbGlwKGFkZXYsIGFtZGdwdV9jcnRj LT5jcnRjX2lkKTsKPiAgCWhydGltZXJfc3RhcnQodmJsYW5rX3RpbWVyLCBrdGltZV9zZXQoMCwK PiBEQ0VfVklSVFVBTF9WQkxBTktfUEVSSU9EKSwKPiAgCQkgICAgICBIUlRJTUVSX01PREVfUkVM KTsKPiAKPiBAQCAtNzgzLDE4ICs3ODEsMjIgQEAgc3RhdGljIHZvaWQKPiBkY2VfdmlydHVhbF9z ZXRfY3J0Y192YmxhbmtfaW50ZXJydXB0X3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZAo+ ICAJCXJldHVybjsKPiAgCX0KPiAKPiAtCWlmIChzdGF0ZSAmJiAhYWRldi0+bW9kZV9pbmZvLnZz eW5jX3RpbWVyX2VuYWJsZWQpIHsKPiArCWlmIChzdGF0ZSAmJiAhYWRldi0+bW9kZV9pbmZvLmNy dGNzW2NydGNdLT52c3luY190aW1lcl9lbmFibGVkKSB7Cj4gIAkJRFJNX0RFQlVHKCJFbmFibGUg c29mdHdhcmUgdnN5bmMgdGltZXJcbiIpOwo+IC0JCWhydGltZXJfaW5pdCgmYWRldi0+bW9kZV9p bmZvLnZibGFua190aW1lciwKPiBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwo+ IC0JCWhydGltZXJfc2V0X2V4cGlyZXMoJmFkZXYtPm1vZGVfaW5mby52YmxhbmtfdGltZXIsCj4g a3RpbWVfc2V0KDAsIERDRV9WSVJUVUFMX1ZCTEFOS19QRVJJT0QpKTsKPiAtCQlhZGV2LT5tb2Rl X2luZm8udmJsYW5rX3RpbWVyLmZ1bmN0aW9uID0KPiBkY2VfdmlydHVhbF92YmxhbmtfdGltZXJf aGFuZGxlOwo+IC0JCWhydGltZXJfc3RhcnQoJmFkZXYtPm1vZGVfaW5mby52YmxhbmtfdGltZXIs IGt0aW1lX3NldCgwLAo+IERDRV9WSVJUVUFMX1ZCTEFOS19QRVJJT0QpLCBIUlRJTUVSX01PREVf UkVMKTsKPiAtCX0gZWxzZSBpZiAoIXN0YXRlICYmIGFkZXYtPm1vZGVfaW5mby52c3luY190aW1l cl9lbmFibGVkKSB7Cj4gKwkJaHJ0aW1lcl9pbml0KCZhZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0 Y10tPnZibGFua190aW1lciwKPiArCQkJICAgICBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9E RV9SRUwpOwo+ICsJCWhydGltZXJfc2V0X2V4cGlyZXMoJmFkZXYtPm1vZGVfaW5mby5jcnRjc1tj cnRjXS0KPiA+dmJsYW5rX3RpbWVyLAo+ICsJCQkJICAgIGt0aW1lX3NldCgwLAo+IERDRV9WSVJU VUFMX1ZCTEFOS19QRVJJT0QpKTsKPiArCQlhZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0Y10tPnZi bGFua190aW1lci5mdW5jdGlvbiA9Cj4gKwkJCWRjZV92aXJ0dWFsX3ZibGFua190aW1lcl9oYW5k bGU7Cj4gKwkJaHJ0aW1lcl9zdGFydCgmYWRldi0+bW9kZV9pbmZvLmNydGNzW2NydGNdLT52Ymxh bmtfdGltZXIsCj4gKwkJCSAgICAgIGt0aW1lX3NldCgwLCBEQ0VfVklSVFVBTF9WQkxBTktfUEVS SU9EKSwKPiBIUlRJTUVSX01PREVfUkVMKTsKPiArCX0gZWxzZSBpZiAoIXN0YXRlICYmIGFkZXYt Pm1vZGVfaW5mby5jcnRjc1tjcnRjXS0KPiA+dnN5bmNfdGltZXJfZW5hYmxlZCkKPiArewo+ICAJ CURSTV9ERUJVRygiRGlzYWJsZSBzb2Z0d2FyZSB2c3luYyB0aW1lclxuIik7Cj4gLQkJaHJ0aW1l cl9jYW5jZWwoJmFkZXYtPm1vZGVfaW5mby52YmxhbmtfdGltZXIpOwo+ICsJCWhydGltZXJfY2Fu Y2VsKCZhZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0Y10tCj4gPnZibGFua190aW1lcik7Cj4gIAl9 Cj4gCj4gLQlhZGV2LT5tb2RlX2luZm8udnN5bmNfdGltZXJfZW5hYmxlZCA9IHN0YXRlOwo+ICsJ YWRldi0+bW9kZV9pbmZvLmNydGNzW2NydGNdLT52c3luY190aW1lcl9lbmFibGVkID0gc3RhdGU7 Cj4gIAlEUk1fREVCVUcoIltGTV1zZXQgY3J0YyAlZCB2YmxhbmsgaW50ZXJydXB0IHN0YXRlICVk XG4iLCBjcnRjLAo+IHN0YXRlKTsgIH0KPiAKPiBAQCAtODA0LDEzICs4MDYsMTEgQEAgc3RhdGlj IGludCBkY2VfdmlydHVhbF9zZXRfY3J0Y19pcnFfc3RhdGUoc3RydWN0Cj4gYW1kZ3B1X2Rldmlj ZSAqYWRldiwKPiAgCQkJCQkgIHVuc2lnbmVkIHR5cGUsCj4gIAkJCQkJICBlbnVtIGFtZGdwdV9p bnRlcnJ1cHRfc3RhdGUgc3RhdGUpCj4gewo+IC0Jc3dpdGNoICh0eXBlKSB7Cj4gLQljYXNlIEFN REdQVV9DUlRDX0lSUV9WQkxBTksxOgo+IC0JCWRjZV92aXJ0dWFsX3NldF9jcnRjX3ZibGFua19p bnRlcnJ1cHRfc3RhdGUoYWRldiwgMCwgc3RhdGUpOwo+IC0JCWJyZWFrOwo+IC0JZGVmYXVsdDoK PiAtCQlicmVhazsKPiAtCX0KPiArCWlmICh0eXBlID4gQU1ER1BVX0NSVENfSVJRX1ZCTEFOSzYp Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJZGNlX3ZpcnR1YWxfc2V0X2NydGNfdmJsYW5r X2ludGVycnVwdF9zdGF0ZShhZGV2LCB0eXBlLCBzdGF0ZSk7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4g IH0KPiAKPiAtLQo+IDIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngK