From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH v3 03/23] drm/i915/psr: Only handle interruptions of the transcoder in use Date: Fri, 23 Aug 2019 01:20:35 -0700 Message-ID: <20190823082055.5992-4-lucas.demarchi@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 819806EC2C for ; Fri, 23 Aug 2019 08:54:10 +0000 (UTC) In-Reply-To: <20190823082055.5992-1-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+CgpJdCB3 YXMgZW5hYmxpbmcgYW5kIGNoZWNraW5nIFBTUiBpbnRlcnJ1cHRpb25zIGluIGV2ZXJ5IHRyYW5z Y29kZXIKd2hpbGUgaXQgc2hvdWxkIGtlZXAgdGhlIGludGVycnVwdGlvbnMgb24gdGhlIG5vbi11 c2VkIHRyYW5zY29kZXJzCm1hc2tlZC4KClRoaXMgYWxzbyBhbHJlYWR5IHByZXBhcmVzIGZvciBm dXR1cmUgd2hlbiBtb3JlIHRoYW4gb25lIFBTUiBpbnN0YW5jZQp3aWxsIGJlIGFsbG93ZWQuCgpD YzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ClNp Z25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIHwgMTQwICsr KysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICAgICAgIHwgIDEzICstLQogMiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCA5NCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwppbmRl eCAyOGI2MmU1ODcyMDQuLjgxZTM2MTljZDkwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3Bzci5jCkBAIC04OCw0OCArODgsMjMgQEAgc3RhdGljIGJvb2wgaW50ZWxfcHNy Ml9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl9CiB9CiAKLXN0 YXRpYyBpbnQgZWRwX3Bzcl9zaGlmdChlbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIpCitz dGF0aWMgdm9pZCBwc3JfaXJxX2NvbnRyb2woc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogewotCXN3aXRjaCAoY3B1X3RyYW5zY29kZXIpIHsKLQljYXNlIFRSQU5TQ09ERVJfQToK LQkJcmV0dXJuIEVEUF9QU1JfVFJBTlNDT0RFUl9BX1NISUZUOwotCWNhc2UgVFJBTlNDT0RFUl9C OgotCQlyZXR1cm4gRURQX1BTUl9UUkFOU0NPREVSX0JfU0hJRlQ7Ci0JY2FzZSBUUkFOU0NPREVS X0M6Ci0JCXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfQ19TSElGVDsKLQlkZWZhdWx0OgotCQlN SVNTSU5HX0NBU0UoY3B1X3RyYW5zY29kZXIpOwotCQkvKiBmYWxsdGhyb3VnaCAqLwotCWNhc2Ug VFJBTlNDT0RFUl9FRFA6Ci0JCXJldHVybiBFRFBfUFNSX1RSQU5TQ09ERVJfRURQX1NISUZUOwot CX0KLX0KKwllbnVtIHRyYW5zY29kZXIgdHJhbnMgPSBkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXI7 CisJdTMyIHZhbCwgbWFzazsKIAotc3RhdGljIHZvaWQgcHNyX2lycV9jb250cm9sKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGRlYnVnKQotewotCXUzMiBkZWJ1Z19tYXNr LCBtYXNrOwotCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlcjsKLQl1MzIgdHJhbnNjb2Rl cnMgPSBCSVQoVFJBTlNDT0RFUl9FRFApOwotCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g OCkKLQkJdHJhbnNjb2RlcnMgfD0gQklUKFRSQU5TQ09ERVJfQSkgfAotCQkJICAgICAgIEJJVChU UkFOU0NPREVSX0IpIHwKLQkJCSAgICAgICBCSVQoVFJBTlNDT0RFUl9DKTsKLQotCWRlYnVnX21h c2sgPSAwOwotCW1hc2sgPSAwOwotCWZvcl9lYWNoX2NwdV90cmFuc2NvZGVyX21hc2tlZChkZXZf cHJpdiwgY3B1X3RyYW5zY29kZXIsIHRyYW5zY29kZXJzKSB7Ci0JCWludCBzaGlmdCA9IGVkcF9w c3Jfc2hpZnQoY3B1X3RyYW5zY29kZXIpOwotCi0JCW1hc2sgfD0gRURQX1BTUl9FUlJPUihzaGlm dCk7Ci0JCWRlYnVnX21hc2sgfD0gRURQX1BTUl9QT1NUX0VYSVQoc2hpZnQpIHwKLQkJCSAgICAg IEVEUF9QU1JfUFJFX0VOVFJZKHNoaWZ0KTsKLQl9CisJbWFzayA9IEVEUF9QU1JfRVJST1IodHJh bnMpOworCWlmIChkZXZfcHJpdi0+cHNyLmRlYnVnICYgSTkxNV9QU1JfREVCVUdfSVJRKQorCQlt YXNrIHw9IEVEUF9QU1JfUE9TVF9FWElUKHRyYW5zKSB8IEVEUF9QU1JfUFJFX0VOVFJZKHRyYW5z KTsKIAotCWlmIChkZWJ1ZyAmIEk5MTVfUFNSX0RFQlVHX0lSUSkKLQkJbWFzayB8PSBkZWJ1Z19t YXNrOwotCi0JSTkxNV9XUklURShFRFBfUFNSX0lNUiwgfm1hc2spOworCS8qCisJICogVE9ETzog d2hlbiBoYW5kbGluZyBtdWx0aXBsZSBQU1IgaW5zdGFuY2VzIGEgZ2xvYmFsIHNwaW5sb2NrIHdp bGwgYmUKKwkgKiBuZWVkZWQgdG8gc3luY2hyb25pemUgdGhlIHZhbHVlIG9mIHNoYXJlZCByZWdp c3RlcgorCSAqLworCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0lNUik7CisJdmFsICY9IH5FRFBf UFNSX1RSQU5TX01BU0sodHJhbnMpOworCXZhbCB8PSB+bWFzazsKKwlJOTE1X1dSSVRFKEVEUF9Q U1JfSU1SLCB2YWwpOwogfQogCiBzdGF0aWMgdm9pZCBwc3JfZXZlbnRfcHJpbnQodTMyIHZhbCwg Ym9vbCBwc3IyX2VuYWJsZWQpCkBAIC0xNzEsNjMgKzE0Niw1NCBAQCBzdGF0aWMgdm9pZCBwc3Jf ZXZlbnRfcHJpbnQodTMyIHZhbCwgYm9vbCBwc3IyX2VuYWJsZWQpCiAKIHZvaWQgaW50ZWxfcHNy X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBzcl9p aXIpCiB7Ci0JdTMyIHRyYW5zY29kZXJzID0gQklUKFRSQU5TQ09ERVJfRURQKTsKLQllbnVtIHRy YW5zY29kZXIgY3B1X3RyYW5zY29kZXI7CisJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy ID0gZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyOwogCWt0aW1lX3QgdGltZV9ucyA9ICBrdGltZV9n ZXQoKTsKLQl1MzIgbWFzayA9IDA7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQot CQl0cmFuc2NvZGVycyB8PSBCSVQoVFJBTlNDT0RFUl9BKSB8Ci0JCQkgICAgICAgQklUKFRSQU5T Q09ERVJfQikgfAotCQkJICAgICAgIEJJVChUUkFOU0NPREVSX0MpOworCWlmIChwc3JfaWlyICYg RURQX1BTUl9FUlJPUihjcHVfdHJhbnNjb2RlcikpIHsKKwkJdTMyIHZhbDsKIAotCWZvcl9lYWNo X2NwdV90cmFuc2NvZGVyX21hc2tlZChkZXZfcHJpdiwgY3B1X3RyYW5zY29kZXIsIHRyYW5zY29k ZXJzKSB7Ci0JCWludCBzaGlmdCA9IGVkcF9wc3Jfc2hpZnQoY3B1X3RyYW5zY29kZXIpOworCQlE Uk1fV0FSTigiW3RyYW5zY29kZXIgJXNdIFBTUiBhdXggZXJyb3JcbiIsCisJCQkgdHJhbnNjb2Rl cl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7CiAKLQkJaWYgKHBzcl9paXIgJiBFRFBfUFNSX0VSUk9S KHNoaWZ0KSkgewotCQkJRFJNX1dBUk4oIlt0cmFuc2NvZGVyICVzXSBQU1IgYXV4IGVycm9yXG4i LAotCQkJCSB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsKKwkJZGV2X3ByaXYtPnBz ci5pcnFfYXV4X2Vycm9yID0gdHJ1ZTsKIAotCQkJZGV2X3ByaXYtPnBzci5pcnFfYXV4X2Vycm9y ID0gdHJ1ZTsKKwkJLyoKKwkJICogSWYgdGhpcyBpbnRlcnJ1cHRpb24gaXMgbm90IG1hc2tlZCBp dCB3aWxsIGtlZXAKKwkJICogaW50ZXJydXB0aW5nIHNvIGZhc3QgdGhhdCBpdCBwcmV2ZW50cyB0 aGUgc2NoZWR1bGVkCisJCSAqIHdvcmsgdG8gcnVuLgorCQkgKiBBbHNvIGFmdGVyIGEgUFNSIGVy cm9yLCB3ZSBkb24ndCB3YW50IHRvIGFybSBQU1IKKwkJICogYWdhaW4gc28gd2UgZG9uJ3QgY2Fy ZSBhYm91dCB1bm1hc2sgdGhlIGludGVycnVwdGlvbgorCQkgKiBvciB1bnNldCBpcnFfYXV4X2Vy cm9yLgorCQkgKgorCQkgKiBUT0RPOiB3aGVuIGhhbmRsaW5nIG11bHRpcGxlIFBTUiBpbnN0YW5j ZXMgYSBnbG9iYWwgc3BpbmxvY2sKKwkJICogd2lsbCBiZSBuZWVkZWQgdG8gc3luY2hyb25pemUg dGhlIHZhbHVlIG9mIHNoYXJlZCByZWdpc3RlcgorCQkgKi8KKwkJdmFsID0gSTkxNV9SRUFEKEVE UF9QU1JfSU1SKTsKKwkJdmFsIHw9IEVEUF9QU1JfRVJST1IoY3B1X3RyYW5zY29kZXIpOworCQlJ OTE1X1dSSVRFKEVEUF9QU1JfSU1SLCB2YWwpOwogCi0JCQkvKgotCQkJICogSWYgdGhpcyBpbnRl cnJ1cHRpb24gaXMgbm90IG1hc2tlZCBpdCB3aWxsIGtlZXAKLQkJCSAqIGludGVycnVwdGluZyBz byBmYXN0IHRoYXQgaXQgcHJldmVudHMgdGhlIHNjaGVkdWxlZAotCQkJICogd29yayB0byBydW4u Ci0JCQkgKiBBbHNvIGFmdGVyIGEgUFNSIGVycm9yLCB3ZSBkb24ndCB3YW50IHRvIGFybSBQU1IK LQkJCSAqIGFnYWluIHNvIHdlIGRvbid0IGNhcmUgYWJvdXQgdW5tYXNrIHRoZSBpbnRlcnJ1cHRp b24KLQkJCSAqIG9yIHVuc2V0IGlycV9hdXhfZXJyb3IuCi0JCQkgKi8KLQkJCW1hc2sgfD0gRURQ X1BTUl9FUlJPUihzaGlmdCk7Ci0JCX0KKwkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPnBzci53 b3JrKTsKKwl9CiAKLQkJaWYgKHBzcl9paXIgJiBFRFBfUFNSX1BSRV9FTlRSWShzaGlmdCkpIHsK LQkJCWRldl9wcml2LT5wc3IubGFzdF9lbnRyeV9hdHRlbXB0ID0gdGltZV9uczsKLQkJCURSTV9E RUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQU1IgZW50cnkgYXR0ZW1wdCBpbiAyIHZibGFua3Nc biIsCi0JCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7Ci0JCX0KKwlp ZiAocHNyX2lpciAmIEVEUF9QU1JfUFJFX0VOVFJZKGNwdV90cmFuc2NvZGVyKSkgeworCQlkZXZf cHJpdi0+cHNyLmxhc3RfZW50cnlfYXR0ZW1wdCA9IHRpbWVfbnM7CisJCURSTV9ERUJVR19LTVMo Ilt0cmFuc2NvZGVyICVzXSBQU1IgZW50cnkgYXR0ZW1wdCBpbiAyIHZibGFua3NcbiIsCisJCQkg ICAgICB0cmFuc2NvZGVyX25hbWUoY3B1X3RyYW5zY29kZXIpKTsKKwl9CiAKLQkJaWYgKHBzcl9p aXIgJiBFRFBfUFNSX1BPU1RfRVhJVChzaGlmdCkpIHsKLQkJCWRldl9wcml2LT5wc3IubGFzdF9l eGl0ID0gdGltZV9uczsKLQkJCURSTV9ERUJVR19LTVMoIlt0cmFuc2NvZGVyICVzXSBQU1IgZXhp dCBjb21wbGV0ZWRcbiIsCi0JCQkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNwdV90cmFuc2NvZGVy KSk7CisJaWYgKHBzcl9paXIgJiBFRFBfUFNSX1BPU1RfRVhJVChjcHVfdHJhbnNjb2RlcikpIHsK KwkJZGV2X3ByaXYtPnBzci5sYXN0X2V4aXQgPSB0aW1lX25zOworCQlEUk1fREVCVUdfS01TKCJb dHJhbnNjb2RlciAlc10gUFNSIGV4aXQgY29tcGxldGVkXG4iLAorCQkJICAgICAgdHJhbnNjb2Rl cl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7CiAKLQkJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDkpIHsKLQkJCQl1MzIgdmFsID0gSTkxNV9SRUFEKFBTUl9FVkVOVChjcHVfdHJhbnNjb2Rlcikp OwotCQkJCWJvb2wgcHNyMl9lbmFibGVkID0gZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQ7CisJ CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKKwkJCXUzMiB2YWwgPSBJOTE1X1JFQUQo UFNSX0VWRU5UKGNwdV90cmFuc2NvZGVyKSk7CisJCQlib29sIHBzcjJfZW5hYmxlZCA9IGRldl9w cml2LT5wc3IucHNyMl9lbmFibGVkOwogCi0JCQkJSTkxNV9XUklURShQU1JfRVZFTlQoY3B1X3Ry YW5zY29kZXIpLCB2YWwpOwotCQkJCXBzcl9ldmVudF9wcmludCh2YWwsIHBzcjJfZW5hYmxlZCk7 Ci0JCQl9CisJCQlJOTE1X1dSSVRFKFBTUl9FVkVOVChjcHVfdHJhbnNjb2RlciksIHZhbCk7CisJ CQlwc3JfZXZlbnRfcHJpbnQodmFsLCBwc3IyX2VuYWJsZWQpOwogCQl9CiAJfQotCi0JaWYgKG1h c2spIHsKLQkJbWFzayB8PSBJOTE1X1JFQUQoRURQX1BTUl9JTVIpOwotCQlJOTE1X1dSSVRFKEVE UF9QU1JfSU1SLCBtYXNrKTsKLQotCQlzY2hlZHVsZV93b3JrKCZkZXZfcHJpdi0+cHNyLndvcmsp OwotCX0KIH0KIAogc3RhdGljIGJvb2wgaW50ZWxfZHBfZ2V0X2FscG1fc3RhdHVzKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCkBAIC03MzcsNyArNzAzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf cHNyX2VuYWJsZV9zb3VyY2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAogCUk5MTVfV1JJ VEUoRURQX1BTUl9ERUJVRyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCBtYXNrKTsKIAotCXBz cl9pcnFfY29udHJvbChkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci5kZWJ1Zyk7CisJcHNyX2lycV9j b250cm9sKGRldl9wcml2KTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9sb2Nr ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtNzYyLDcgKzcyOCw3IEBA IHN0YXRpYyB2b2lkIGludGVsX3Bzcl9lbmFibGVfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAkgKiB0byBhdm9pZCBhbnkgcmVuZGVyaW5nIHByb2JsZW1zLgogCSAq LwogCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0lJUik7Ci0JdmFsICY9IEVEUF9QU1JfRVJST1Io ZWRwX3Bzcl9zaGlmdChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsKKwl2YWwgJj0gRURQX1BT Ul9FUlJPUihkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwogCWlmICh2YWwpIHsKIAkJZGV2X3By aXYtPnBzci5zaW5rX25vdF9yZWxpYWJsZSA9IHRydWU7CiAJCURSTV9ERUJVR19LTVMoIlBTUiBp bnRlcnJ1cHRpb24gZXJyb3Igc2V0LCBub3QgZW5hYmxpbmcgUFNSXG4iKTsKQEAgLTExMTAsNyAr MTA3Niw3IEBAIGludCBpbnRlbF9wc3JfZGVidWdfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgdTY0IHZhbCkKIAogCW9sZF9tb2RlID0gZGV2X3ByaXYtPnBzci5kZWJ1ZyAm IEk5MTVfUFNSX0RFQlVHX01PREVfTUFTSzsKIAlkZXZfcHJpdi0+cHNyLmRlYnVnID0gdmFsOwot CXBzcl9pcnFfY29udHJvbChkZXZfcHJpdiwgZGV2X3ByaXYtPnBzci5kZWJ1Zyk7CisJcHNyX2ly cV9jb250cm9sKGRldl9wcml2KTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBzci5sb2Nr KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggMDJlMWVmMTBjNDdlLi4xYzZkOTk5NDQ2 MzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtNDIyNSwxMyArNDIyNSwxMiBAQCBlbnVt IHsKIC8qIEJzcGVjIGNsYWltcyB0aG9zZSBhcmVuJ3Qgc2hpZnRlZCBidXQgc3RheSBhdCAweDY0 ODAwICovCiAjZGVmaW5lIEVEUF9QU1JfSU1SCQkJCV9NTUlPKDB4NjQ4MzQpCiAjZGVmaW5lIEVE UF9QU1JfSUlSCQkJCV9NTUlPKDB4NjQ4MzgpCi0jZGVmaW5lICAgRURQX1BTUl9FUlJPUihzaGlm dCkJCQkoMSA8PCAoKHNoaWZ0KSArIDIpKQotI2RlZmluZSAgIEVEUF9QU1JfUE9TVF9FWElUKHNo aWZ0KQkJKDEgPDwgKChzaGlmdCkgKyAxKSkKLSNkZWZpbmUgICBFRFBfUFNSX1BSRV9FTlRSWShz aGlmdCkJCSgxIDw8IChzaGlmdCkpCi0jZGVmaW5lICAgRURQX1BTUl9UUkFOU0NPREVSX0NfU0hJ RlQJCTI0Ci0jZGVmaW5lICAgRURQX1BTUl9UUkFOU0NPREVSX0JfU0hJRlQJCTE2Ci0jZGVmaW5l ICAgRURQX1BTUl9UUkFOU0NPREVSX0FfU0hJRlQJCTgKLSNkZWZpbmUgICBFRFBfUFNSX1RSQU5T Q09ERVJfRURQX1NISUZUCQkwCisjZGVmaW5lICAgX0VEUF9QU1JfVFJBTlNfU0hJRlQodHJhbnMp CQkoKHRyYW5zKSA9PSBUUkFOU0NPREVSX0VEUCA/IFwKKwkJCQkJCSAwIDogKCh0cmFucykgKyAx KSAqIDgpCisjZGVmaW5lICAgRURQX1BTUl9UUkFOU19NQVNLKHRyYW5zKQkJKDB4NyA8PCBfRURQ X1BTUl9UUkFOU19TSElGVCh0cmFucykpCisjZGVmaW5lICAgRURQX1BTUl9FUlJPUih0cmFucykJ CQkoMHg0IDw8IF9FRFBfUFNSX1RSQU5TX1NISUZUKHRyYW5zKSkKKyNkZWZpbmUgICBFRFBfUFNS X1BPU1RfRVhJVCh0cmFucykJCSgweDIgPDwgX0VEUF9QU1JfVFJBTlNfU0hJRlQodHJhbnMpKQor I2RlZmluZSAgIEVEUF9QU1JfUFJFX0VOVFJZKHRyYW5zKQkJKDB4MSA8PCBfRURQX1BTUl9UUkFO U19TSElGVCh0cmFucykpCiAKICNkZWZpbmUgX1NSRF9BVVhfQ1RMX0EJCQkJMHg2MDgxMAogI2Rl ZmluZSBfU1JEX0FVWF9DVExfRURQCQkJMHg2ZjgxMAotLSAKMi4yMy4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=