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 C47D96E286 for ; Tue, 24 Jul 2018 10:08:59 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id t6-v6so3526803wrn.7 for ; Tue, 24 Jul 2018 03:08:59 -0700 (PDT) From: Tvrtko Ursulin Date: Tue, 24 Jul 2018 11:08:52 +0100 Message-Id: <20180724100852.24896-1-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180724095932.24379-1-tvrtko.ursulin@linux.intel.com> References: <20180724095932.24379-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t v5 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 ZCB3aXRoIGFuIEludGVsIGRldmljZS4KCnY1OgogKiBGaXggbWVtb3J5IGxlYWsgYW5kIHNpbGVu Y2UgVmFsZ3JpbmQgd2FybmluZy4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9wbS5jIHwgOTMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDc3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf cG0uYyBiL2xpYi9pZ3RfcG0uYwppbmRleCA2ZjNiMGEyZDg5N2QuLjIxZWIwMWUxOTAzZSAxMDA2 NDQKLS0tIGEvbGliL2lndF9wbS5jCisrKyBiL2xpYi9pZ3RfcG0uYwpAQCAtMzMsNiArMzMsNyBA QAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAKICNpbmNsdWRlICJkcm10ZXN0Lmgi CiAjaW5jbHVkZSAiaWd0X3BtLmgiCkBAIC02NCw2ICs2NSw3IEBAIGVudW0gewogI2RlZmluZSBN QVhfUE9MSUNZX1NUUkxFTglzdHJsZW4oTUFYX1BFUkZPUk1BTkNFX1NUUikKIAogc3RhdGljIGNo YXIgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlWzY0XTsKK3N0YXRpYyBjaGFyICog X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGg7CiBzdGF0aWMgY2hhciBfX2lndF9w bV9hdWRpb19ydW50aW1lX2NvbnRyb2xbNjRdOwogCiBzdGF0aWMgaW50IF9faWd0X3BtX2F1ZGlv X3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQpAQCAtODYsNyArODgsNyBAQCBzdGF0aWMgaW50IF9f aWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQogCiAJY2xvc2UoZmQpOwogCi0J ZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAzLjAvcG93ZXIvY29udHJv bCIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9s X3BhdGgsIE9fV1JPTkxZKTsKIAlpZiAoZmQgPCAwKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTEw MCw2ICsxMDIsOCBAQCBzdGF0aWMgaW50IF9faWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGltZV9w bSh2b2lkKQogCWNsb3NlKGZkKTsKIAogCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2 ZVswXSA9IDA7CisJZnJlZShfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCk7CisJ X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGggPSBOVUxMOwogCiAJcmV0dXJuIDA7 CiB9CkBAIC0xMzAsMzYgKzEzNCw5MyBAQCBzdGF0aWMgdm9pZCBzdHJjaG9tcChjaGFyICpzdHIp CiAgKi8KIHZvaWQgaWd0X3BtX2VuYWJsZV9hdWRpb19ydW50aW1lX3BtKHZvaWQpCiB7CisJY2hh ciAqcGF0aCA9IE5VTEw7CisJc3RydWN0IGRpcmVudCAqZGU7CisJRElSICpkaXI7CiAJaW50IGZk OwogCiAJLyogQ2hlY2sgaWYgYWxyZWFkeSBlbmFibGVkLiAqLwogCWlmIChfX2lndF9wbV9hdWRp b19ydW50aW1lX3Bvd2VyX3NhdmVbMF0pCiAJCXJldHVybjsKIAotCWZkID0gb3BlbigiL3N5cy9t b2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOwotCWlm IChmZCA+PSAwKSB7Ci0JCWlndF9hc3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9wb3dlcl9zYXZlLAotCQkJCXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmUpKSA+IDApOwotCQlzdHJjaG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUp OwotCQlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9leGl0 X2hhbmRsZXIpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiMVxuIiwgMiksIDIpOwotCQlj bG9zZShmZCk7Ci0JfQotCWZkID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDowMDow My4wL3Bvd2VyL2NvbnRyb2wiLCBPX1JEV1IpOwotCWlmIChmZCA+PSAwKSB7Ci0JCWlndF9hc3Nl cnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAotCQkJCXNpemVvZihf X2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpKSA+IDApOwotCQlzdHJjaG9tcChfX2lndF9w bV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0 b1xuIiwgNSksIDUpOworCWRpciA9IG9wZW5kaXIoIi9zeXMvY2xhc3Mvc291bmQiKTsKKwlpZiAo IWRpcikKKwkJcmV0dXJuOworCisJLyogRmluZCBQQ0kgZGV2aWNlIGNsYWltZWQgYnkgc25kX2hk YV9pbnRlbCBhbmQgdGllZCB0byBpOTE1LiAqLworCXdoaWxlICgoZGUgPSByZWFkZGlyKGRpcikp KSB7CisJCWNvbnN0IGNoYXIgKm1hdGNoID0gImh3QyI7CisJCWNoYXIgYnVmWzMyXSA9IHsgfTsg LyogZm9yIFZhbGdyaW5kICovCisJCWNoYXIgKnRtcDsKKwkJaW50IHJldDsKKworCQlpZiAoZGUt PmRfdHlwZSAhPSBEVF9MTksgfHwKKwkJICAgIHN0cm5jbXAoZGUtPmRfbmFtZSwgbWF0Y2gsIHN0 cmxlbihtYXRjaCkpKQorCQkJY29udGludWU7CisKKwkJaWd0X2Fzc2VydChhc3ByaW50ZigmdG1w LAorCQkJCSAgICAiL3N5cy9jbGFzcy9zb3VuZC8lcy92ZW5kb3JfbmFtZSIsCisJCQkJICAgIGRl LT5kX25hbWUpKTsKKworCQlmZCA9IG9wZW4odG1wLCBPX1JET05MWSk7CisJCWZyZWUodG1wKTsK KwkJaWd0X2Fzc2VydF9mZChmZCk7CisJCXJldCA9IHJlYWQoZmQsIGJ1Ziwgc2l6ZW9mKGJ1Zikp OwogCQljbG9zZShmZCk7CisJCWlndF9hc3NlcnQocmV0ID4gMCk7CisJCXN0cmNob21wKGJ1Zik7 CisKKwkJLyogUmVhbHRlayBhbmQgc2ltaWxhciBkZXZpY2VzIGFyZSBub3Qgd2hhdCB3ZSBhcmUg YWZ0ZXIuICovCisJCWlmIChzdHJjbXAoYnVmLCAiSW50ZWwiKSkKKwkJCWNvbnRpbnVlOworCisJ CWlndF9hc3NlcnQoYXNwcmludGYoJnBhdGgsCisJCQkJICAgICIvc3lzL2NsYXNzL3NvdW5kLyVz L2RldmljZS9kZXZpY2UvcG93ZXIvY29udHJvbCIsCisJCQkJICAgIGRlLT5kX25hbWUpKTsKKwor CQlpZ3RfZGVidWcoIkF1ZGlvIGRldmljZSBwYXRoIGlzICVzXG4iLCBwYXRoKTsKKworCQlicmVh azsKIAl9CiAKKwlpZiAoIXBhdGgpCisJCWdvdG8gZXJyOworCisJZmQgPSBvcGVuKCIvc3lzL21v ZHVsZS9zbmRfaGRhX2ludGVsL3BhcmFtZXRlcnMvcG93ZXJfc2F2ZSIsIE9fUkRXUik7CisJaWYg KGZkIDwgMCkKKwkJZ290byBlcnI7CisKKwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwKKwkJCXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1l X3Bvd2VyX3NhdmUpKSA+IDApOworCXN0cmNob21wKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93 ZXJfc2F2ZSk7CisJaWd0X2luc3RhbGxfZXhpdF9oYW5kbGVyKF9faWd0X3BtX2F1ZGlvX3J1bnRp bWVfZXhpdF9oYW5kbGVyKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiMVxuIiwgMiksIDIp OworCWNsb3NlKGZkKTsKKworCWZkID0gb3BlbihwYXRoLCBPX1JEV1IpOworCWlmIChmZCA8IDAp CisJCWdvdG8gZXJyOworCisJaWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50 aW1lX2NvbnRyb2wsCisJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKSkg PiAwKTsKKwlzdHJjaG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOworCWlndF9h c3NlcnRfZXEod3JpdGUoZmQsICJhdXRvXG4iLCA1KSwgNSk7CisJY2xvc2UoZmQpOworCisJX19p Z3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGggPSBwYXRoOworCiAJaWd0X2RlYnVnKCJT YXZlZCBhdWRpbyBwb3dlciBtYW5hZ2VtZW50IGFzICclcycgYW5kICclcydcbiIsCiAJCSAgX19p Z3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlLAogCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRp bWVfY29udHJvbCk7CiAKIAkvKiBHaXZlIHNvbWUgdGltZSBmb3IgaXQgdG8gcmVhY3QuICovCiAJ c2xlZXAoMSk7CisKKwlyZXR1cm47CisKK2VycjoKKwlpZ3Rfd2FybigiRmFpbGVkIHRvIGVuYWJs ZSBhdWRpbyBydW50aW1lIFBNISAoJWQpIiwgZXJybm8pOworCWZyZWUocGF0aCk7CiB9CiAKIC8q KgotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t v5 2/4] lib/igt_pm: Find HDA device when attempting to enable runtime PM Date: Tue, 24 Jul 2018 11:08:52 +0100 Message-ID: <20180724100852.24896-1-tvrtko.ursulin@linux.intel.com> References: <20180724095932.24379-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-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id 79E916E282 for ; Tue, 24 Jul 2018 10:08:59 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id j5-v6so3528416wrr.8 for ; Tue, 24 Jul 2018 03:08:59 -0700 (PDT) In-Reply-To: <20180724095932.24379-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 ZCB3aXRoIGFuIEludGVsIGRldmljZS4KCnY1OgogKiBGaXggbWVtb3J5IGxlYWsgYW5kIHNpbGVu Y2UgVmFsZ3JpbmQgd2FybmluZy4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9wbS5jIHwgOTMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDc3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf cG0uYyBiL2xpYi9pZ3RfcG0uYwppbmRleCA2ZjNiMGEyZDg5N2QuLjIxZWIwMWUxOTAzZSAxMDA2 NDQKLS0tIGEvbGliL2lndF9wbS5jCisrKyBiL2xpYi9pZ3RfcG0uYwpAQCAtMzMsNiArMzMsNyBA QAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAKICNpbmNsdWRlICJkcm10ZXN0Lmgi CiAjaW5jbHVkZSAiaWd0X3BtLmgiCkBAIC02NCw2ICs2NSw3IEBAIGVudW0gewogI2RlZmluZSBN QVhfUE9MSUNZX1NUUkxFTglzdHJsZW4oTUFYX1BFUkZPUk1BTkNFX1NUUikKIAogc3RhdGljIGNo YXIgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlWzY0XTsKK3N0YXRpYyBjaGFyICog X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGg7CiBzdGF0aWMgY2hhciBfX2lndF9w bV9hdWRpb19ydW50aW1lX2NvbnRyb2xbNjRdOwogCiBzdGF0aWMgaW50IF9faWd0X3BtX2F1ZGlv X3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQpAQCAtODYsNyArODgsNyBAQCBzdGF0aWMgaW50IF9f aWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGltZV9wbSh2b2lkKQogCiAJY2xvc2UoZmQpOwogCi0J ZmQgPSBvcGVuKCIvc3lzL2J1cy9wY2kvZGV2aWNlcy8wMDAwOjAwOjAzLjAvcG93ZXIvY29udHJv bCIsIE9fV1JPTkxZKTsKKwlmZCA9IG9wZW4oX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9s X3BhdGgsIE9fV1JPTkxZKTsKIAlpZiAoZmQgPCAwKQogCQlyZXR1cm4gZXJybm87CiAKQEAgLTEw MCw2ICsxMDIsOCBAQCBzdGF0aWMgaW50IF9faWd0X3BtX2F1ZGlvX3Jlc3RvcmVfcnVudGltZV9w bSh2b2lkKQogCWNsb3NlKGZkKTsKIAogCV9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93ZXJfc2F2 ZVswXSA9IDA7CisJZnJlZShfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2xfcGF0aCk7CisJ X19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGggPSBOVUxMOwogCiAJcmV0dXJuIDA7 CiB9CkBAIC0xMzAsMzYgKzEzNCw5MyBAQCBzdGF0aWMgdm9pZCBzdHJjaG9tcChjaGFyICpzdHIp CiAgKi8KIHZvaWQgaWd0X3BtX2VuYWJsZV9hdWRpb19ydW50aW1lX3BtKHZvaWQpCiB7CisJY2hh ciAqcGF0aCA9IE5VTEw7CisJc3RydWN0IGRpcmVudCAqZGU7CisJRElSICpkaXI7CiAJaW50IGZk OwogCiAJLyogQ2hlY2sgaWYgYWxyZWFkeSBlbmFibGVkLiAqLwogCWlmIChfX2lndF9wbV9hdWRp b19ydW50aW1lX3Bvd2VyX3NhdmVbMF0pCiAJCXJldHVybjsKIAotCWZkID0gb3BlbigiL3N5cy9t b2R1bGUvc25kX2hkYV9pbnRlbC9wYXJhbWV0ZXJzL3Bvd2VyX3NhdmUiLCBPX1JEV1IpOwotCWlm IChmZCA+PSAwKSB7Ci0JCWlndF9hc3NlcnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGlt ZV9wb3dlcl9zYXZlLAotCQkJCXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3Nh dmUpKSA+IDApOwotCQlzdHJjaG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX3Bvd2VyX3NhdmUp OwotCQlpZ3RfaW5zdGFsbF9leGl0X2hhbmRsZXIoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9leGl0 X2hhbmRsZXIpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiMVxuIiwgMiksIDIpOwotCQlj bG9zZShmZCk7Ci0JfQotCWZkID0gb3BlbigiL3N5cy9idXMvcGNpL2RldmljZXMvMDAwMDowMDow My4wL3Bvd2VyL2NvbnRyb2wiLCBPX1JEV1IpOwotCWlmIChmZCA+PSAwKSB7Ci0JCWlndF9hc3Nl cnQocmVhZChmZCwgX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sLAotCQkJCXNpemVvZihf X2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpKSA+IDApOwotCQlzdHJjaG9tcChfX2lndF9w bV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOwotCQlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiYXV0 b1xuIiwgNSksIDUpOworCWRpciA9IG9wZW5kaXIoIi9zeXMvY2xhc3Mvc291bmQiKTsKKwlpZiAo IWRpcikKKwkJcmV0dXJuOworCisJLyogRmluZCBQQ0kgZGV2aWNlIGNsYWltZWQgYnkgc25kX2hk YV9pbnRlbCBhbmQgdGllZCB0byBpOTE1LiAqLworCXdoaWxlICgoZGUgPSByZWFkZGlyKGRpcikp KSB7CisJCWNvbnN0IGNoYXIgKm1hdGNoID0gImh3QyI7CisJCWNoYXIgYnVmWzMyXSA9IHsgfTsg LyogZm9yIFZhbGdyaW5kICovCisJCWNoYXIgKnRtcDsKKwkJaW50IHJldDsKKworCQlpZiAoZGUt PmRfdHlwZSAhPSBEVF9MTksgfHwKKwkJICAgIHN0cm5jbXAoZGUtPmRfbmFtZSwgbWF0Y2gsIHN0 cmxlbihtYXRjaCkpKQorCQkJY29udGludWU7CisKKwkJaWd0X2Fzc2VydChhc3ByaW50ZigmdG1w LAorCQkJCSAgICAiL3N5cy9jbGFzcy9zb3VuZC8lcy92ZW5kb3JfbmFtZSIsCisJCQkJICAgIGRl LT5kX25hbWUpKTsKKworCQlmZCA9IG9wZW4odG1wLCBPX1JET05MWSk7CisJCWZyZWUodG1wKTsK KwkJaWd0X2Fzc2VydF9mZChmZCk7CisJCXJldCA9IHJlYWQoZmQsIGJ1Ziwgc2l6ZW9mKGJ1Zikp OwogCQljbG9zZShmZCk7CisJCWlndF9hc3NlcnQocmV0ID4gMCk7CisJCXN0cmNob21wKGJ1Zik7 CisKKwkJLyogUmVhbHRlayBhbmQgc2ltaWxhciBkZXZpY2VzIGFyZSBub3Qgd2hhdCB3ZSBhcmUg YWZ0ZXIuICovCisJCWlmIChzdHJjbXAoYnVmLCAiSW50ZWwiKSkKKwkJCWNvbnRpbnVlOworCisJ CWlndF9hc3NlcnQoYXNwcmludGYoJnBhdGgsCisJCQkJICAgICIvc3lzL2NsYXNzL3NvdW5kLyVz L2RldmljZS9kZXZpY2UvcG93ZXIvY29udHJvbCIsCisJCQkJICAgIGRlLT5kX25hbWUpKTsKKwor CQlpZ3RfZGVidWcoIkF1ZGlvIGRldmljZSBwYXRoIGlzICVzXG4iLCBwYXRoKTsKKworCQlicmVh azsKIAl9CiAKKwlpZiAoIXBhdGgpCisJCWdvdG8gZXJyOworCisJZmQgPSBvcGVuKCIvc3lzL21v ZHVsZS9zbmRfaGRhX2ludGVsL3BhcmFtZXRlcnMvcG93ZXJfc2F2ZSIsIE9fUkRXUik7CisJaWYg KGZkIDwgMCkKKwkJZ290byBlcnI7CisKKwlpZ3RfYXNzZXJ0KHJlYWQoZmQsIF9faWd0X3BtX2F1 ZGlvX3J1bnRpbWVfcG93ZXJfc2F2ZSwKKwkJCXNpemVvZihfX2lndF9wbV9hdWRpb19ydW50aW1l X3Bvd2VyX3NhdmUpKSA+IDApOworCXN0cmNob21wKF9faWd0X3BtX2F1ZGlvX3J1bnRpbWVfcG93 ZXJfc2F2ZSk7CisJaWd0X2luc3RhbGxfZXhpdF9oYW5kbGVyKF9faWd0X3BtX2F1ZGlvX3J1bnRp bWVfZXhpdF9oYW5kbGVyKTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGZkLCAiMVxuIiwgMiksIDIp OworCWNsb3NlKGZkKTsKKworCWZkID0gb3BlbihwYXRoLCBPX1JEV1IpOworCWlmIChmZCA8IDAp CisJCWdvdG8gZXJyOworCisJaWd0X2Fzc2VydChyZWFkKGZkLCBfX2lndF9wbV9hdWRpb19ydW50 aW1lX2NvbnRyb2wsCisJCQlzaXplb2YoX19pZ3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sKSkg PiAwKTsKKwlzdHJjaG9tcChfX2lndF9wbV9hdWRpb19ydW50aW1lX2NvbnRyb2wpOworCWlndF9h c3NlcnRfZXEod3JpdGUoZmQsICJhdXRvXG4iLCA1KSwgNSk7CisJY2xvc2UoZmQpOworCisJX19p Z3RfcG1fYXVkaW9fcnVudGltZV9jb250cm9sX3BhdGggPSBwYXRoOworCiAJaWd0X2RlYnVnKCJT YXZlZCBhdWRpbyBwb3dlciBtYW5hZ2VtZW50IGFzICclcycgYW5kICclcydcbiIsCiAJCSAgX19p Z3RfcG1fYXVkaW9fcnVudGltZV9wb3dlcl9zYXZlLAogCQkgIF9faWd0X3BtX2F1ZGlvX3J1bnRp bWVfY29udHJvbCk7CiAKIAkvKiBHaXZlIHNvbWUgdGltZSBmb3IgaXQgdG8gcmVhY3QuICovCiAJ c2xlZXAoMSk7CisKKwlyZXR1cm47CisKK2VycjoKKwlpZ3Rfd2FybigiRmFpbGVkIHRvIGVuYWJs ZSBhdWRpbyBydW50aW1lIFBNISAoJWQpIiwgZXJybm8pOworCWZyZWUocGF0aCk7CiB9CiAKIC8q KgotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK