From mboxrd@z Thu Jan 1 00:00:00 1970 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 296D06E1DD for ; Tue, 24 Jul 2018 09:59:39 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id v14-v6so3513979wro.5 for ; Tue, 24 Jul 2018 02:59:39 -0700 (PDT) From: Tvrtko Ursulin Date: Tue, 24 Jul 2018 10:59:32 +0100 Message-Id: <20180724095932.24379-1-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180723153136.15531-1-tvrtko.ursulin@linux.intel.com> References: <20180723153136.15531-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t v4 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 cyBubyBmYWlsdXJlLgoKdjM6CiAqIENvbW1lbnQuCiAqIFNraXAgbm9uLXN5bWxpbmtzLgogKiBG cmVlIHBhdGggb24gZmFpbHVyZSBhbmQgcmVzdG9yZS4KICogU2ltcGxpZnkgd2l0aCBhc3ByaW50 Zi4gKENocmlzIFdpbHNvbikKCnY0OgogKiBGaW5kIHNuZF9oZGFfaW50ZWwgaW5zdGFuY2UgdGll ZCB3aXRoIGFuIEludGVsIGRldmljZS4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9wbS5jIHwgOTIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9p Z3RfcG0uYyBiL2xpYi9pZ3RfcG0uYwppbmRleCA2ZjNiMGEyZDg5N2QuLjIyZDhkNDIwYzVkNyAx MDA2NDQKLS0tIGEvbGliL2lndF9wbS5jCisrKyBiL2xpYi9pZ3RfcG0uYwpAQCAtMzMsNiArMzMs NyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAKICNpbmNsdWRlICJkcm10ZXN0 LmgiCiAjaW5jbHVkZSAiaWd0X3BtLmgiCkBAIC02NCw2ICs2NSw3IEBAIGVudW0gewogI2RlZmlu ZSBNQVhfUE9MSUNZX1NUUkxFTglzdHJsZW4oTUFYX1BFUkZPUk1BTkNFX1NUUikKIAogc3RhdGlj IGNoYXIgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlWzY0XTsKK3N0YXRpYyBjaGFy ICogX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGg7CiBzdGF0aWMgY2hhciBfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xbNjRdOwogCiBzdGF0aWMgaW50IF9faWd0X3BtX2F1 ZGlvX3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQpAQCAtODYsNyArODgsNyBAQCBzdGF0aWMgaW50 IF9faWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQogCiAJY2xvc2UoZmQpOwog Ci0JZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAzLjAvcG93ZXIvY29u dHJvbCIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250 cm9sX3BhdGgsIE9fV1JPTkxZKTsKIAlpZiAoZmQgPCAwKQogCQlyZXR1cm4gZXJybm87CiAKQEAg LTEwMCw2ICsxMDIsOCBAQCBzdGF0aWMgaW50IF9faWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGlt ZV9wbSh2b2lkKQogCWNsb3NlKGZkKTsKIAogCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJf c2F2ZVswXSA9IDA7CisJZnJlZShfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCk7 CisJX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGggPSBOVUxMOwogCiAJcmV0dXJu IDA7CiB9CkBAIC0xMzAsMzYgKzEzNCw5MiBAQCBzdGF0aWMgdm9pZCBzdHJjaG9tcChjaGFyICpz dHIpCiAgKi8KIHZvaWQgaWd0X3BtX2VuYWJsZV9hdWRpb19ydW50aW1lX3BtKHZvaWQpCiB7CisJ Y2hhciAqcGF0aCA9IE5VTEw7CisJc3RydWN0IGRpcmVudCAqZGU7CisJRElSICpkaXI7CiAJaW50 IGZkOwogCiAJLyogQ2hlY2sgaWYgYWxyZWFkeSBlbmFibGVkLiAqLwogCWlmIChfX2lndF9wbV9h dWRpb19ydW50aW1lX3Bvd2VyX3NhdmVbMF0pCiAJCXJldHVybjsKIAotCWZkID0gb3BlbigiL3N5 cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOwot CWlmIChmZCA+PSAwKSB7Ci0JCWlndF9hc3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVu dGltZV9wb3dlcl9zYXZlLAotCQkJCXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2Vy X3NhdmUpKSA+IDApOwotCQlzdHJjaG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmUpOwotCQlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9l eGl0X2hhbmRsZXIpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiMVxuIiwgMiksIDIpOwot CQljbG9zZShmZCk7Ci0JfQotCWZkID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDow MDowMy4wL3Bvd2VyL2NvbnRyb2wiLCBPX1JEV1IpOwotCWlmIChmZCA+PSAwKSB7Ci0JCWlndF9h c3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAotCQkJCXNpemVv ZihfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpKSA+IDApOwotCQlzdHJjaG9tcChfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAi YXV0b1xuIiwgNSksIDUpOworCWRpciA9IG9wZW5kaXIoIi9zeXMvY2xhc3Mvc291bmQiKTsKKwlp ZiAoIWRpcikKKwkJcmV0dXJuOworCisJLyogRmluZCBQQ0kgZGV2aWNlIGNsYWltZWQgYnkgc25k X2hkYV9pbnRlbCBhbmQgdGllZCB0byBpOTE1LiAqLworCXdoaWxlICgoZGUgPSByZWFkZGlyKGRp cikpKSB7CisJCWNvbnN0IGNoYXIgKm1hdGNoID0gImh3QyI7CisJCWNoYXIgYnVmWzMyXTsKKwkJ Y2hhciAqdG1wOworCQlpbnQgcmV0OworCisJCWlmIChkZS0+ZF90eXBlICE9IERUX0xOSyB8fAor CQkgICAgc3RybmNtcChkZS0+ZF9uYW1lLCBtYXRjaCwgc3RybGVuKG1hdGNoKSkpCisJCQljb250 aW51ZTsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRmKCZ0bXAsCisJCQkJICAgICIvc3lzL2NsYXNz L3NvdW5kLyVzL3ZlbmRvcl9uYW1lIiwKKwkJCQkgICAgZGUtPmRfbmFtZSkpOworCisJCWZkID0g b3Blbih0bXAsIE9fUkRPTkxZKTsKKwkJaWd0X2Fzc2VydF9mZChmZCk7CisJCXJldCA9IHJlYWQo ZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwogCQljbG9zZShmZCk7CisJCWlndF9hc3NlcnQocmV0ID49 IDApOworCQlzdHJjaG9tcChidWYpOworCisJCS8qIFJlYWx0ZWsgYW5kIHNpbWlsYXIgZGV2aWNl cyBhcmUgbm90IHdoYXQgd2UgYXJlIGFmdGVyLiAqLworCQlpZiAoc3RyY21wKGJ1ZiwgIkludGVs IikpCisJCQljb250aW51ZTsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRmKCZwYXRoLAorCQkJCSAg ICAiL3N5cy9jbGFzcy9zb3VuZC8lcy9kZXZpY2UvZGV2aWNlL3Bvd2VyL2NvbnRyb2wiLAorCQkJ CSAgICBkZS0+ZF9uYW1lKSk7CisKKwkJaWd0X2RlYnVnKCJBdWRpbyBkZXZpY2UgcGF0aCBpcyAl c1xuIiwgcGF0aCk7CisKKwkJYnJlYWs7CiAJfQogCisJaWYgKCFwYXRoKQorCQlnb3RvIGVycjsK KworCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2Vy X3NhdmUiLCBPX1JEV1IpOworCWlmIChmZCA8IDApCisJCWdvdG8gZXJyOworCisJaWd0X2Fzc2Vy dChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCQlzaXplb2Yo X19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKKwlzdHJjaG9tcChfX2ln dF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWlndF9pbnN0YWxsX2V4aXRfaGFuZGxl cihfX2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcik7CisJaWd0X2Fzc2VydF9lcSh3 cml0ZShmZCwgIjFcbiIsIDIpLCAyKTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9wZW4ocGF0aCwg T19SRFdSKTsKKwlpZiAoZmQgPCAwKQorCQlnb3RvIGVycjsKKworCWlndF9hc3NlcnQocmVhZChm ZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkJc2l6ZW9mKF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVu dGltZV9jb250cm9sKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0b1xuIiwgNSksIDUp OworCWNsb3NlKGZkKTsKKworCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbF9wYXRoID0g cGF0aDsKKwogCWlndF9kZWJ1ZygiU2F2ZWQgYXVkaW8gcG93ZXIgbWFuYWdlbWVudCBhcyAnJXMn IGFuZCAnJXMnXG4iLAogCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwKIAkJ ICBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwogCiAJLyogR2l2ZSBzb21lIHRpbWUg Zm9yIGl0IHRvIHJlYWN0LiAqLwogCXNsZWVwKDEpOworCisJcmV0dXJuOworCitlcnI6CisJaWd0 X3dhcm4oIkZhaWxlZCB0byBlbmFibGUgYXVkaW8gcnVudGltZSBQTSEgKCVkKSIsIGVycm5vKTsK KwlmcmVlKHBhdGgpOwogfQogCiAvKioKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t v4 2/4] lib/igt_pm: Find HDA device when attempting to enable runtime PM Date: Tue, 24 Jul 2018 10:59:32 +0100 Message-ID: <20180724095932.24379-1-tvrtko.ursulin@linux.intel.com> References: <20180723153136.15531-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-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0DEE16E1C5 for ; Tue, 24 Jul 2018 09:59:38 +0000 (UTC) Received: by mail-wr1-x443.google.com with SMTP id h9-v6so3514503wro.3 for ; Tue, 24 Jul 2018 02:59:38 -0700 (PDT) In-Reply-To: <20180723153136.15531-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 IGV4cGVjdGVkLgoKdjI6CiAqIElmIHRoZXJlIGlzIG5vIGF1ZGlvIGh3L2RyaXZlciB0aGVyZSBp cyBubyBmYWlsdXJlLgoKdjM6CiAqIENvbW1lbnQuCiAqIFNraXAgbm9uLXN5bWxpbmtzLgogKiBG cmVlIHBhdGggb24gZmFpbHVyZSBhbmQgcmVzdG9yZS4KICogU2ltcGxpZnkgd2l0aCBhc3ByaW50 Zi4gKENocmlzIFdpbHNvbikKCnY0OgogKiBGaW5kIHNuZF9oZGFfaW50ZWwgaW5zdGFuY2UgdGll ZCB3aXRoIGFuIEludGVsIGRldmljZS4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0 dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9wbS5jIHwgOTIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9p Z3RfcG0uYyBiL2xpYi9pZ3RfcG0uYwppbmRleCA2ZjNiMGEyZDg5N2QuLjIyZDhkNDIwYzVkNyAx MDA2NDQKLS0tIGEvbGliL2lndF9wbS5jCisrKyBiL2xpYi9pZ3RfcG0uYwpAQCAtMzMsNiArMzMs NyBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAKICNpbmNsdWRlICJkcm10ZXN0 LmgiCiAjaW5jbHVkZSAiaWd0X3BtLmgiCkBAIC02NCw2ICs2NSw3IEBAIGVudW0gewogI2RlZmlu ZSBNQVhfUE9MSUNZX1NUUkxFTglzdHJsZW4oTUFYX1BFUkZPUk1BTkNFX1NUUikKIAogc3RhdGlj IGNoYXIgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlWzY0XTsKK3N0YXRpYyBjaGFy ICogX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGg7CiBzdGF0aWMgY2hhciBfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xbNjRdOwogCiBzdGF0aWMgaW50IF9faWd0X3BtX2F1 ZGlvX3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQpAQCAtODYsNyArODgsNyBAQCBzdGF0aWMgaW50 IF9faWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQogCiAJY2xvc2UoZmQpOwog Ci0JZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAzLjAvcG93ZXIvY29u dHJvbCIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250 cm9sX3BhdGgsIE9fV1JPTkxZKTsKIAlpZiAoZmQgPCAwKQogCQlyZXR1cm4gZXJybm87CiAKQEAg LTEwMCw2ICsxMDIsOCBAQCBzdGF0aWMgaW50IF9faWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGlt ZV9wbSh2b2lkKQogCWNsb3NlKGZkKTsKIAogCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJf c2F2ZVswXSA9IDA7CisJZnJlZShfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCk7 CisJX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGggPSBOVUxMOwogCiAJcmV0dXJu IDA7CiB9CkBAIC0xMzAsMzYgKzEzNCw5MiBAQCBzdGF0aWMgdm9pZCBzdHJjaG9tcChjaGFyICpz dHIpCiAgKi8KIHZvaWQgaWd0X3BtX2VuYWJsZV9hdWRpb19ydW50aW1lX3BtKHZvaWQpCiB7CisJ Y2hhciAqcGF0aCA9IE5VTEw7CisJc3RydWN0IGRpcmVudCAqZGU7CisJRElSICpkaXI7CiAJaW50 IGZkOwogCiAJLyogQ2hlY2sgaWYgYWxyZWFkeSBlbmFibGVkLiAqLwogCWlmIChfX2lndF9wbV9h dWRpb19ydW50aW1lX3Bvd2VyX3NhdmVbMF0pCiAJCXJldHVybjsKIAotCWZkID0gb3BlbigiL3N5 cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOwot CWlmIChmZCA+PSAwKSB7Ci0JCWlndF9hc3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVu dGltZV9wb3dlcl9zYXZlLAotCQkJCXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2Vy X3NhdmUpKSA+IDApOwotCQlzdHJjaG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmUpOwotCQlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9l eGl0X2hhbmRsZXIpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiMVxuIiwgMiksIDIpOwot CQljbG9zZShmZCk7Ci0JfQotCWZkID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDow MDowMy4wL3Bvd2VyL2NvbnRyb2wiLCBPX1JEV1IpOwotCWlmIChmZCA+PSAwKSB7Ci0JCWlndF9h c3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAotCQkJCXNpemVv ZihfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpKSA+IDApOwotCQlzdHJjaG9tcChfX2ln dF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAi YXV0b1xuIiwgNSksIDUpOworCWRpciA9IG9wZW5kaXIoIi9zeXMvY2xhc3Mvc291bmQiKTsKKwlp ZiAoIWRpcikKKwkJcmV0dXJuOworCisJLyogRmluZCBQQ0kgZGV2aWNlIGNsYWltZWQgYnkgc25k X2hkYV9pbnRlbCBhbmQgdGllZCB0byBpOTE1LiAqLworCXdoaWxlICgoZGUgPSByZWFkZGlyKGRp cikpKSB7CisJCWNvbnN0IGNoYXIgKm1hdGNoID0gImh3QyI7CisJCWNoYXIgYnVmWzMyXTsKKwkJ Y2hhciAqdG1wOworCQlpbnQgcmV0OworCisJCWlmIChkZS0+ZF90eXBlICE9IERUX0xOSyB8fAor CQkgICAgc3RybmNtcChkZS0+ZF9uYW1lLCBtYXRjaCwgc3RybGVuKG1hdGNoKSkpCisJCQljb250 aW51ZTsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRmKCZ0bXAsCisJCQkJICAgICIvc3lzL2NsYXNz L3NvdW5kLyVzL3ZlbmRvcl9uYW1lIiwKKwkJCQkgICAgZGUtPmRfbmFtZSkpOworCisJCWZkID0g b3Blbih0bXAsIE9fUkRPTkxZKTsKKwkJaWd0X2Fzc2VydF9mZChmZCk7CisJCXJldCA9IHJlYWQo ZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwogCQljbG9zZShmZCk7CisJCWlndF9hc3NlcnQocmV0ID49 IDApOworCQlzdHJjaG9tcChidWYpOworCisJCS8qIFJlYWx0ZWsgYW5kIHNpbWlsYXIgZGV2aWNl cyBhcmUgbm90IHdoYXQgd2UgYXJlIGFmdGVyLiAqLworCQlpZiAoc3RyY21wKGJ1ZiwgIkludGVs IikpCisJCQljb250aW51ZTsKKworCQlpZ3RfYXNzZXJ0KGFzcHJpbnRmKCZwYXRoLAorCQkJCSAg ICAiL3N5cy9jbGFzcy9zb3VuZC8lcy9kZXZpY2UvZGV2aWNlL3Bvd2VyL2NvbnRyb2wiLAorCQkJ CSAgICBkZS0+ZF9uYW1lKSk7CisKKwkJaWd0X2RlYnVnKCJBdWRpbyBkZXZpY2UgcGF0aCBpcyAl c1xuIiwgcGF0aCk7CisKKwkJYnJlYWs7CiAJfQogCisJaWYgKCFwYXRoKQorCQlnb3RvIGVycjsK KworCWZkID0gb3BlbigiL3N5cy9tb2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2Vy X3NhdmUiLCBPX1JEV1IpOworCWlmIChmZCA8IDApCisJCWdvdG8gZXJyOworCisJaWd0X2Fzc2Vy dChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUsCisJCQlzaXplb2Yo X19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlKSkgPiAwKTsKKwlzdHJjaG9tcChfX2ln dF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUpOworCWlndF9pbnN0YWxsX2V4aXRfaGFuZGxl cihfX2lndF9wbV9hdWRpb19ydW50aW1lX2V4aXRfaGFuZGxlcik7CisJaWd0X2Fzc2VydF9lcSh3 cml0ZShmZCwgIjFcbiIsIDIpLCAyKTsKKwljbG9zZShmZCk7CisKKwlmZCA9IG9wZW4ocGF0aCwg T19SRFdSKTsKKwlpZiAoZmQgPCAwKQorCQlnb3RvIGVycjsKKworCWlndF9hc3NlcnQocmVhZChm ZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAorCQkJc2l6ZW9mKF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfY29udHJvbCkpID4gMCk7CisJc3RyY2hvbXAoX19pZ3RfcG1fYXVkaW9fcnVu dGltZV9jb250cm9sKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0b1xuIiwgNSksIDUp OworCWNsb3NlKGZkKTsKKworCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfY29udHJvbF9wYXRoID0g cGF0aDsKKwogCWlndF9kZWJ1ZygiU2F2ZWQgYXVkaW8gcG93ZXIgbWFuYWdlbWVudCBhcyAnJXMn IGFuZCAnJXMnXG4iLAogCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwKIAkJ ICBfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwogCiAJLyogR2l2ZSBzb21lIHRpbWUg Zm9yIGl0IHRvIHJlYWN0LiAqLwogCXNsZWVwKDEpOworCisJcmV0dXJuOworCitlcnI6CisJaWd0 X3dhcm4oIkZhaWxlZCB0byBlbmFibGUgYXVkaW8gcnVudGltZSBQTSEgKCVkKSIsIGVycm5vKTsK KwlmcmVlKHBhdGgpOwogfQogCiAvKioKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==