From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 03/10] drm/i915/psr: fix blank screen issue for psr2 Date: Thu, 5 Jan 2017 10:05:14 -0800 Message-ID: <20170105180514.GF13837@intel.com> References: <1483356663-32668-1-git-send-email-vathsala.nagaraju@intel.com> <1483356663-32668-4-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: <1483356663-32668-4-git-send-email-vathsala.nagaraju@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: vathsala nagaraju Cc: intel-gfx@lists.freedesktop.org, Patil Deepti , Jim Bride , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMDIsIDIwMTcgYXQgMDU6MDA6NTZQTSArMDUzMCwgdmF0aHNhbGEgbmFnYXJh anUgd3JvdGU6Cj4gUHNyMSBhbmQgcHNyMiBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLGllIHdoZW4g cHNyMiBpcyBlbmFibGVkLAo+IHBzcjEgc2hvdWxkIGJlIGRpc2FibGVkLldoZW4gcHNyMiBpcyBl eGl0ZWQgLCBiaXQgMzEgb2YgcmVnCj4gUFNSMl9DVEwgbXVzdCBiZSBzZXQgdG8gMCBidXQgY3Vy cmVudGx5IGJpdCAzMSBvZiBTUkRfQ1RMCj4gKHBzcjEgY29udHJvbCByZWdpc3RlcilpcyBzZXQg dG8gMC4KPiBBbHNvICxQU1IyX0lETEUgc3RhdGUgaXMgbG9va2VkIHVwIGZyb20gU1JEX1NUQVRV Uyhwc3IxIHJlZ2lzdGVyKQo+IGluc3RlYWQgb2YgUFNSMl9TVEFUVVMgcmVnaXN0ZXIsIHdoaWNo IGhhcyB3cm9uZyBkYXRhLCByZXN1bHRpbmcKPiBpbiBibGFua3NjcmVlbi4KPiBoc3dfZW5hYmxl X3NvdXJjZSBpcyBzcGxpdCBpbnRvIGhzd19lbmFibGVfc291cmNlX3BzcjEgYW5kCj4gaHN3X2Vu YWJsZV9zb3VyY2VfcHNyMiBmb3IgZWFzaWVyIGNvZGUgcmV2aWV3IGFuZCBtYWludGVuYW5jZSwK PiBhcyBzdWdnZXN0ZWQgYnkgcm9kcmlnbyBhbmQgamltLgo+IAo+IENjOiBSb2RyaWdvIFZpdmkg PHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6IEppbSBCcmlkZSA8amltLmJyaWRlQGxpbnV4 LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBWYXRoc2FsYSBOYWdhcmFqdSA8dmF0aHNhbGEu bmFnYXJhanVAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFBhdGlsIERlZXB0aSA8ZGVlcHRp LnBhdGlsQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyB8IDEyNCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA5 NyBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiBpbmRleCAwMDk3MGFhLi43ODMwZTZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gQEAgLTM2MTUsNiArMzYxNSw5IEBAIGVudW0gewo+ICAjZGVmaW5lICAgRURQX1BTUjJfRlJB TUVfQkVGT1JFX1NVX01BU0sJKDB4Zjw8NCkKPiAgI2RlZmluZSAgIEVEUF9QU1IyX0lETEVfTUFT SwkJMHhmCj4gIAo+ICsjZGVmaW5lIEVEUF9QU1IyX1NUQVRVU19DVEwgICAgICAgICAgICBfTU1J TygweDZmOTQwKQo+ICsjZGVmaW5lIEVEUF9QU1IyX1NUQVRVU19TVEFURV9NQVNLICAgICAoMHhm PDwyOCkKPiArCj4gIC8qIFZHQSBwb3J0IGNvbnRyb2wgKi8KPiAgI2RlZmluZSBBRFBBCQkJX01N SU8oMHg2MTEwMCkKPiAgI2RlZmluZSBQQ0hfQURQQSAgICAgICAgICAgICAgICBfTU1JTygweGUx MTAwKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gaW5kZXggYzNhYTY0OS4uZmYyZWNmZCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gQEAgLTI2MSwxMiArMjYxLDExIEBAIHN0 YXRpYyB2b2lkIHZsdl9wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAg CQkgICBWTFZfRURQX1BTUl9BQ1RJVkVfRU5UUlkpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBo c3dfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiArc3RhdGlj IHZvaWQgaHN3X2VuYWJsZV9zb3VyY2VfcHNyMShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFz ZS5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiAtCj4gIAl1aW50MzJfdCBtYXhfc2xlZXBfdGltZSA9IDB4MWY7Cj4gIAkvKgo+ ICAJICogTGV0J3MgcmVzcGVjdCBWQlQgaW4gY2FzZSBWQlQgYXNrcyBhIGhpZ2hlciBpZGxlX2Zy YW1lIHZhbHVlLgo+IEBAIC0zMTIsMTQgKzMxMSwzMCBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2Vu YWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQl2YWwgfD0gRURQX1BT Ul9UUDFfVFAyX1NFTDsKPiAgCj4gIAlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLCB2YWwpOwo+ICt9 Cj4gIAo+IC0JaWYgKCFkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkKPiAtCQlyZXR1cm47Cj4g K3N0YXRpYyB2b2lkIGhzd19lbmFibGVfc291cmNlX3BzcjIoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKCmhtLi4uIEkgYmVsaWV2ZQpza2xfZW5hYmxlX3NvdXJjZV9wc3IyIGlzIG1vcmUgYXBw cm9wcmlhdGVkIGJlY2F1c2UgcHNyMiB3YXMgaW50cm9kdWNlZCBvbiBza2wKYW5kIG5vdCBvbiBo c3cgYXMgdGhpcyBtaWdodCBsZWFkIHBlb3BsZSB0byB0aGluay4uLgphbHRob3VnaCB3aGVuIHdl IGNhbGwgdGhpcyB3ZSBjaGVjayBmb3IgcHNyMiBwcmVzZW5jZSBhbmQgbm90IHBsYXRmb3JtIGl0 c2VsZi4KCm1heWJlIGp1c3QgbGV0IGhzd18gb24gdGhlIG1haW4gb25lCmhzd19wc3JfZW5hYmxl X3NvdXJjZQoKIGFuZCBmb3IgdGhlc2UgMiBuZXcgZnVuY3Rpb25zIGp1c3QgdXNlCgppbnRlbF9l bmFibGVfc291cmNlX3BzcjEKaW50ZWxfZW5hYmxlX3NvdXJjZV9wc3IyCgo+ICt7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2Rw KTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAr Cj4gKwkvKgo+ICsJICogTGV0J3MgcmVzcGVjdCBWQlQgaW4gY2FzZSBWQlQgYXNrcyBhIGhpZ2hl ciBpZGxlX2ZyYW1lIHZhbHVlLgo+ICsJICogTGV0J3MgdXNlIDYgYXMgdGhlIG1pbmltdW0gdG8g Y292ZXIgYWxsIGtub3duIGNhc2VzIGluY2x1ZGluZwo+ICsJICogdGhlIG9mZi1ieS1vbmUgaXNz dWUgdGhhdCBIVyBoYXMgaW4gc29tZSBjYXNlcy4gQWxzbyB0aGVyZSBhcmUKPiArCSAqIGNhc2Vz IHdoZXJlIHNpbmsgc2hvdWxkIGJlIGFibGUgdG8gdHJhaW4KPiArCSAqIHdpdGggdGhlIDUgb3Ig NiBpZGxlIHBhdHRlcm5zLgo+ICsJICovCj4gKwl1aW50MzJfdCBpZGxlX2ZyYW1lcyA9IG1heCg2 LCBkZXZfcHJpdi0+dmJ0LnBzci5pZGxlX2ZyYW1lcyk7Cj4gKwl1aW50MzJfdCB2YWwgPSBFRFBf UFNSX0VOQUJMRTsKPiArCj4gKwl2YWwgfD0gaWRsZV9mcmFtZXMgPDwgRURQX1BTUl9JRExFX0ZS QU1FX1NISUZUOwo+ICAKPiAgCS8qIEZJWE1FOiBzZWxlY3RpdmUgdXBkYXRlIGlzIHByb2JhYmx5 IHRvdGFsbHkgYnJva2VuIGJlY2F1c2UgaXQgZG9lc24ndAo+ICAJICogbWVzaCBhdCBhbGwgd2l0 aCBvdXIgZnJvbnRidWZmZXIgdHJhY2tpbmcuIEFuZCB0aGUgaHcgYWxvbmUgaXNuJ3QKPiAgCSAq IGdvb2QgZW5vdWdoLiAqLwo+IC0JdmFsID0gRURQX1BTUjJfRU5BQkxFIHwgRURQX1NVX1RSQUNL X0VOQUJMRTsKPiArCXZhbCB8PSBFRFBfUFNSMl9FTkFCTEUgfCBFRFBfU1VfVFJBQ0tfRU5BQkxF Owo+ICAKPiAgCWlmIChkZXZfcHJpdi0+dmJ0LnBzci50cDJfdHAzX3dha2V1cF90aW1lID4gNSkK PiAgCQl2YWwgfD0gRURQX1BTUjJfVFAyX1RJTUVfMjUwMDsKPiBAQCAtMzMzLDYgKzM0OCwyMCBA QCBzdGF0aWMgdm9pZCBoc3dfcHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiAgCUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMLCB2YWwpOwo+ICB9Cj4gIAo+ICsKPiAr c3RhdGljIHZvaWQgaHN3X3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApOwo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwo+ICsKPiArCS8qIHBzcjEgYW5kIHBzcjIgYXJlIG11dHVhbGx5IGV4Y2x1 c2l2ZS4qLwo+ICsJaWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KQo+ICsJCWhzd19lbmFi bGVfc291cmNlX3BzcjIoaW50ZWxfZHApOwo+ICsJZWxzZQo+ICsJCWhzd19lbmFibGVfc291cmNl X3BzcjEoaW50ZWxfZHApOwo+ICt9Cj4gKwo+ICBzdGF0aWMgYm9vbCBpbnRlbF9wc3JfbWF0Y2hf Y29uZGl0aW9ucyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiBA QCAtNDEwLDcgKzQzOSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9k aWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCj4gLQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NU TCkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gKwlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQp Cj4gKwkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUjJfQ1RMKSAmIEVEUF9QU1IyX0VOQUJMRSk7 Cj4gKwllbHNlCj4gKwkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9F TkFCTEUpOwo+ICAJV0FSTl9PTihkZXZfcHJpdi0+cHNyLmFjdGl2ZSk7Cj4gIAlsb2NrZGVwX2Fz c2VydF9oZWxkKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ICAKPiBAQCAtNDYyLDggKzQ5NCw2IEBA IHZvaWQgaW50ZWxfcHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJZGV2 X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwo+ICAKPiAgCWlmIChIQVNfRERJ KGRldl9wcml2KSkgewo+IC0JCWhzd19wc3Jfc2V0dXBfdnNjKGludGVsX2RwKTsKPiAtCj4gIAkJ aWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Cj4gIAkJCS8qIFBTUjIgaXMgcmVzdHJp Y3RlZCB0byB3b3JrIHdpdGggcGFuZWwgcmVzb2x1dGlvbnMgdXB0byAzMjAweDIwMDAgKi8KPiAg CQkJaWYgKGNydGMtPmNvbmZpZy0+cGlwZV9zcmNfdyA+IDMyMDAgfHwKPiBAQCAtNDcxLDggKzUw MSwxMCBAQCB2b2lkIGludGVsX3Bzcl9lbmFibGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiAgCQkJCWRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0ID0gZmFsc2U7Cj4gIAkJCWVsc2UKPiAg CQkJCXNrbF9wc3Jfc2V0dXBfc3VfdnNjKGludGVsX2RwKTsKPiArCQl9IGVsc2Ugewo+ICsJCQkv KiBzZXQgdXAgdnNjIGhlYWRlciBmb3IgcHNyMSAqLwo+ICsJCQloc3dfcHNyX3NldHVwX3ZzYyhp bnRlbF9kcCk7Cj4gIAkJfQo+IC0KPiAgCQkvKgo+ICAJCSAqIFBlciBTcGVjOiBBdm9pZCBjb250 aW51b3VzIFBTUiBleGl0IGJ5IG1hc2tpbmcgTUVNVVAgYW5kIEhQRC4KPiAgCQkgKiBBbHNvIG1h c2sgTFBTUCB0byBhdm9pZCBkZXBlbmRlbmN5IG9uIG90aGVyIGRyaXZlcnMgdGhhdAo+IEBAIC01 NTcsMjAgKzU4OSwzNyBAQCBzdGF0aWMgdm9pZCBoc3dfcHNyX2Rpc2FibGUoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiAgCj4gIAlpZiAoZGV2X3ByaXYtPnBzci5hY3RpdmUpIHsKPiAtCQlJOTE1 X1dSSVRFKEVEUF9QU1JfQ1RMLAo+IC0JCQkgICBJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgfkVE UF9QU1JfRU5BQkxFKTsKPiArCQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpCj4gKwkJ CUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMLAo+ICsJCQkJSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCkg Jgo+ICsJCQkJCX4oRURQX1BTUjJfRU5BQkxFIHwKPiArCQkJCQlFRFBfU1VfVFJBQ0tfRU5BQkxF KSk7Cj4gKwkJZWxzZQo+ICsJCQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RMLAo+ICsJCQkJICAgSTkx NV9SRUFEKEVEUF9QU1JfQ1RMKSAmIH5FRFBfUFNSX0VOQUJMRSk7Cj4gIAo+ICAJCS8qIFdhaXQg dGlsbCBQU1IgaXMgaWRsZSAqLwo+IC0JCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZf cHJpdiwKPiAtCQkJCQkgICAgRURQX1BTUl9TVEFUVVNfQ1RMLAo+IC0JCQkJCSAgICBFRFBfUFNS X1NUQVRVU19TVEFURV9NQVNLLAo+IC0JCQkJCSAgICAwLAo+IC0JCQkJCSAgICAyMDAwKSkKPiAr CQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpIHsKPiArCQkJaWYgKGludGVsX3dhaXRf Zm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ICsJCQkJCQkgICAgRURQX1BTUjJfU1RBVFVTX0NUTCwK PiArCQkJCQkJICAgIEVEUF9QU1IyX1NUQVRVU19TVEFURV9NQVNLLAo+ICsJCQkJCQkgICAgMCwK PiArCQkJCQkJICAgIDIwMDApKQo+ICsJCQlEUk1fRVJST1IoIlRpbWVkIG91dCB3YWl0aW5nIGZv ciBQU1IyIElkbGUgU3RhdGVcbiIpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWlmIChpbnRlbF93YWl0 X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCQkJICAgIEVEUF9QU1JfU1RBVFVTX0NUTCwK PiArCQkJCQkJICAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0ssCj4gKwkJCQkJCSAgICAwLAo+ ICsJCQkJCQkgICAgMjAwMCkpCj4gIAkJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9y IFBTUiBJZGxlIFN0YXRlXG4iKTsKPiAtCj4gKwkJfQo+ICAJCWRldl9wcml2LT5wc3IuYWN0aXZl ID0gZmFsc2U7Cj4gIAl9IGVsc2Ugewo+IC0JCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1JfQ1RM KSAmIEVEUF9QU1JfRU5BQkxFKTsKPiArCQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQp Cj4gKwkJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCkgJiBFRFBfUFNSMl9FTkFCTEUp Owo+ICsJCWVsc2UKPiArCQkJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BT Ul9FTkFCTEUpOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC02MjEsMTMgKzY3MCwyNCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gIAkgKiBhbmQg YmUgcmVhZHkgZm9yIHJlLWVuYWJsZS4KPiAgCSAqLwo+ICAJaWYgKEhBU19EREkoZGV2X3ByaXYp KSB7Cj4gLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+IC0JCQkJCSAg ICBFRFBfUFNSX1NUQVRVU19DVEwsCj4gLQkJCQkJICAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX01B U0ssCj4gLQkJCQkJICAgIDAsCj4gLQkJCQkJICAgIDUwKSkgewo+IC0JCQlEUk1fRVJST1IoIlRp bWVkIG91dCB3YWl0aW5nIGZvciBQU1IgSWRsZSBmb3IgcmUtZW5hYmxlXG4iKTsKPiAtCQkJcmV0 dXJuOwo+ICsJCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkgewo+ICsJCQlpZiAoaW50 ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsCj4gKwkJCQkJCUVEUF9QU1IyX1NUQVRVU19D VEwsCj4gKwkJCQkJCUVEUF9QU1IyX1NUQVRVU19TVEFURV9NQVNLLAo+ICsJCQkJCQkwLAo+ICsJ CQkJCQk1MCkpIHsKPiArCQkJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFBTUjIg SWRsZSBmb3IgcmUtZW5hYmxlXG4iKTsKPiArCQkJCXJldHVybjsKPiArCQkJfQo+ICsJCX0gZWxz ZSB7Cj4gKwkJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwKPiArCQkJCQkJ RURQX1BTUl9TVEFUVVNfQ1RMLAo+ICsJCQkJCQlFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLLAo+ ICsJCQkJCQkwLAo+ICsJCQkJCQk1MCkpIHsKPiArCQkJCURSTV9FUlJPUigiVGltZWQgb3V0IHdh aXRpbmcgZm9yIFBTUiBJZGxlIGZvciByZS1lbmFibGVcbiIpOwo+ICsJCQkJcmV0dXJuOwo+ICsJ CQl9Cj4gIAkJfQo+ICAJfSBlbHNlIHsKPiAgCQlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIo ZGV2X3ByaXYsCj4gQEAgLTY2OSwxMSArNzI5LDE1IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9l eGl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlyZXR1cm47Cj4gIAo+ ICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1Jf Q1RMKTsKPiAtCj4gLQkJV0FSTl9PTighKHZhbCAmIEVEUF9QU1JfRU5BQkxFKSk7Cj4gLQo+IC0J CUk5MTVfV1JJVEUoRURQX1BTUl9DVEwsIHZhbCAmIH5FRFBfUFNSX0VOQUJMRSk7Cj4gKwkJaWYg KGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KSB7Cj4gKwkJCXZhbCA9IEk5MTVfUkVBRChFRFBf UFNSMl9DVEwpOwo+ICsJCQlXQVJOX09OKCEodmFsICYgRURQX1BTUjJfRU5BQkxFKSk7Cj4gKwkJ CUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMLCB2YWwgJiB+RURQX1BTUjJfRU5BQkxFKTsKPiArCQl9 IGVsc2Ugewo+ICsJCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpOwo+ICsJCQlXQVJOX09O KCEodmFsICYgRURQX1BTUl9FTkFCTEUpKTsKPiArCQkJSTkxNV9XUklURShFRFBfUFNSX0NUTCwg dmFsICYgfkVEUF9QU1JfRU5BQkxFKTsKPiArCQl9Cj4gIAl9IGVsc2Ugewo+ICAJCXZhbCA9IEk5 MTVfUkVBRChWTFZfUFNSQ1RMKHBpcGUpKTsKPiAgCj4gLS0gCj4gMS45LjEKPiAKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==