From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH 03/10] drm/i915/psr: fix blank screen issue for psr2 Date: Thu, 5 Jan 2017 12:37:23 -0800 Message-ID: <20170105203723.GA2898@shiv> References: <1483644359-17866-1-git-send-email-vathsala.nagaraju@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1483644359-17866-1-git-send-email-vathsala.nagaraju@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: vathsala nagaraju Cc: intel-gfx@lists.freedesktop.org, Patil Deepti , dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMDYsIDIwMTcgYXQgMTI6NTU6NTlBTSArMDUzMCwgdmF0aHNhbGEgbmFnYXJh anUgd3JvdGU6Cj4gUHNyMSBhbmQgcHNyMiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLGllIHdoZW4g cHNyMiBpcyBlbmFibGVkLAo+IHBzcjEgc2hvdWxkIGJlIGRpc2FibGVkLldoZW4gcHNyMiBpcyBl eGl0ZWQgLCBiaXQgMzEgb2YgcmVnCj4gUFNSMl9DVEwgbXVzdCBiZSBzZXQgdG8gMCBidXQgY3Vy cmVudGx5IGJpdCAzMSBvZiBTUkRfQ1RMCj4gKHBzcjEgY29udHJvbCByZWdpc3RlcilpcyBzZXQg dG8gMC4KPiBBbHNvICxQU1IyX0lETEUgc3RhdGUgaXMgbG9va2VkIHVwIGZyb20gU1JEX1NUQVRV Uyhwc3IxIHJlZ2lzdGVyKQo+IGluc3RlYWQgb2YgUFNSMl9TVEFUVVMgcmVnaXN0ZXIsIHdoaWNo IGhhcyB3cm9uZyBkYXRhLCByZXN1bHRpbmcKPiBpbiBibGFua3NjcmVlbi4KPiBoc3dfZW5hYmxl X3NvdXJjZSBpcyBzcGxpdCBpbnRvIGhzd19lbmFibGVfc291cmNlX3BzcjEgYW5kCj4gaHN3X2Vu YWJsZV9zb3VyY2VfcHNyMiBmb3IgZWFzaWVyIGNvZGUgcmV2aWV3IGFuZCBtYWludGVuYW5jZSwK PiBhcyBzdWdnZXN0ZWQgYnkgcm9kcmlnbyBhbmQgamltLgo+IAo+IHYyOiAoVml2aSBSb2RyaWdv KQo+IC0gUmVuYW1lIGhzd19lbmFibGVfc291cmNlX3BzciogdG8gaW50ZWxfZW5hYmxlX3NvdXJj ZV9wc3IqCj4gCj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBD YzogSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6 IFZhdGhzYWxhIE5hZ2FyYWp1IDx2YXRoc2FsYS5uYWdhcmFqdUBpbnRlbC5jb20+Cj4gU2lnbmVk LW9mZi1ieTogUGF0aWwgRGVlcHRpIDxkZWVwdGkucGF0aWxAaW50ZWwuY29tPgoKVGhlIG5ldyBu YW1pbmcgaXMgbXVjaCBiZXR0ZXIhCgpSZXZpZXdlZC1ieTogSmltIEJyaWRlIDxqaW0uYnJpZGVA bGludXguaW50ZWwuY29tPgoKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggIHwgICAzICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgfCAxMjQgKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwg OTcgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gaW5kZXggMDA5NzBhYS4uNzgzMGU2ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+IEBAIC0zNjE1LDYgKzM2MTUsOSBAQCBlbnVtIHsKPiAgI2RlZmluZSAgIEVEUF9QU1IyX0ZS QU1FX0JFRk9SRV9TVV9NQVNLCSgweGY8PDQpCj4gICNkZWZpbmUgICBFRFBfUFNSMl9JRExFX01B U0sJCTB4Zgo+ICAKPiArI2RlZmluZSBFRFBfUFNSMl9TVEFUVVNfQ1RMICAgICAgICAgICAgX01N SU8oMHg2Zjk0MCkKPiArI2RlZmluZSBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFTSyAgICAgKDB4 Zjw8MjgpCj4gKwo+ICAvKiBWR0EgcG9ydCBjb250cm9sICovCj4gICNkZWZpbmUgQURQQQkJCV9N TUlPKDB4NjExMDApCj4gICNkZWZpbmUgUENIX0FEUEEgICAgICAgICAgICAgICAgX01NSU8oMHhl MTEwMCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGluZGV4IGMzYWE2NDkuLmQ1ZThiY2Mg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IEBAIC0yNjEsMTIgKzI2MSwxMSBAQCBz dGF0aWMgdm9pZCB2bHZfcHNyX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g IAkJICAgVkxWX0VEUF9QU1JfQUNUSVZFX0VOVFJZKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQg aHN3X3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3N0YXRp YyB2b2lkIGludGVsX2VuYWJsZV9zb3VyY2VfcHNyMShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+ YmFzZS5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiAtCj4gIAl1aW50MzJfdCBtYXhfc2xlZXBfdGltZSA9IDB4MWY7Cj4gIAkv Kgo+ICAJICogTGV0J3MgcmVzcGVjdCBWQlQgaW4gY2FzZSBWQlQgYXNrcyBhIGhpZ2hlciBpZGxl X2ZyYW1lIHZhbHVlLgo+IEBAIC0zMTIsMTQgKzMxMSwzMCBAQCBzdGF0aWMgdm9pZCBoc3dfcHNy X2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQl2YWwgfD0gRURQ X1BTUl9UUDFfVFAyX1NFTDsKPiAgCj4gIAlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwpOwo+ ICt9Cj4gIAo+IC0JaWYgKCFkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkKPiAtCQlyZXR1cm47 Cj4gK3N0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9zb3VyY2VfcHNyMihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9 IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk aWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCj4gKwkvKgo+ICsJICogTGV0J3MgcmVzcGVjdCBWQlQg aW4gY2FzZSBWQlQgYXNrcyBhIGhpZ2hlciBpZGxlX2ZyYW1lIHZhbHVlLgo+ICsJICogTGV0J3Mg dXNlIDYgYXMgdGhlIG1pbmltdW0gdG8gY292ZXIgYWxsIGtub3duIGNhc2VzIGluY2x1ZGluZwo+ ICsJICogdGhlIG9mZi1ieS1vbmUgaXNzdWUgdGhhdCBIVyBoYXMgaW4gc29tZSBjYXNlcy4gQWxz byB0aGVyZSBhcmUKPiArCSAqIGNhc2VzIHdoZXJlIHNpbmsgc2hvdWxkIGJlIGFibGUgdG8gdHJh aW4KPiArCSAqIHdpdGggdGhlIDUgb3IgNiBpZGxlIHBhdHRlcm5zLgo+ICsJICovCj4gKwl1aW50 MzJfdCBpZGxlX2ZyYW1lcyA9IG1heCg2LCBkZXZfcHJpdi0+dmJ0LnBzci5pZGxlX2ZyYW1lcyk7 Cj4gKwl1aW50MzJfdCB2YWwgPSBFRFBfUFNSX0VOQUJMRTsKPiArCj4gKwl2YWwgfD0gaWRsZV9m cmFtZXMgPDwgRURQX1BTUl9JRExFX0ZSQU1FX1NISUZUOwo+ICAKPiAgCS8qIEZJWE1FOiBzZWxl Y3RpdmUgdXBkYXRlIGlzIHByb2JhYmx5IHRvdGFsbHkgYnJva2VuIGJlY2F1c2UgaXQgZG9lc24n dAo+ICAJICogbWVzaCBhdCBhbGwgd2l0aCBvdXIgZnJvbnRidWZmZXIgdHJhY2tpbmcuIEFuZCB0 aGUgaHcgYWxvbmUgaXNuJ3QKPiAgCSAqIGdvb2QgZW5vdWdoLiAqLwo+IC0JdmFsID0gRURQX1BT UjJfRU5BQkxFIHwgRURQX1NVX1RSQUNLX0VOQUJMRTsKPiArCXZhbCB8PSBFRFBfUFNSMl9FTkFC TEUgfCBFRFBfU1VfVFJBQ0tfRU5BQkxFOwo+ICAKPiAgCWlmIChkZXZfcHJpdi0+dmJ0LnBzci50 cDJfdHAzX3dha2V1cF90aW1lID4gNSkKPiAgCQl2YWwgfD0gRURQX1BTUjJfVFAyX1RJTUVfMjUw MDsKPiBAQCAtMzMzLDYgKzM0OCwyMCBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2VuYWJsZV9zb3Vy Y2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RM LCB2YWwpOwo+ICB9Cj4gIAo+ICsKPiArc3RhdGljIHZvaWQgaHN3X3Bzcl9lbmFibGVfc291cmNl KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsKPiArCS8qIHBzcjEgYW5k IHBzcjIgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4qLwo+ICsJaWYgKGRldl9wcml2LT5wc3IucHNy Ml9zdXBwb3J0KQo+ICsJCWludGVsX2VuYWJsZV9zb3VyY2VfcHNyMihpbnRlbF9kcCk7Cj4gKwll bHNlCj4gKwkJaW50ZWxfZW5hYmxlX3NvdXJjZV9wc3IxKGludGVsX2RwKTsKPiArfQo+ICsKPiAg c3RhdGljIGJvb2wgaW50ZWxfcHNyX21hdGNoX2NvbmRpdGlvbnMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gQEAgLTQxMCw3ICs0MzksMTAgQEAgc3RhdGljIHZv aWQgaW50ZWxfcHNyX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAo+IC0J V0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9FTkFCTEUpOwo+ICsJaWYg KGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KQo+ICsJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9Q U1IyX0NUTCkgJiBFRFBfUFNSMl9FTkFCTEUpOwo+ICsJZWxzZQo+ICsJCVdBUk5fT04oSTkxNV9S RUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFKTsKPiAgCVdBUk5fT04oZGV2X3ByaXYt PnBzci5hY3RpdmUpOwo+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBzci5sb2Nr KTsKPiAgCj4gQEAgLTQ2Miw4ICs0OTQsNiBAQCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9i aXRzID0gMDsKPiAgCj4gIAlpZiAoSEFTX0RESShkZXZfcHJpdikpIHsKPiAtCQloc3dfcHNyX3Nl dHVwX3ZzYyhpbnRlbF9kcCk7Cj4gLQo+ICAJCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9y dCkgewo+ICAJCQkvKiBQU1IyIGlzIHJlc3RyaWN0ZWQgdG8gd29yayB3aXRoIHBhbmVsIHJlc29s dXRpb25zIHVwdG8gMzIwMHgyMDAwICovCj4gIAkJCWlmIChjcnRjLT5jb25maWctPnBpcGVfc3Jj X3cgPiAzMjAwIHx8Cj4gQEAgLTQ3MSw4ICs1MDEsMTAgQEAgdm9pZCBpbnRlbF9wc3JfZW5hYmxl KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkJCQlkZXZfcHJpdi0+cHNyLnBzcjJfc3Vw cG9ydCA9IGZhbHNlOwo+ICAJCQllbHNlCj4gIAkJCQlza2xfcHNyX3NldHVwX3N1X3ZzYyhpbnRl bF9kcCk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJLyogc2V0IHVwIHZzYyBoZWFkZXIgZm9yIHBzcjEg Ki8KPiArCQkJaHN3X3Bzcl9zZXR1cF92c2MoaW50ZWxfZHApOwo+ICAJCX0KPiAtCj4gIAkJLyoK PiAgCQkgKiBQZXIgU3BlYzogQXZvaWQgY29udGludW91cyBQU1IgZXhpdCBieSBtYXNraW5nIE1F TVVQIGFuZCBIUEQuCj4gIAkJICogQWxzbyBtYXNrIExQU1AgdG8gYXZvaWQgZGVwZW5kZW5jeSBv biBvdGhlciBkcml2ZXJzIHRoYXQKPiBAQCAtNTU3LDIwICs1ODksMzcgQEAgc3RhdGljIHZvaWQg aHN3X3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAo+ICAJaWYgKGRldl9w cml2LT5wc3IuYWN0aXZlKSB7Cj4gLQkJSTkxNV9XUklURShFRFBfUFNSX0NUTCwKPiAtCQkJICAg STkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmIH5FRFBfUFNSX0VOQUJMRSk7Cj4gKwkJaWYgKGRldl9w cml2LT5wc3IucHNyMl9zdXBwb3J0KQo+ICsJCQlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTCwKPiAr CQkJCUk5MTVfUkVBRChFRFBfUFNSMl9DVEwpICYKPiArCQkJCQl+KEVEUF9QU1IyX0VOQUJMRSB8 Cj4gKwkJCQkJRURQX1NVX1RSQUNLX0VOQUJMRSkpOwo+ICsJCWVsc2UKPiArCQkJSTkxNV9XUklU RShFRFBfUFNSX0NUTCwKPiArCQkJCSAgIEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiB+RURQX1BT Ul9FTkFCTEUpOwo+ICAKPiAgCQkvKiBXYWl0IHRpbGwgUFNSIGlzIGlkbGUgKi8KPiAtCQlpZiAo aW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gLQkJCQkJICAgIEVEUF9QU1JfU1RB VFVTX0NUTCwKPiAtCQkJCQkgICAgRURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSywKPiAtCQkJCQkg ICAgMCwKPiAtCQkJCQkgICAgMjAwMCkpCj4gKwkJaWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBw b3J0KSB7Cj4gKwkJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJ CQkJICAgIEVEUF9QU1IyX1NUQVRVU19DVEwsCj4gKwkJCQkJCSAgICBFRFBfUFNSMl9TVEFUVVNf U1RBVEVfTUFTSywKPiArCQkJCQkJICAgIDAsCj4gKwkJCQkJCSAgICAyMDAwKSkKPiArCQkJRFJN X0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgUFNSMiBJZGxlIFN0YXRlXG4iKTsKPiArCQl9 IGVsc2Ugewo+ICsJCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJ CQkJCSAgICBFRFBfUFNSX1NUQVRVU19DVEwsCj4gKwkJCQkJCSAgICBFRFBfUFNSX1NUQVRVU19T VEFURV9NQVNLLAo+ICsJCQkJCQkgICAgMCwKPiArCQkJCQkJICAgIDIwMDApKQo+ICAJCQlEUk1f RVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1IgSWRsZSBTdGF0ZVxuIik7Cj4gLQo+ICsJ CX0KPiAgCQlkZXZfcHJpdi0+cHNyLmFjdGl2ZSA9IGZhbHNlOwo+ICAJfSBlbHNlIHsKPiAtCQlX QVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gKwkJaWYg KGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KQo+ICsJCQlXQVJOX09OKEk5MTVfUkVBRChFRFBf UFNSMl9DVEwpICYgRURQX1BTUjJfRU5BQkxFKTsKPiArCQllbHNlCj4gKwkJCVdBUk5fT04oSTkx NV9SRUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFKTsKPiAgCX0KPiAgfQo+ICAKPiBA QCAtNjIxLDEzICs2NzAsMjQgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQo+ICAJICogYW5kIGJlIHJlYWR5IGZvciByZS1lbmFibGUuCj4gIAkg Ki8KPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSkgewo+IC0JCWlmIChpbnRlbF93YWl0X2Zvcl9y ZWdpc3RlcihkZXZfcHJpdiwKPiAtCQkJCQkgICAgRURQX1BTUl9TVEFUVVNfQ1RMLAo+IC0JCQkJ CSAgICBFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLLAo+IC0JCQkJCSAgICAwLAo+IC0JCQkJCSAg ICA1MCkpIHsKPiAtCQkJRFJNX0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgUFNSIElkbGUg Zm9yIHJlLWVuYWJsZVxuIik7Cj4gLQkJCXJldHVybjsKPiArCQlpZiAoZGV2X3ByaXYtPnBzci5w c3IyX3N1cHBvcnQpIHsKPiArCQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2 LAo+ICsJCQkJCQlFRFBfUFNSMl9TVEFUVVNfQ1RMLAo+ICsJCQkJCQlFRFBfUFNSMl9TVEFUVVNf U1RBVEVfTUFTSywKPiArCQkJCQkJMCwKPiArCQkJCQkJNTApKSB7Cj4gKwkJCQlEUk1fRVJST1Io IlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1IyIElkbGUgZm9yIHJlLWVuYWJsZVxuIik7Cj4gKwkJ CQlyZXR1cm47Cj4gKwkJCX0KPiArCQl9IGVsc2Ugewo+ICsJCQlpZiAoaW50ZWxfd2FpdF9mb3Jf cmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQkJCUVEUF9QU1JfU1RBVFVTX0NUTCwKPiArCQkJCQkJ RURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSywKPiArCQkJCQkJMCwKPiArCQkJCQkJNTApKSB7Cj4g KwkJCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1IgSWRsZSBmb3IgcmUtZW5h YmxlXG4iKTsKPiArCQkJCXJldHVybjsKPiArCQkJfQo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gIAkJ aWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+IEBAIC02NjksMTEgKzcyOSwx NSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSkgewo+ IC0JCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTCk7Cj4gLQo+IC0JCVdBUk5fT04oISh2YWwg JiBFRFBfUFNSX0VOQUJMRSkpOwo+IC0KPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwg JiB+RURQX1BTUl9FTkFCTEUpOwo+ICsJCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkg ewo+ICsJCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKTsKPiArCQkJV0FSTl9PTighKHZh bCAmIEVEUF9QU1IyX0VOQUJMRSkpOwo+ICsJCQlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTCwgdmFs ICYgfkVEUF9QU1IyX0VOQUJMRSk7Cj4gKwkJfSBlbHNlIHsKPiArCQkJdmFsID0gSTkxNV9SRUFE KEVEUF9QU1JfQ1RMKTsKPiArCQkJV0FSTl9PTighKHZhbCAmIEVEUF9QU1JfRU5BQkxFKSk7Cj4g KwkJCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwsIHZhbCAmIH5FRFBfUFNSX0VOQUJMRSk7Cj4gKwkJ fQo+ICAJfSBlbHNlIHsKPiAgCQl2YWwgPSBJOTE1X1JFQUQoVkxWX1BTUkNUTChwaXBlKSk7Cj4g IAo+IC0tIAo+IDEuOS4xCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=