From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Mon, 23 Jul 2018 12:46:56 +0100 Message-Id: <20180723114658.13025-2-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180723114658.13025-1-tvrtko.ursulin@linux.intel.com> References: <20180723114658.13025-1-tvrtko.ursulin@linux.intel.com> Subject: [Intel-gfx] [PATCH i-g-t 2/4] lib/igt_pm: Find HDA device when attempting to enable runtime PM 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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkhEQSBhdWRp byBkZXZpY2UgY2FuIGJlIHByZXNlbnQgYXQgdmFyaW91cyBQQ0kgcGF0aHMgb24gZGlmZmVyZW50 IHN5c3RlbXMKd2hpY2ggdGhlIGV4aXN0aW5nIGNvZGUgZGlkIG5vdCBhY2NvdW50IGZvci4KCkZ1 cnRoZXJtb3JlIHRoZSBmYWlsdXJlIHRvIGVuYWJsZSBydW50aW1lIFBNIHdhcyBzaWxlbnQgbGVh dmluZyBjYWxsZXJzCmluIHRoZSBkYXJrLgoKSW1wcm92ZSBpdCBieSBhdXRvLWxvY2F0aW5nIHRo ZSBQQ0kgcGF0aCBhbmQgbG9nZ2luZyBhIHdhcm5pbmcgd2hlbgpzb21ldGhpbmcgaXMgbm90IGFz IGV4cGVjdGVkLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X3BtLmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjAgaW5zZXJ0 aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9wbS5jIGIvbGli L2lndF9wbS5jCmluZGV4IDZmM2IwYTJkODk3ZC4uYTRjMGNmMzM1ZjZkIDEwMDY0NAotLS0gYS9s aWIvaWd0X3BtLmMKKysrIGIvbGliL2lndF9wbS5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk ZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KIAogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNsdWRl ICJpZ3RfcG0uaCIKQEAgLTY0LDYgKzY1LDcgQEAgZW51bSB7CiAjZGVmaW5lIE1BWF9QT0xJQ1lf U1RSTEVOCXN0cmxlbihNQVhfUEVSRk9STUFOQ0VfU1RSKQogCiBzdGF0aWMgY2hhciBfX2lndF9w bV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmVbNjRdOworc3RhdGljIGNvbnN0IGNoYXIgKiBfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aDsKIHN0YXRpYyBjaGFyIF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbFs2NF07CiAKIHN0YXRpYyBpbnQgX19pZ3RfcG1fYXVkaW9fcmVz dG9yZV9ydW50aW1lX3BtKHZvaWQpCkBAIC04Niw3ICs4OCw3IEBAIHN0YXRpYyBpbnQgX19pZ3Rf cG1fYXVkaW9fcmVzdG9yZV9ydW50aW1lX3BtKHZvaWQpCiAKIAljbG9zZShmZCk7CiAKLQlmZCA9 IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250cm9sIiwg T19XUk9OTFkpOworCWZkID0gb3BlbihfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0 aCwgT19XUk9OTFkpOwogCWlmIChmZCA8IDApCiAJCXJldHVybiBlcnJubzsKIApAQCAtMTMwLDM2 ICsxMzIsNzcgQEAgc3RhdGljIHZvaWQgc3RyY2hvbXAoY2hhciAqc3RyKQogICovCiB2b2lkIGln dF9wbV9lbmFibGVfYXVkaW9fcnVudGltZV9wbSh2b2lkKQogeworCWNoYXIgKnBhdGggPSBOVUxM OworCXN0cnVjdCBkaXJlbnQgKmRlOworCURJUiAqZGlyOwogCWludCBmZDsKIAogCS8qIENoZWNr IGlmIGFscmVhZHkgZW5hYmxlZC4gKi8KIAlpZiAoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dl cl9zYXZlWzBdKQogCQlyZXR1cm47CiAKLQlmZCA9IG9wZW4oIi9zeXMvbW9kdWxlL3NuZF9oZGFf aW50ZWwvcGFyYW1ldGVycy9wb3dlcl9zYXZlIiwgT19SRFdSKTsKLQlpZiAoZmQgPj0gMCkgewot CQlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwK LQkJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKLQkJ c3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKTsKLQkJaWd0X2luc3Rh bGxfZXhpdF9oYW5kbGVyKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfZXhpdF9oYW5kbGVyKTsKLQkJ aWd0X2Fzc2VydF9lcSh3cml0ZShmZCwgIjFcbiIsIDIpLCAyKTsKLQkJY2xvc2UoZmQpOwotCX0K LQlmZCA9IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250 cm9sIiwgT19SRFdSKTsKLQlpZiAoZmQgPj0gMCkgewotCQlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCwKLQkJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9f cnVudGltZV9jb250cm9sKSkgPiAwKTsKLQkJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9jb250cm9sKTsKLQkJaWd0X2Fzc2VydF9lcSh3cml0ZShmZCwgImF1dG9cbiIsIDUpLCA1KTsK LQkJY2xvc2UoZmQpOworCWRpciA9IG9wZW5kaXIoIi9zeXMvYnVzL3BjaS9kcml2ZXJzL3NuZF9o ZGFfaW50ZWwiKTsKKwlpZiAoIWRpcikKKwkJZ290byBlcnI7CisKKwl3aGlsZSAoKGRlID0gcmVh ZGRpcihkaXIpKSkgeworCQljb25zdCBjaGFyICpwcmVmaXggPSAiL3N5cy9idXMvcGNpL2Rldmlj ZXMvIjsKKwkJY29uc3QgY2hhciAqc3VmZml4ID0gIi9wb3dlci9jb250cm9sIjsKKwkJY29uc3Qg Y2hhciAqbWF0Y2ggPSAiMDAwMDowMDoiOworCisJCWlmIChzdHJuY21wKGRlLT5kX25hbWUsIG1h dGNoLCBzdHJsZW4obWF0Y2gpKSkKKwkJCWNvbnRpbnVlOworCisJCXBhdGggPSBtYWxsb2Moc3Ry bGVuKHByZWZpeCkgKworCQkJICAgICAgc3RybGVuKGRlLT5kX25hbWUpICsKKwkJCSAgICAgIHN0 cmxlbihzdWZmaXgpICsKKwkJCSAgICAgIDEpOworCQlpZiAoIXBhdGgpCisJCQlnb3RvIGVycjsK KworCQlzdHJjcHkocGF0aCwgcHJlZml4KTsKKwkJc3RyY2F0KHBhdGgsIGRlLT5kX25hbWUpOwor CQlzdHJjYXQocGF0aCwgc3VmZml4KTsKKworCQlpZ3RfZGVidWcoIkF1ZGlvIGRldmljZSBQQ0kg cGF0aCBpcyAlc1xuIiwgcGF0aCk7CiAJfQogCisJaWYgKCFwYXRoKQorCQlnb3RvIGVycjsKKwor CWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3Nh dmUiLCBPX1JEV1IpOworCWlmIChmZCA8IDApCisJCWdvdG8gZXJyOworCisJaWd0X2Fzc2VydChy ZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCQlzaXplb2YoX19p Z3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKKwlzdHJjaG9tcChfX2lndF9w bV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWlndF9pbnN0YWxsX2V4aXRfaGFuZGxlcihf X2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcik7CisJaWd0X2Fzc2VydF9lcSh3cml0 ZShmZCwgIjFcbiIsIDIpLCAyKTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9wZW4ocGF0aCwgT19S RFdSKTsKKwlpZiAoZmQgPCAwKQorCQlnb3RvIGVycjsKKworCWlndF9hc3NlcnQocmVhZChmZCwg X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkJc2l6ZW9mKF9faWd0X3BtX2F1ZGlv X3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9jb250cm9sKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0b1xuIiwgNSksIDUpOwor CWNsb3NlKGZkKTsKKwlfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCA9IHBhdGg7 CisKIAlpZ3RfZGVidWcoIlNhdmVkIGF1ZGlvIHBvd2VyIG1hbmFnZW1lbnQgYXMgJyVzJyBhbmQg JyVzJ1xuIiwKIAkJICBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCiAJCSAgX19p Z3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKTsKIAogCS8qIEdpdmUgc29tZSB0aW1lIGZvciBp dCB0byByZWFjdC4gKi8KIAlzbGVlcCgxKTsKKworCXJldHVybjsKKworZXJyOgorCWlndF93YXJu KCJGYWlsZWQgdG8gZW5hYmxlIGF1ZGlvIHJ1bnRpbWUgUE0hICglZCkiLCBlcnJubyk7CiB9CiAK IC8qKgotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 2/4] lib/igt_pm: Find HDA device when attempting to enable runtime PM Date: Mon, 23 Jul 2018 12:46:56 +0100 Message-ID: <20180723114658.13025-2-tvrtko.ursulin@linux.intel.com> References: <20180723114658.13025-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-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C8D66E15B for ; Mon, 23 Jul 2018 11:47:05 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id r16-v6so372614wrt.11 for ; Mon, 23 Jul 2018 04:47:05 -0700 (PDT) In-Reply-To: <20180723114658.13025-1-tvrtko.ursulin@linux.intel.com> 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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkhEQSBhdWRp byBkZXZpY2UgY2FuIGJlIHByZXNlbnQgYXQgdmFyaW91cyBQQ0kgcGF0aHMgb24gZGlmZmVyZW50 IHN5c3RlbXMKd2hpY2ggdGhlIGV4aXN0aW5nIGNvZGUgZGlkIG5vdCBhY2NvdW50IGZvci4KCkZ1 cnRoZXJtb3JlIHRoZSBmYWlsdXJlIHRvIGVuYWJsZSBydW50aW1lIFBNIHdhcyBzaWxlbnQgbGVh dmluZyBjYWxsZXJzCmluIHRoZSBkYXJrLgoKSW1wcm92ZSBpdCBieSBhdXRvLWxvY2F0aW5nIHRo ZSBQQ0kgcGF0aCBhbmQgbG9nZ2luZyBhIHdhcm5pbmcgd2hlbgpzb21ldGhpbmcgaXMgbm90IGFz IGV4cGVjdGVkLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X3BtLmMgfCA3NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjAgaW5zZXJ0 aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9wbS5jIGIvbGli L2lndF9wbS5jCmluZGV4IDZmM2IwYTJkODk3ZC4uYTRjMGNmMzM1ZjZkIDEwMDY0NAotLS0gYS9s aWIvaWd0X3BtLmMKKysrIGIvbGliL2lndF9wbS5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk ZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KIAogI2luY2x1ZGUgImRybXRlc3QuaCIKICNpbmNsdWRl ICJpZ3RfcG0uaCIKQEAgLTY0LDYgKzY1LDcgQEAgZW51bSB7CiAjZGVmaW5lIE1BWF9QT0xJQ1lf U1RSTEVOCXN0cmxlbihNQVhfUEVSRk9STUFOQ0VfU1RSKQogCiBzdGF0aWMgY2hhciBfX2lndF9w bV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmVbNjRdOworc3RhdGljIGNvbnN0IGNoYXIgKiBfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aDsKIHN0YXRpYyBjaGFyIF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbFs2NF07CiAKIHN0YXRpYyBpbnQgX19pZ3RfcG1fYXVkaW9fcmVz dG9yZV9ydW50aW1lX3BtKHZvaWQpCkBAIC04Niw3ICs4OCw3IEBAIHN0YXRpYyBpbnQgX19pZ3Rf cG1fYXVkaW9fcmVzdG9yZV9ydW50aW1lX3BtKHZvaWQpCiAKIAljbG9zZShmZCk7CiAKLQlmZCA9 IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250cm9sIiwg T19XUk9OTFkpOworCWZkID0gb3BlbihfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0 aCwgT19XUk9OTFkpOwogCWlmIChmZCA8IDApCiAJCXJldHVybiBlcnJubzsKIApAQCAtMTMwLDM2 ICsxMzIsNzcgQEAgc3RhdGljIHZvaWQgc3RyY2hvbXAoY2hhciAqc3RyKQogICovCiB2b2lkIGln dF9wbV9lbmFibGVfYXVkaW9fcnVudGltZV9wbSh2b2lkKQogeworCWNoYXIgKnBhdGggPSBOVUxM OworCXN0cnVjdCBkaXJlbnQgKmRlOworCURJUiAqZGlyOwogCWludCBmZDsKIAogCS8qIENoZWNr IGlmIGFscmVhZHkgZW5hYmxlZC4gKi8KIAlpZiAoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dl cl9zYXZlWzBdKQogCQlyZXR1cm47CiAKLQlmZCA9IG9wZW4oIi9zeXMvbW9kdWxlL3NuZF9oZGFf aW50ZWwvcGFyYW1ldGVycy9wb3dlcl9zYXZlIiwgT19SRFdSKTsKLQlpZiAoZmQgPj0gMCkgewot CQlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwK LQkJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKLQkJ c3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKTsKLQkJaWd0X2luc3Rh bGxfZXhpdF9oYW5kbGVyKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfZXhpdF9oYW5kbGVyKTsKLQkJ aWd0X2Fzc2VydF9lcSh3cml0ZShmZCwgIjFcbiIsIDIpLCAyKTsKLQkJY2xvc2UoZmQpOwotCX0K LQlmZCA9IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250 cm9sIiwgT19SRFdSKTsKLQlpZiAoZmQgPj0gMCkgewotCQlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCwKLQkJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9f cnVudGltZV9jb250cm9sKSkgPiAwKTsKLQkJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9jb250cm9sKTsKLQkJaWd0X2Fzc2VydF9lcSh3cml0ZShmZCwgImF1dG9cbiIsIDUpLCA1KTsK LQkJY2xvc2UoZmQpOworCWRpciA9IG9wZW5kaXIoIi9zeXMvYnVzL3BjaS9kcml2ZXJzL3NuZF9o ZGFfaW50ZWwiKTsKKwlpZiAoIWRpcikKKwkJZ290byBlcnI7CisKKwl3aGlsZSAoKGRlID0gcmVh ZGRpcihkaXIpKSkgeworCQljb25zdCBjaGFyICpwcmVmaXggPSAiL3N5cy9idXMvcGNpL2Rldmlj ZXMvIjsKKwkJY29uc3QgY2hhciAqc3VmZml4ID0gIi9wb3dlci9jb250cm9sIjsKKwkJY29uc3Qg Y2hhciAqbWF0Y2ggPSAiMDAwMDowMDoiOworCisJCWlmIChzdHJuY21wKGRlLT5kX25hbWUsIG1h dGNoLCBzdHJsZW4obWF0Y2gpKSkKKwkJCWNvbnRpbnVlOworCisJCXBhdGggPSBtYWxsb2Moc3Ry bGVuKHByZWZpeCkgKworCQkJICAgICAgc3RybGVuKGRlLT5kX25hbWUpICsKKwkJCSAgICAgIHN0 cmxlbihzdWZmaXgpICsKKwkJCSAgICAgIDEpOworCQlpZiAoIXBhdGgpCisJCQlnb3RvIGVycjsK KworCQlzdHJjcHkocGF0aCwgcHJlZml4KTsKKwkJc3RyY2F0KHBhdGgsIGRlLT5kX25hbWUpOwor CQlzdHJjYXQocGF0aCwgc3VmZml4KTsKKworCQlpZ3RfZGVidWcoIkF1ZGlvIGRldmljZSBQQ0kg cGF0aCBpcyAlc1xuIiwgcGF0aCk7CiAJfQogCisJaWYgKCFwYXRoKQorCQlnb3RvIGVycjsKKwor CWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3Nh dmUiLCBPX1JEV1IpOworCWlmIChmZCA8IDApCisJCWdvdG8gZXJyOworCisJaWd0X2Fzc2VydChy ZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCQlzaXplb2YoX19p Z3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKKwlzdHJjaG9tcChfX2lndF9w bV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWlndF9pbnN0YWxsX2V4aXRfaGFuZGxlcihf X2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcik7CisJaWd0X2Fzc2VydF9lcSh3cml0 ZShmZCwgIjFcbiIsIDIpLCAyKTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9wZW4ocGF0aCwgT19S RFdSKTsKKwlpZiAoZmQgPCAwKQorCQlnb3RvIGVycjsKKworCWlndF9hc3NlcnQocmVhZChmZCwg X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkJc2l6ZW9mKF9faWd0X3BtX2F1ZGlv X3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9jb250cm9sKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0b1xuIiwgNSksIDUpOwor CWNsb3NlKGZkKTsKKwlfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCA9IHBhdGg7 CisKIAlpZ3RfZGVidWcoIlNhdmVkIGF1ZGlvIHBvd2VyIG1hbmFnZW1lbnQgYXMgJyVzJyBhbmQg JyVzJ1xuIiwKIAkJICBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCiAJCSAgX19p Z3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKTsKIAogCS8qIEdpdmUgc29tZSB0aW1lIGZvciBp dCB0byByZWFjdC4gKi8KIAlzbGVlcCgxKTsKKworCXJldHVybjsKKworZXJyOgorCWlndF93YXJu KCJGYWlsZWQgdG8gZW5hYmxlIGF1ZGlvIHJ1bnRpbWUgUE0hICglZCkiLCBlcnJubyk7CiB9CiAK IC8qKgotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK