From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 34F3E6E93A for ; Wed, 28 Feb 2018 11:08:40 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id i3so2870685wmi.4 for ; Wed, 28 Feb 2018 03:08:39 -0800 (PST) From: Tvrtko Ursulin Date: Wed, 28 Feb 2018 11:08:29 +0000 Message-Id: <20180228110829.12126-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t] lib/igt_pm: Restore runtime pm state on test exit List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgdGVz dHMgKHRoZSBvbmVzIHdoaWNoIGNhbGwgaWd0X3NldHVwX3J1bnRpbWVfcG0gYW5kCmlndF9wbV9l bmFibGVfYXVkaW9fcnVudGltZV9wbSkgY2hhbmdlIGRlZmF1bHQgc3lzdGVtIGNvbmZpZ3VyYXRp b24gYW5kCm5ldmVyIHJlc3RvcmUgaXQuCgpUaGUgY29uZmlndXJlZCBydW50aW1lIHN1c3BlbmQg aXMgYWdncmVzc2l2ZSBhbmQgbWF5IGluZmx1ZW5jZSBiZWhhdmlvdXIKb2Ygc3Vic2VxdWVudCB0 ZXN0cywgc28gaXQgaXMgYmV0dGVyIHRvIHJlc3RvcmUgdG8gcHJldmlvdXMgdmFsdWVzIG9uIHRl c3QKZXhpdC4KClRoaXMgd2F5IHN5c3RlbSBiZWhhdmlvdXIsIHdpdGggcmVnYXJkcyB0byBhIHJh bmRvbSBzZXF1ZW5jZSBvZiBleGVjdXRlZAp0ZXN0cywgd2lsbCBiZSBtb3JlIGNvbnNpc3RlbnQg ZnJvbSBvbmUgcnVuIHRvIGFub3RoZXIuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwu Y29tPgotLS0KIGxpYi9pZ3RfcG0uYyB8IDEwNyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwNCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcG0uYyBiL2xp Yi9pZ3RfcG0uYwppbmRleCA1YmY1YjJlMjNjZGMuLjBjOGI1ZThlOTI1NyAxMDA2NDQKLS0tIGEv bGliL2lndF9wbS5jCisrKyBiL2xpYi9pZ3RfcG0uYwpAQCAtNjMsNiArNjMsNDYgQEAgZW51bSB7 CiAvKiBSZW1lbWJlciB0byBmaXggdGhpcyBpZiBhZGRpbmcgbG9uZ2VyIHN0cmluZ3MgKi8KICNk ZWZpbmUgTUFYX1BPTElDWV9TVFJMRU4Jc3RybGVuKE1BWF9QRVJGT1JNQU5DRV9TVFIpCiAKK3N0 YXRpYyBjaGFyIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZVs2NF07CitzdGF0aWMg Y2hhciBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xbNjRdOworCitzdGF0aWMgdm9pZCBf X2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcihpbnQgc2lnKQoreworCWludCBmZDsK KworCWlndF9kZWJ1ZygiUmVzdG9yaW5nIGF1ZGlvIHBvd2VyIG1hbmFnZW1lbnQgdG8gJyVzJyBh bmQgJyVzJ1xuIiwKKwkJICBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCSAg X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKTsKKworCWZkID0gb3BlbigiL3N5cy9tb2R1 bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1dST05MWSk7CisJaWYg KGZkIDwgMCkKKwkJcmV0dXJuOworCWlmICh3cml0ZShmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9wb3dlcl9zYXZlLAorCQkgIHN0cmxlbihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmUpKSAhPQorCSAgICBzdHJsZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkK KwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIGF1ZGlvIHBvd2VyX3NhdmUgdG8gJyVzJ1xu IiwKKwkJCSBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWNsb3NlKGZkKTsK KworCWZkID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDowMDowMy4wL3Bvd2VyL2Nv bnRyb2wiLCBPX1dST05MWSk7CisJaWYgKGZkIDwgMCkKKwkJcmV0dXJuOworCWlmICh3cml0ZShm ZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkgIHN0cmxlbihfX2lndF9wbV9h dWRpb19ydW50aW1lX2NvbnRyb2wpKSAhPQorCSAgICBzdHJsZW4oX19pZ3RfcG1fYXVkaW9fcnVu dGltZV9jb250cm9sKSkKKwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIGF1ZGlvIGNvbnRy b2wgdG8gJyVzJ1xuIiwKKwkJCSBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOworCWNs b3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQgc3RyY2hvbXAoY2hhciAqc3RyKQoreworCWludCBs ZW4gPSBzdHJsZW4oc3RyKTsKKworCWlmIChzdHJbbGVuIC0gMV0gPT0gJ1xuJykKKwkJc3RyW2xl biAtIDFdID0gMDsKK30KKwogLyoqCiAgKiBpZ3RfcG1fZW5hYmxlX2F1ZGlvX3J1bnRpbWVfcG06 CiAgKgpAQCAtNzgsMTYgKzExOCwzMiBAQCB2b2lkIGlndF9wbV9lbmFibGVfYXVkaW9fcnVudGlt ZV9wbSh2b2lkKQogewogCWludCBmZDsKIAotCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hk YV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1dST05MWSk7CisJLyogQ2hlY2sgaWYg YWxyZWFkeSBlbmFibGVkLiAqLworCWlmIChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmVbMF0pCisJCXJldHVybjsKKworCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRl bC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOwogCWlmIChmZCA+PSAwKSB7CisJCWln dF9hc3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlLAorCQkJ CXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpKSA+IDApOworCQlzdHJj aG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOwogCQlpZ3RfYXNzZXJ0X2Vx KHdyaXRlKGZkLCAiMVxuIiwgMiksIDIpOworCQlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19p Z3RfcG1fYXVkaW9fcnVudGltZV9leGl0X2hhbmRsZXIpOwogCQljbG9zZShmZCk7CiAJfQotCWZk ID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDowMDowMy4wL3Bvd2VyL2NvbnRyb2wi LCBPX1dST05MWSk7CisJZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAz LjAvcG93ZXIvY29udHJvbCIsIE9fUkRXUik7CiAJaWYgKGZkID49IDApIHsKKwkJaWd0X2Fzc2Vy dChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wsCisJCQkJc2l6ZW9mKF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJCXN0cmNob21wKF9faWd0X3Bt X2F1ZGlvX3J1bnRpbWVfY29udHJvbCk7CiAJCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICJhdXRv XG4iLCA1KSwgNSk7CiAJCWNsb3NlKGZkKTsKIAl9CisKKwlpZ3RfZGVidWcoIlNhdmVkIGF1ZGlv IHBvd2VyIG1hbmFnZW1lbnQgYXMgJyVzJyBhbmQgJyVzJ1xuIiwKKwkJICBfX2lndF9wbV9hdWRp b19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCSAgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9s KTsKKwogCS8qIEdpdmUgc29tZSB0aW1lIGZvciBpdCB0byByZWFjdC4gKi8KIAlzbGVlcCgxKTsK IH0KQEAgLTIzOCw2ICsyOTQsMzggQEAgdm9pZCBpZ3RfcG1fcmVzdG9yZV9zYXRhX2xpbmtfcG93 ZXJfbWFuYWdlbWVudChpbnQ4X3QgKnBtX2RhdGEpCiAvKiBXZSBqdXN0IGxlYWsgdGhpcyBvbiBl eGl0IC4uLiAqLwogaW50IHBtX3N0YXR1c19mZCA9IC0xOwogCitzdGF0aWMgY2hhciBfX2lndF9w bV9ydW50aW1lX2F1dG9zdXNwZW5kWzY0XTsKK3N0YXRpYyBjaGFyIF9faWd0X3BtX3J1bnRpbWVf Y29udHJvbFs2NF07CisKK3N0YXRpYyB2b2lkIF9faWd0X3BtX3J1bnRpbWVfZXhpdF9oYW5kbGVy KGludCBzaWcpCit7CisJaW50IGZkOworCisJaWd0X2RlYnVnKCJSZXN0b3JpbmcgcnVudGltZSBt YW5hZ2VtZW50IHRvICclcycgYW5kICclcydcbiIsCisJCSAgX19pZ3RfcG1fcnVudGltZV9hdXRv c3VzcGVuZCwKKwkJICBfX2lndF9wbV9ydW50aW1lX2NvbnRyb2wpOworCisJZmQgPSBvcGVuKFBP V0VSX0RJUiAiL2F1dG9zdXNwZW5kX2RlbGF5X21zIiwgT19XUk9OTFkpOworCWlmIChmZCA8IDAp CisJCXJldHVybjsKKwlpZiAod3JpdGUoZmQsIF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3BlbmQs CisJCSAgc3RybGVuKF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3BlbmQpKSAhPQorCSAgICBzdHJs ZW4oX19pZ3RfcG1fcnVudGltZV9hdXRvc3VzcGVuZCkpCisJCWlndF93YXJuKCJGYWlsZWQgdG8g cmVzdG9yZSBydW50aW1lIHBtIGF1dG9zdXNwZW5kIGRlbGF5IHRvICclcydcbiIsCisJCQkgX19p Z3RfcG1fcnVudGltZV9hdXRvc3VzcGVuZCk7CisJY2xvc2UoZmQpOworCisJZmQgPSBvcGVuKFBP V0VSX0RJUiAiL2NvbnRyb2wiLCBPX1dST05MWSk7CisJaWYgKGZkIDwgMCkKKwkJcmV0dXJuOwor CWlmICh3cml0ZShmZCwgX19pZ3RfcG1fcnVudGltZV9jb250cm9sLAorCQkgIHN0cmxlbihfX2ln dF9wbV9ydW50aW1lX2NvbnRyb2wpKSAhPQorCSAgICBzdHJsZW4oX19pZ3RfcG1fcnVudGltZV9j b250cm9sKSkKKwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIHJ1bnRpbWUgcG0gY29udHJv bCB0byAnJXMnXG4iLAorCQkJIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCk7CisJY2xvc2UoZmQp OworfQorCiAvKioKICAqIGlndF9zZXR1cF9ydW50aW1lX3BtOgogICoKQEAgLTI2MSwxMCArMzQ5 LDE2IEBAIGJvb2wgaWd0X3NldHVwX3J1bnRpbWVfcG0odm9pZCkKIAkvKiBPdXIgaW1wbGVtZW50 YXRpb24gdXNlcyBhdXRvc3VzcGVuZC4gVHJ5IHRvIHNldCBpdCB0byAwbXMgc28gdGhlIHRlc3QK IAkgKiBzdWl0ZSBnb2VzIGZhc3RlciBhbmQgd2UgaGF2ZSBhIGhpZ2hlciBwcm9iYWJpbGl0eSBv ZiB0cmlnZ2VyaW5nIHJhY2UKIAkgKiBjb25kaXRpb25zLiAqLwotCWZkID0gb3BlbihQT1dFUl9E SVIgIi9hdXRvc3VzcGVuZF9kZWxheV9tcyIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oUE9XRVJf RElSICIvYXV0b3N1c3BlbmRfZGVsYXlfbXMiLCBPX1JEV1IpOwogCWlndF9hc3NlcnRfZihmZCA+ PSAwLAogCQkgICAgICJDYW4ndCBvcGVuICIgUE9XRVJfRElSICIvYXV0b3N1c3BlbmRfZGVsYXlf bXNcbiIpOwogCisJLyogU2F2ZSBwcmV2aW91cyB2YWx1ZXMgYW5kIGluc3RhbGwgZXhpdCBoYW5k bGVyIHRvIHJlc3RvcmUgdGhlbS4gKi8KKwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX3J1 bnRpbWVfYXV0b3N1c3BlbmQsCisJCQlzaXplb2YoX19pZ3RfcG1fcnVudGltZV9hdXRvc3VzcGVu ZCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1fcnVudGltZV9hdXRvc3VzcGVuZCk7CisJaWd0 X2luc3RhbGxfZXhpdF9oYW5kbGVyKF9faWd0X3BtX3J1bnRpbWVfZXhpdF9oYW5kbGVyKTsKKwog CS8qIElmIHdlIGZhaWwgdG8gd3JpdGUgdG8gdGhlIGZpbGUsIGl0IG1lYW5zIHRoaXMgc3lzdGVt IGRvZXNuJ3Qgc3VwcG9ydAogCSAqIHJ1bnRpbWUgUE0uICovCiAJc2l6ZSA9IHdyaXRlKGZkLCAi MFxuIiwgMik7CkBAIC0yNzgsNiArMzcyLDEzIEBAIGJvb2wgaWd0X3NldHVwX3J1bnRpbWVfcG0o dm9pZCkKIAlmZCA9IG9wZW4oUE9XRVJfRElSICIvY29udHJvbCIsIE9fUkRXUik7CiAJaWd0X2Fz c2VydF9mKGZkID49IDAsICJDYW4ndCBvcGVuICIgUE9XRVJfRElSICIvY29udHJvbFxuIik7CiAK KwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCwKKwkJCXNpemVv ZihfX2lndF9wbV9ydW50aW1lX2NvbnRyb2wpKSA+IDApOworCXN0cmNob21wKF9faWd0X3BtX3J1 bnRpbWVfY29udHJvbCk7CisKKwlpZ3RfZGVidWcoIlNhdmVkIHJ1bnRpbWUgcG93ZXIgbWFuYWdl bWVudCBhcyAnJXMnIGFuZCAnJXMnXG4iLAorCQkgIF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3Bl bmQsIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCk7CisKIAlzaXplID0gd3JpdGUoZmQsICJhdXRv XG4iLCA1KTsKIAlpZ3RfYXNzZXJ0KHNpemUgPT0gNSk7CiAKLS0gCjIuMTQuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxp c3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t] lib/igt_pm: Restore runtime pm state on test exit Date: Wed, 28 Feb 2018 11:08:29 +0000 Message-ID: <20180228110829.12126-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF2016E932 for ; Wed, 28 Feb 2018 11:08:39 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id 188so4262332wme.1 for ; Wed, 28 Feb 2018 03:08:39 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgdGVz dHMgKHRoZSBvbmVzIHdoaWNoIGNhbGwgaWd0X3NldHVwX3J1bnRpbWVfcG0gYW5kCmlndF9wbV9l bmFibGVfYXVkaW9fcnVudGltZV9wbSkgY2hhbmdlIGRlZmF1bHQgc3lzdGVtIGNvbmZpZ3VyYXRp b24gYW5kCm5ldmVyIHJlc3RvcmUgaXQuCgpUaGUgY29uZmlndXJlZCBydW50aW1lIHN1c3BlbmQg aXMgYWdncmVzc2l2ZSBhbmQgbWF5IGluZmx1ZW5jZSBiZWhhdmlvdXIKb2Ygc3Vic2VxdWVudCB0 ZXN0cywgc28gaXQgaXMgYmV0dGVyIHRvIHJlc3RvcmUgdG8gcHJldmlvdXMgdmFsdWVzIG9uIHRl c3QKZXhpdC4KClRoaXMgd2F5IHN5c3RlbSBiZWhhdmlvdXIsIHdpdGggcmVnYXJkcyB0byBhIHJh bmRvbSBzZXF1ZW5jZSBvZiBleGVjdXRlZAp0ZXN0cywgd2lsbCBiZSBtb3JlIGNvbnNpc3RlbnQg ZnJvbSBvbmUgcnVuIHRvIGFub3RoZXIuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwu Y29tPgotLS0KIGxpYi9pZ3RfcG0uYyB8IDEwNyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwNCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcG0uYyBiL2xp Yi9pZ3RfcG0uYwppbmRleCA1YmY1YjJlMjNjZGMuLjBjOGI1ZThlOTI1NyAxMDA2NDQKLS0tIGEv bGliL2lndF9wbS5jCisrKyBiL2xpYi9pZ3RfcG0uYwpAQCAtNjMsNiArNjMsNDYgQEAgZW51bSB7 CiAvKiBSZW1lbWJlciB0byBmaXggdGhpcyBpZiBhZGRpbmcgbG9uZ2VyIHN0cmluZ3MgKi8KICNk ZWZpbmUgTUFYX1BPTElDWV9TVFJMRU4Jc3RybGVuKE1BWF9QRVJGT1JNQU5DRV9TVFIpCiAKK3N0 YXRpYyBjaGFyIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZVs2NF07CitzdGF0aWMg Y2hhciBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xbNjRdOworCitzdGF0aWMgdm9pZCBf X2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcihpbnQgc2lnKQoreworCWludCBmZDsK KworCWlndF9kZWJ1ZygiUmVzdG9yaW5nIGF1ZGlvIHBvd2VyIG1hbmFnZW1lbnQgdG8gJyVzJyBh bmQgJyVzJ1xuIiwKKwkJICBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCSAg X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKTsKKworCWZkID0gb3BlbigiL3N5cy9tb2R1 bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1dST05MWSk7CisJaWYg KGZkIDwgMCkKKwkJcmV0dXJuOworCWlmICh3cml0ZShmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9wb3dlcl9zYXZlLAorCQkgIHN0cmxlbihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmUpKSAhPQorCSAgICBzdHJsZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkK KwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIGF1ZGlvIHBvd2VyX3NhdmUgdG8gJyVzJ1xu IiwKKwkJCSBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWNsb3NlKGZkKTsK KworCWZkID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDowMDowMy4wL3Bvd2VyL2Nv bnRyb2wiLCBPX1dST05MWSk7CisJaWYgKGZkIDwgMCkKKwkJcmV0dXJuOworCWlmICh3cml0ZShm ZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkgIHN0cmxlbihfX2lndF9wbV9h dWRpb19ydW50aW1lX2NvbnRyb2wpKSAhPQorCSAgICBzdHJsZW4oX19pZ3RfcG1fYXVkaW9fcnVu dGltZV9jb250cm9sKSkKKwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIGF1ZGlvIGNvbnRy b2wgdG8gJyVzJ1xuIiwKKwkJCSBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOworCWNs b3NlKGZkKTsKK30KKworc3RhdGljIHZvaWQgc3RyY2hvbXAoY2hhciAqc3RyKQoreworCWludCBs ZW4gPSBzdHJsZW4oc3RyKTsKKworCWlmIChzdHJbbGVuIC0gMV0gPT0gJ1xuJykKKwkJc3RyW2xl biAtIDFdID0gMDsKK30KKwogLyoqCiAgKiBpZ3RfcG1fZW5hYmxlX2F1ZGlvX3J1bnRpbWVfcG06 CiAgKgpAQCAtNzgsMTYgKzExOCwzMiBAQCB2b2lkIGlndF9wbV9lbmFibGVfYXVkaW9fcnVudGlt ZV9wbSh2b2lkKQogewogCWludCBmZDsKIAotCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hk YV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1dST05MWSk7CisJLyogQ2hlY2sgaWYg YWxyZWFkeSBlbmFibGVkLiAqLworCWlmIChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmVbMF0pCisJCXJldHVybjsKKworCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRl bC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOwogCWlmIChmZCA+PSAwKSB7CisJCWln dF9hc3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlLAorCQkJ CXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpKSA+IDApOworCQlzdHJj aG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOwogCQlpZ3RfYXNzZXJ0X2Vx KHdyaXRlKGZkLCAiMVxuIiwgMiksIDIpOworCQlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19p Z3RfcG1fYXVkaW9fcnVudGltZV9leGl0X2hhbmRsZXIpOwogCQljbG9zZShmZCk7CiAJfQotCWZk ID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDowMDowMy4wL3Bvd2VyL2NvbnRyb2wi LCBPX1dST05MWSk7CisJZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAz LjAvcG93ZXIvY29udHJvbCIsIE9fUkRXUik7CiAJaWYgKGZkID49IDApIHsKKwkJaWd0X2Fzc2Vy dChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wsCisJCQkJc2l6ZW9mKF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJCXN0cmNob21wKF9faWd0X3Bt X2F1ZGlvX3J1bnRpbWVfY29udHJvbCk7CiAJCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICJhdXRv XG4iLCA1KSwgNSk7CiAJCWNsb3NlKGZkKTsKIAl9CisKKwlpZ3RfZGVidWcoIlNhdmVkIGF1ZGlv IHBvd2VyIG1hbmFnZW1lbnQgYXMgJyVzJyBhbmQgJyVzJ1xuIiwKKwkJICBfX2lndF9wbV9hdWRp b19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCSAgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9s KTsKKwogCS8qIEdpdmUgc29tZSB0aW1lIGZvciBpdCB0byByZWFjdC4gKi8KIAlzbGVlcCgxKTsK IH0KQEAgLTIzOCw2ICsyOTQsMzggQEAgdm9pZCBpZ3RfcG1fcmVzdG9yZV9zYXRhX2xpbmtfcG93 ZXJfbWFuYWdlbWVudChpbnQ4X3QgKnBtX2RhdGEpCiAvKiBXZSBqdXN0IGxlYWsgdGhpcyBvbiBl eGl0IC4uLiAqLwogaW50IHBtX3N0YXR1c19mZCA9IC0xOwogCitzdGF0aWMgY2hhciBfX2lndF9w bV9ydW50aW1lX2F1dG9zdXNwZW5kWzY0XTsKK3N0YXRpYyBjaGFyIF9faWd0X3BtX3J1bnRpbWVf Y29udHJvbFs2NF07CisKK3N0YXRpYyB2b2lkIF9faWd0X3BtX3J1bnRpbWVfZXhpdF9oYW5kbGVy KGludCBzaWcpCit7CisJaW50IGZkOworCisJaWd0X2RlYnVnKCJSZXN0b3JpbmcgcnVudGltZSBt YW5hZ2VtZW50IHRvICclcycgYW5kICclcydcbiIsCisJCSAgX19pZ3RfcG1fcnVudGltZV9hdXRv c3VzcGVuZCwKKwkJICBfX2lndF9wbV9ydW50aW1lX2NvbnRyb2wpOworCisJZmQgPSBvcGVuKFBP V0VSX0RJUiAiL2F1dG9zdXNwZW5kX2RlbGF5X21zIiwgT19XUk9OTFkpOworCWlmIChmZCA8IDAp CisJCXJldHVybjsKKwlpZiAod3JpdGUoZmQsIF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3BlbmQs CisJCSAgc3RybGVuKF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3BlbmQpKSAhPQorCSAgICBzdHJs ZW4oX19pZ3RfcG1fcnVudGltZV9hdXRvc3VzcGVuZCkpCisJCWlndF93YXJuKCJGYWlsZWQgdG8g cmVzdG9yZSBydW50aW1lIHBtIGF1dG9zdXNwZW5kIGRlbGF5IHRvICclcydcbiIsCisJCQkgX19p Z3RfcG1fcnVudGltZV9hdXRvc3VzcGVuZCk7CisJY2xvc2UoZmQpOworCisJZmQgPSBvcGVuKFBP V0VSX0RJUiAiL2NvbnRyb2wiLCBPX1dST05MWSk7CisJaWYgKGZkIDwgMCkKKwkJcmV0dXJuOwor CWlmICh3cml0ZShmZCwgX19pZ3RfcG1fcnVudGltZV9jb250cm9sLAorCQkgIHN0cmxlbihfX2ln dF9wbV9ydW50aW1lX2NvbnRyb2wpKSAhPQorCSAgICBzdHJsZW4oX19pZ3RfcG1fcnVudGltZV9j b250cm9sKSkKKwkJaWd0X3dhcm4oIkZhaWxlZCB0byByZXN0b3JlIHJ1bnRpbWUgcG0gY29udHJv bCB0byAnJXMnXG4iLAorCQkJIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCk7CisJY2xvc2UoZmQp OworfQorCiAvKioKICAqIGlndF9zZXR1cF9ydW50aW1lX3BtOgogICoKQEAgLTI2MSwxMCArMzQ5 LDE2IEBAIGJvb2wgaWd0X3NldHVwX3J1bnRpbWVfcG0odm9pZCkKIAkvKiBPdXIgaW1wbGVtZW50 YXRpb24gdXNlcyBhdXRvc3VzcGVuZC4gVHJ5IHRvIHNldCBpdCB0byAwbXMgc28gdGhlIHRlc3QK IAkgKiBzdWl0ZSBnb2VzIGZhc3RlciBhbmQgd2UgaGF2ZSBhIGhpZ2hlciBwcm9iYWJpbGl0eSBv ZiB0cmlnZ2VyaW5nIHJhY2UKIAkgKiBjb25kaXRpb25zLiAqLwotCWZkID0gb3BlbihQT1dFUl9E SVIgIi9hdXRvc3VzcGVuZF9kZWxheV9tcyIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oUE9XRVJf RElSICIvYXV0b3N1c3BlbmRfZGVsYXlfbXMiLCBPX1JEV1IpOwogCWlndF9hc3NlcnRfZihmZCA+ PSAwLAogCQkgICAgICJDYW4ndCBvcGVuICIgUE9XRVJfRElSICIvYXV0b3N1c3BlbmRfZGVsYXlf bXNcbiIpOwogCisJLyogU2F2ZSBwcmV2aW91cyB2YWx1ZXMgYW5kIGluc3RhbGwgZXhpdCBoYW5k bGVyIHRvIHJlc3RvcmUgdGhlbS4gKi8KKwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX3J1 bnRpbWVfYXV0b3N1c3BlbmQsCisJCQlzaXplb2YoX19pZ3RfcG1fcnVudGltZV9hdXRvc3VzcGVu ZCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1fcnVudGltZV9hdXRvc3VzcGVuZCk7CisJaWd0 X2luc3RhbGxfZXhpdF9oYW5kbGVyKF9faWd0X3BtX3J1bnRpbWVfZXhpdF9oYW5kbGVyKTsKKwog CS8qIElmIHdlIGZhaWwgdG8gd3JpdGUgdG8gdGhlIGZpbGUsIGl0IG1lYW5zIHRoaXMgc3lzdGVt IGRvZXNuJ3Qgc3VwcG9ydAogCSAqIHJ1bnRpbWUgUE0uICovCiAJc2l6ZSA9IHdyaXRlKGZkLCAi MFxuIiwgMik7CkBAIC0yNzgsNiArMzcyLDEzIEBAIGJvb2wgaWd0X3NldHVwX3J1bnRpbWVfcG0o dm9pZCkKIAlmZCA9IG9wZW4oUE9XRVJfRElSICIvY29udHJvbCIsIE9fUkRXUik7CiAJaWd0X2Fz c2VydF9mKGZkID49IDAsICJDYW4ndCBvcGVuICIgUE9XRVJfRElSICIvY29udHJvbFxuIik7CiAK KwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCwKKwkJCXNpemVv ZihfX2lndF9wbV9ydW50aW1lX2NvbnRyb2wpKSA+IDApOworCXN0cmNob21wKF9faWd0X3BtX3J1 bnRpbWVfY29udHJvbCk7CisKKwlpZ3RfZGVidWcoIlNhdmVkIHJ1bnRpbWUgcG93ZXIgbWFuYWdl bWVudCBhcyAnJXMnIGFuZCAnJXMnXG4iLAorCQkgIF9faWd0X3BtX3J1bnRpbWVfYXV0b3N1c3Bl bmQsIF9faWd0X3BtX3J1bnRpbWVfY29udHJvbCk7CisKIAlzaXplID0gd3JpdGUoZmQsICJhdXRv XG4iLCA1KTsKIAlpZ3RfYXNzZXJ0KHNpemUgPT0gNSk7CiAKLS0gCjIuMTQuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==