From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t v3 2/4] lib/igt_pm: Find HDA device when attempting to enable runtime PM Date: Mon, 23 Jul 2018 16:31:36 +0100 Message-ID: <20180723153136.15531-1-tvrtko.ursulin@linux.intel.com> References: <153235048851.26238.17694902495417158505@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 826E46E47E for ; Mon, 23 Jul 2018 15:31:43 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id q10-v6so1150129wrd.4 for ; Mon, 23 Jul 2018 08:31:43 -0700 (PDT) In-Reply-To: <153235048851.26238.17694902495417158505@skylake-alporthouse-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 IGV4cGVjdGVkLgoKdjI6CiAqIElmIHRoZXJlIGlzIG5vIGF1ZGlvIGh3L2RyaXZlciB0aGVyZSBp cyBubyBmYWlsdXJlLgoKdjMKICogQ29tbWVudC4KICogU2tpcCBub24tc3ltbGlua3MuCiAqIEZy ZWUgcGF0aCBvbiBmYWlsdXJlIGFuZCByZXN0b3JlLgogKiBTaW1wbGlmeSB3aXRoIGFzcHJpbnRm LiAoQ2hyaXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X3BtLmMgfCA3NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTkg aW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9wbS5j IGIvbGliL2lndF9wbS5jCmluZGV4IDZmM2IwYTJkODk3ZC4uZmQyODgwYzlkZjExIDEwMDY0NAot LS0gYS9saWIvaWd0X3BtLmMKKysrIGIvbGliL2lndF9wbS5jCkBAIC0zMyw2ICszMyw3IEBACiAj aW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMv dHlwZXMuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KIAogI2luY2x1ZGUgImRybXRlc3QuaCIKICNp bmNsdWRlICJpZ3RfcG0uaCIKQEAgLTY0LDYgKzY1LDcgQEAgZW51bSB7CiAjZGVmaW5lIE1BWF9Q T0xJQ1lfU1RSTEVOCXN0cmxlbihNQVhfUEVSRk9STUFOQ0VfU1RSKQogCiBzdGF0aWMgY2hhciBf X2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmVbNjRdOworc3RhdGljIGNoYXIgKiBfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aDsKIHN0YXRpYyBjaGFyIF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbFs2NF07CiAKIHN0YXRpYyBpbnQgX19pZ3RfcG1fYXVkaW9fcmVz dG9yZV9ydW50aW1lX3BtKHZvaWQpCkBAIC04Niw3ICs4OCw3IEBAIHN0YXRpYyBpbnQgX19pZ3Rf cG1fYXVkaW9fcmVzdG9yZV9ydW50aW1lX3BtKHZvaWQpCiAKIAljbG9zZShmZCk7CiAKLQlmZCA9 IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250cm9sIiwg T19XUk9OTFkpOworCWZkID0gb3BlbihfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0 aCwgT19XUk9OTFkpOwogCWlmIChmZCA8IDApCiAJCXJldHVybiBlcnJubzsKIApAQCAtMTAwLDYg KzEwMiw4IEBAIHN0YXRpYyBpbnQgX19pZ3RfcG1fYXVkaW9fcmVzdG9yZV9ydW50aW1lX3BtKHZv aWQpCiAJY2xvc2UoZmQpOwogCiAJX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlWzBd ID0gMDsKKwlmcmVlKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbF9wYXRoKTsKKwlfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCA9IE5VTEw7CiAKIAlyZXR1cm4gMDsKIH0K QEAgLTEzMCwzNiArMTM0LDc0IEBAIHN0YXRpYyB2b2lkIHN0cmNob21wKGNoYXIgKnN0cikKICAq Lwogdm9pZCBpZ3RfcG1fZW5hYmxlX2F1ZGlvX3J1bnRpbWVfcG0odm9pZCkKIHsKKwljaGFyICpw YXRoID0gTlVMTDsKKwlzdHJ1Y3QgZGlyZW50ICpkZTsKKwlESVIgKmRpcjsKIAlpbnQgZmQ7CiAK IAkvKiBDaGVjayBpZiBhbHJlYWR5IGVuYWJsZWQuICovCiAJaWYgKF9faWd0X3BtX2F1ZGlvX3J1 bnRpbWVfcG93ZXJfc2F2ZVswXSkKIAkJcmV0dXJuOwogCi0JZmQgPSBvcGVuKCIvc3lzL21vZHVs ZS9zbmRfaGRhX2ludGVsL3BhcmFtZXRlcnMvcG93ZXJfc2F2ZSIsIE9fUkRXUik7Ci0JaWYgKGZk ID49IDApIHsKLQkJaWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bv d2VyX3NhdmUsCi0JCQkJc2l6ZW9mKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSkp ID4gMCk7Ci0JCXN0cmNob21wKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSk7Ci0J CWlndF9pbnN0YWxsX2V4aXRfaGFuZGxlcihfX2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFu ZGxlcik7Ci0JCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICIxXG4iLCAyKSwgMik7Ci0JCWNsb3Nl KGZkKTsKLQl9Ci0JZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAzLjAv cG93ZXIvY29udHJvbCIsIE9fUkRXUik7Ci0JaWYgKGZkID49IDApIHsKLQkJaWd0X2Fzc2VydChy ZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wsCi0JCQkJc2l6ZW9mKF9faWd0 X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7Ci0JCXN0cmNob21wKF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbCk7Ci0JCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICJhdXRvXG4i LCA1KSwgNSk7Ci0JCWNsb3NlKGZkKTsKKwlkaXIgPSBvcGVuZGlyKCIvc3lzL2J1cy9wY2kvZHJp dmVycy9zbmRfaGRhX2ludGVsIik7CisJaWYgKCFkaXIpCisJCXJldHVybjsKKworCS8qIEZpbmQg UENJIGRldmljZSBjbGFpbWVkIGJ5IHNuZF9oZGFfaW50ZWwuICovCisJd2hpbGUgKChkZSA9IHJl YWRkaXIoZGlyKSkpIHsKKwkJY29uc3QgY2hhciAqbWF0Y2ggPSAiMDAwMDowMDoiOworCisJCWlm IChkZS0+ZF90eXBlICE9IERUX0xOSyB8fAorCQkgICAgc3RybmNtcChkZS0+ZF9uYW1lLCBtYXRj aCwgc3RybGVuKG1hdGNoKSkpCisJCQljb250aW51ZTsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRm KCZwYXRoLAorCQkJCSAgICAiL3N5cy9idXMvcGNpL2RldmljZXMvJXMvcG93ZXIvY29udHJvbCIs CisJCQkJICAgIGRlLT5kX25hbWUpKTsKKworCQlpZ3RfZGVidWcoIkF1ZGlvIGRldmljZSBQQ0kg cGF0aCBpcyAlc1xuIiwgcGF0aCk7CisKKwkJYnJlYWs7CiAJfQogCisJaWYgKCFwYXRoKQorCQln b3RvIGVycjsKKworCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0 ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOworCWlmIChmZCA8IDApCisJCWdvdG8gZXJyOworCisJ aWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJ CQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKKwlzdHJj aG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWlndF9pbnN0YWxsX2V4 aXRfaGFuZGxlcihfX2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcik7CisJaWd0X2Fz c2VydF9lcSh3cml0ZShmZCwgIjFcbiIsIDIpLCAyKTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9w ZW4ocGF0aCwgT19SRFdSKTsKKwlpZiAoZmQgPCAwKQorCQlnb3RvIGVycjsKKworCWlndF9hc3Nl cnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkJc2l6ZW9mKF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1f YXVkaW9fcnVudGltZV9jb250cm9sKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0b1xu IiwgNSksIDUpOworCWNsb3NlKGZkKTsKKworCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJv bF9wYXRoID0gcGF0aDsKKwogCWlndF9kZWJ1ZygiU2F2ZWQgYXVkaW8gcG93ZXIgbWFuYWdlbWVu dCBhcyAnJXMnIGFuZCAnJXMnXG4iLAogCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJf c2F2ZSwKIAkJICBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwogCiAJLyogR2l2ZSBz b21lIHRpbWUgZm9yIGl0IHRvIHJlYWN0LiAqLwogCXNsZWVwKDEpOworCisJcmV0dXJuOworCitl cnI6CisJaWd0X3dhcm4oIkZhaWxlZCB0byBlbmFibGUgYXVkaW8gcnVudGltZSBQTSEgKCVkKSIs IGVycm5vKTsKKwlmcmVlKHBhdGgpOwogfQogCiAvKioKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id A73406E49C for ; Mon, 23 Jul 2018 15:31:43 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id g6-v6so1167692wrp.0 for ; Mon, 23 Jul 2018 08:31:43 -0700 (PDT) From: Tvrtko Ursulin Date: Mon, 23 Jul 2018 16:31:36 +0100 Message-Id: <20180723153136.15531-1-tvrtko.ursulin@linux.intel.com> In-Reply-To: <153235048851.26238.17694902495417158505@skylake-alporthouse-com> References: <153235048851.26238.17694902495417158505@skylake-alporthouse-com> Subject: [igt-dev] [PATCH i-g-t v3 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: 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: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkhEQSBhdWRp byBkZXZpY2UgY2FuIGJlIHByZXNlbnQgYXQgdmFyaW91cyBQQ0kgcGF0aHMgb24gZGlmZmVyZW50 IHN5c3RlbXMKd2hpY2ggdGhlIGV4aXN0aW5nIGNvZGUgZGlkIG5vdCBhY2NvdW50IGZvci4KCkZ1 cnRoZXJtb3JlIHRoZSBmYWlsdXJlIHRvIGVuYWJsZSBydW50aW1lIFBNIHdhcyBzaWxlbnQgbGVh dmluZyBjYWxsZXJzCmluIHRoZSBkYXJrLgoKSW1wcm92ZSBpdCBieSBhdXRvLWxvY2F0aW5nIHRo ZSBQQ0kgcGF0aCBhbmQgbG9nZ2luZyBhIHdhcm5pbmcgd2hlbgpzb21ldGhpbmcgaXMgbm90IGFz IGV4cGVjdGVkLgoKdjI6CiAqIElmIHRoZXJlIGlzIG5vIGF1ZGlvIGh3L2RyaXZlciB0aGVyZSBp cyBubyBmYWlsdXJlLgoKdjMKICogQ29tbWVudC4KICogU2tpcCBub24tc3ltbGlua3MuCiAqIEZy ZWUgcGF0aCBvbiBmYWlsdXJlIGFuZCByZXN0b3JlLgogKiBTaW1wbGlmeSB3aXRoIGFzcHJpbnRm LiAoQ2hyaXMgV2lsc29uKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KLS0tCiBsaWIvaWd0X3BtLmMgfCA3NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTkg aW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9wbS5j IGIvbGliL2lndF9wbS5jCmluZGV4IDZmM2IwYTJkODk3ZC4uZmQyODgwYzlkZjExIDEwMDY0NAot LS0gYS9saWIvaWd0X3BtLmMKKysrIGIvbGliL2lndF9wbS5jCkBAIC0zMyw2ICszMyw3IEBACiAj aW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMv dHlwZXMuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KIAogI2luY2x1ZGUgImRybXRlc3QuaCIKICNp bmNsdWRlICJpZ3RfcG0uaCIKQEAgLTY0LDYgKzY1LDcgQEAgZW51bSB7CiAjZGVmaW5lIE1BWF9Q T0xJQ1lfU1RSTEVOCXN0cmxlbihNQVhfUEVSRk9STUFOQ0VfU1RSKQogCiBzdGF0aWMgY2hhciBf X2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmVbNjRdOworc3RhdGljIGNoYXIgKiBfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aDsKIHN0YXRpYyBjaGFyIF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbFs2NF07CiAKIHN0YXRpYyBpbnQgX19pZ3RfcG1fYXVkaW9fcmVz dG9yZV9ydW50aW1lX3BtKHZvaWQpCkBAIC04Niw3ICs4OCw3IEBAIHN0YXRpYyBpbnQgX19pZ3Rf cG1fYXVkaW9fcmVzdG9yZV9ydW50aW1lX3BtKHZvaWQpCiAKIAljbG9zZShmZCk7CiAKLQlmZCA9 IG9wZW4oIi9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDA6MDA6MDMuMC9wb3dlci9jb250cm9sIiwg T19XUk9OTFkpOworCWZkID0gb3BlbihfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0 aCwgT19XUk9OTFkpOwogCWlmIChmZCA8IDApCiAJCXJldHVybiBlcnJubzsKIApAQCAtMTAwLDYg KzEwMiw4IEBAIHN0YXRpYyBpbnQgX19pZ3RfcG1fYXVkaW9fcmVzdG9yZV9ydW50aW1lX3BtKHZv aWQpCiAJY2xvc2UoZmQpOwogCiAJX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlWzBd ID0gMDsKKwlmcmVlKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbF9wYXRoKTsKKwlfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCA9IE5VTEw7CiAKIAlyZXR1cm4gMDsKIH0K QEAgLTEzMCwzNiArMTM0LDc0IEBAIHN0YXRpYyB2b2lkIHN0cmNob21wKGNoYXIgKnN0cikKICAq Lwogdm9pZCBpZ3RfcG1fZW5hYmxlX2F1ZGlvX3J1bnRpbWVfcG0odm9pZCkKIHsKKwljaGFyICpw YXRoID0gTlVMTDsKKwlzdHJ1Y3QgZGlyZW50ICpkZTsKKwlESVIgKmRpcjsKIAlpbnQgZmQ7CiAK IAkvKiBDaGVjayBpZiBhbHJlYWR5IGVuYWJsZWQuICovCiAJaWYgKF9faWd0X3BtX2F1ZGlvX3J1 bnRpbWVfcG93ZXJfc2F2ZVswXSkKIAkJcmV0dXJuOwogCi0JZmQgPSBvcGVuKCIvc3lzL21vZHVs ZS9zbmRfaGRhX2ludGVsL3BhcmFtZXRlcnMvcG93ZXJfc2F2ZSIsIE9fUkRXUik7Ci0JaWYgKGZk ID49IDApIHsKLQkJaWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bv d2VyX3NhdmUsCi0JCQkJc2l6ZW9mKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSkp ID4gMCk7Ci0JCXN0cmNob21wKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSk7Ci0J CWlndF9pbnN0YWxsX2V4aXRfaGFuZGxlcihfX2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFu ZGxlcik7Ci0JCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICIxXG4iLCAyKSwgMik7Ci0JCWNsb3Nl KGZkKTsKLQl9Ci0JZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAzLjAv cG93ZXIvY29udHJvbCIsIE9fUkRXUik7Ci0JaWYgKGZkID49IDApIHsKLQkJaWd0X2Fzc2VydChy ZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wsCi0JCQkJc2l6ZW9mKF9faWd0 X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7Ci0JCXN0cmNob21wKF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbCk7Ci0JCWlndF9hc3NlcnRfZXEod3JpdGUoZmQsICJhdXRvXG4i LCA1KSwgNSk7Ci0JCWNsb3NlKGZkKTsKKwlkaXIgPSBvcGVuZGlyKCIvc3lzL2J1cy9wY2kvZHJp dmVycy9zbmRfaGRhX2ludGVsIik7CisJaWYgKCFkaXIpCisJCXJldHVybjsKKworCS8qIEZpbmQg UENJIGRldmljZSBjbGFpbWVkIGJ5IHNuZF9oZGFfaW50ZWwuICovCisJd2hpbGUgKChkZSA9IHJl YWRkaXIoZGlyKSkpIHsKKwkJY29uc3QgY2hhciAqbWF0Y2ggPSAiMDAwMDowMDoiOworCisJCWlm IChkZS0+ZF90eXBlICE9IERUX0xOSyB8fAorCQkgICAgc3RybmNtcChkZS0+ZF9uYW1lLCBtYXRj aCwgc3RybGVuKG1hdGNoKSkpCisJCQljb250aW51ZTsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRm KCZwYXRoLAorCQkJCSAgICAiL3N5cy9idXMvcGNpL2RldmljZXMvJXMvcG93ZXIvY29udHJvbCIs CisJCQkJICAgIGRlLT5kX25hbWUpKTsKKworCQlpZ3RfZGVidWcoIkF1ZGlvIGRldmljZSBQQ0kg cGF0aCBpcyAlc1xuIiwgcGF0aCk7CisKKwkJYnJlYWs7CiAJfQogCisJaWYgKCFwYXRoKQorCQln b3RvIGVycjsKKworCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0 ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOworCWlmIChmZCA8IDApCisJCWdvdG8gZXJyOworCisJ aWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJ CQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKKwlzdHJj aG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWlndF9pbnN0YWxsX2V4 aXRfaGFuZGxlcihfX2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcik7CisJaWd0X2Fz c2VydF9lcSh3cml0ZShmZCwgIjFcbiIsIDIpLCAyKTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9w ZW4ocGF0aCwgT19SRFdSKTsKKwlpZiAoZmQgPCAwKQorCQlnb3RvIGVycjsKKworCWlndF9hc3Nl cnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkJc2l6ZW9mKF9f aWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1f YXVkaW9fcnVudGltZV9jb250cm9sKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0b1xu IiwgNSksIDUpOworCWNsb3NlKGZkKTsKKworCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJv bF9wYXRoID0gcGF0aDsKKwogCWlndF9kZWJ1ZygiU2F2ZWQgYXVkaW8gcG93ZXIgbWFuYWdlbWVu dCBhcyAnJXMnIGFuZCAnJXMnXG4iLAogCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJf c2F2ZSwKIAkJICBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwogCiAJLyogR2l2ZSBz b21lIHRpbWUgZm9yIGl0IHRvIHJlYWN0LiAqLwogCXNsZWVwKDEpOworCisJcmV0dXJuOworCitl cnI6CisJaWd0X3dhcm4oIkZhaWxlZCB0byBlbmFibGUgYXVkaW8gcnVudGltZSBQTSEgKCVkKSIs IGVycm5vKTsKKwlmcmVlKHBhdGgpOwogfQogCiAvKioKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QK aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==