From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D918C48BE6 for ; Wed, 16 Jun 2021 20:28:22 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BA25B61003 for ; Wed, 16 Jun 2021 20:28:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BA25B61003 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C75EB6E81D; Wed, 16 Jun 2021 20:28:18 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 766C76E819 for ; Wed, 16 Jun 2021 20:28:17 +0000 (UTC) IronPort-SDR: OkujdCPIm1vVwkGb9csn9J2yEdlDbeoUle3Z7Rt1PbY0NVhgAO0z5gmXnxRKt3Q+KLdmgyMBYp HbgOBnkas/PQ== X-IronPort-AV: E=McAfee;i="6200,9189,10016"; a="206289214" X-IronPort-AV: E=Sophos;i="5.83,278,1616482800"; d="scan'208";a="206289214" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2021 13:28:16 -0700 IronPort-SDR: rlnLnfzd1QlQfkWQQqUF8fZsyLuuhXF+IIeBjuS4Tgcmnsu15CYpJo4SNJVAt+knYv762seqZl /ftuJ17SZvSg== X-IronPort-AV: E=Sophos;i="5.83,278,1616482800"; d="scan'208";a="479227656" Received: from josouza-mobl2.jf.intel.com (HELO josouza-mobl2.intel.com) ([10.24.14.54]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jun 2021 13:28:16 -0700 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= To: intel-gfx@lists.freedesktop.org Date: Wed, 16 Jun 2021 13:31:53 -0700 Message-Id: <20210616203158.118111-1-jose.souza@intel.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/6] drm/i915/display/psr: Handle SU Y granularity X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" V2Ugd2VyZSBvbmx5IGhhbmRsaW5nIFggYW5kIHdpZHRoIGdyYW51bGFyaXR5LCB3aGF0IHdhcyBj YXVzaW5nIGlzc3Vlcwp3aGVuIHNpbmsgaGFkIGEgZ3JhbnVsYXJpdHkgZGlmZmVyZW50IHRoYW4g NC4KCldoaWxlIGF0IGl0LCByZW5hbWluZyBzdV94X2dyYW51bGFyaXR5IHRvIHN1X3dfZ3JhbnVs YXJpdHkgdG8gYmV0dGVyCm1hdGNoIHJlYWxpdHkuCgpDYzogR3dhbi1neWVvbmcgTXVuIDxnd2Fu LWd5ZW9uZy5tdW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNv dXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfcHNyLmMgICAgICB8IDExMCArKysrKysrKysrKystLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCAxNWU5MWE5 OWM4YjlhLi5mODkxNTJjYTUyYTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaApAQCAtMTA0MSw2ICsxMDQxLDcgQEAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgewogCWJvb2wgaGFzX3BzcjI7CiAJYm9vbCBlbmFibGVfcHNyMl9z ZWxfZmV0Y2g7CiAJdTMyIGRjM2NvX2V4aXRsaW5lOworCXUxNiBzdV95X2dyYW51bGFyaXR5Owog CiAJLyoKIAkgKiBGcmVxdWVuY2UgdGhlIGRwbGwgZm9yIHRoZSBwb3J0IHNob3VsZCBydW4gYXQu IERpZmZlcnMgZnJvbSB0aGUKQEAgLTE0OTgsNyArMTQ5OSw4IEBAIHN0cnVjdCBpbnRlbF9wc3Ig ewogCWt0aW1lX3QgbGFzdF9leGl0OwogCWJvb2wgc2lua19ub3RfcmVsaWFibGU7CiAJYm9vbCBp cnFfYXV4X2Vycm9yOwotCXUxNiBzdV94X2dyYW51bGFyaXR5OworCXUxNiBzdV93X2dyYW51bGFy aXR5OworCXUxNiBzdV95X2dyYW51bGFyaXR5OwogCXUzMiBkYzNjb19leGl0bGluZTsKIAl1MzIg ZGMzY29fZXhpdF9kZWxheTsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGRjM2NvX3dvcms7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwppbmRleCA3Nzg2NWNmNjY0MWY4Li5m ZGUzMGY5Mzc1MDRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMK QEAgLTI2NSwzMiArMjY1LDQ0IEBAIHN0YXRpYyB1OCBpbnRlbF9kcF9nZXRfc2lua19zeW5jX2xh dGVuY3koc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlyZXR1cm4gdmFsOwogfQogCi1zdGF0 aWMgdTE2IGludGVsX2RwX2dldF9zdV94X2dyYW51bGFydGl5KHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCitzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfc3VfZ3JhbnVsYXJpdHkoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGRw X3RvX2k5MTUoaW50ZWxfZHApOwotCXUxNiB2YWw7CiAJc3NpemVfdCByOworCXUxNiB3OworCXU4 IHk7CisKKwkvKiBJZiBzaW5rIGRvbid0IGhhdmUgc3BlY2lmaWMgZ3JhbnVsYXJpdHkgcmVxdWly ZW1lbnRzIHNldCBsZWdhY3kgb25lcyAqLworCWlmICghKGludGVsX2RwLT5wc3JfZHBjZFsxXSAm IERQX1BTUjJfU1VfR1JBTlVMQVJJVFlfUkVRVUlSRUQpKSB7CisJCS8qIEFzIFBTUjIgSFcgc2Vu ZHMgZnVsbCBsaW5lcywgd2UgZG8gbm90IGNhcmUgYWJvdXQgeCBncmFudWxhcml0eSAqLworCQl3 ID0gNDsKKwkJeSA9IDQ7CisJCWdvdG8gZXhpdDsKKwl9CiAKLQkvKgotCSAqIFJldHVybmluZyB0 aGUgZGVmYXVsdCBYIGdyYW51bGFyaXR5IGlmIGdyYW51bGFyaXR5IG5vdCByZXF1aXJlZCBvcgot CSAqIGlmIERQQ0QgcmVhZCBmYWlscwotCSAqLwotCWlmICghKGludGVsX2RwLT5wc3JfZHBjZFsx XSAmIERQX1BTUjJfU1VfR1JBTlVMQVJJVFlfUkVRVUlSRUQpKQotCQlyZXR1cm4gNDsKLQotCXIg PSBkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBEUF9QU1IyX1NVX1hfR1JBTlVMQVJJ VFksICZ2YWwsIDIpOworCXIgPSBkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBEUF9Q U1IyX1NVX1hfR1JBTlVMQVJJVFksICZ3LCAyKTsKIAlpZiAociAhPSAyKQogCQlkcm1fZGJnX2tt cygmaTkxNS0+ZHJtLAogCQkJICAgICJVbmFibGUgdG8gcmVhZCBEUF9QU1IyX1NVX1hfR1JBTlVM QVJJVFlcbiIpOwotCiAJLyoKIAkgKiBTcGVjIHNheXMgdGhhdCBpZiB0aGUgdmFsdWUgcmVhZCBp cyAwIHRoZSBkZWZhdWx0IGdyYW51bGFyaXR5IHNob3VsZAogCSAqIGJlIHVzZWQgaW5zdGVhZC4K IAkgKi8KLQlpZiAociAhPSAyIHx8IHZhbCA9PSAwKQotCQl2YWwgPSA0OworCWlmIChyICE9IDIg fHwgdyA9PSAwKQorCQl3ID0gNDsKIAotCXJldHVybiB2YWw7CisJciA9IGRybV9kcF9kcGNkX3Jl YWQoJmludGVsX2RwLT5hdXgsIERQX1BTUjJfU1VfWV9HUkFOVUxBUklUWSwgJnksIDEpOworCWlm IChyICE9IDEpIHsKKwkJZHJtX2RiZ19rbXMoJmk5MTUtPmRybSwKKwkJCSAgICAiVW5hYmxlIHRv IHJlYWQgRFBfUFNSMl9TVV9ZX0dSQU5VTEFSSVRZXG4iKTsKKwkJeSA9IDQ7CisJfQorCWlmICh5 ID09IDApCisJCXkgPSAxOworCitleGl0OgorCWludGVsX2RwLT5wc3Iuc3Vfd19ncmFudWxhcml0 eSA9IHc7CisJaW50ZWxfZHAtPnBzci5zdV95X2dyYW51bGFyaXR5ID0geTsKIH0KIAogdm9pZCBp bnRlbF9wc3JfaW5pdF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBAIC0zNDYsOCAr MzU4LDcgQEAgdm9pZCBpbnRlbF9wc3JfaW5pdF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCiAJCWlmIChpbnRlbF9kcC0+cHNyLnNpbmtfcHNyMl9zdXBwb3J0KSB7CiAJCQlpbnRlbF9k cC0+cHNyLmNvbG9yaW1ldHJ5X3N1cHBvcnQgPQogCQkJCWludGVsX2RwX2dldF9jb2xvcmltZXRy eV9zdGF0dXMoaW50ZWxfZHApOwotCQkJaW50ZWxfZHAtPnBzci5zdV94X2dyYW51bGFyaXR5ID0K LQkJCQlpbnRlbF9kcF9nZXRfc3VfeF9ncmFudWxhcnRpeShpbnRlbF9kcCk7CisJCQlpbnRlbF9k cF9nZXRfc3VfZ3JhbnVsYXJpdHkoaW50ZWxfZHApOwogCQl9CiAJfQogfQpAQCAtNzQyLDYgKzc1 Myw0MCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX3NlbF9mZXRjaF9jb25maWdfdmFsaWQoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlyZXR1cm4gY3J0Y19zdGF0ZS0+ZW5hYmxlX3BzcjJf c2VsX2ZldGNoID0gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgcHNyMl9ncmFudWxhcml0eV9jaGVj ayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAorCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQoreworCWNvbnN0IGludCBjcnRjX2hkaXNwbGF5ID0gY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OworCWNvbnN0IGludCBjcnRjX3ZkaXNw bGF5ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OworCXUxNiB5 X2dyYW51bGFyaXR5ID0gMDsKKworCS8qIFBTUjIgSFcgb25seSBzZW5kIGZ1bGwgbGluZXMgc28g d2Ugb25seSBuZWVkIHRvIHZhbGlkYXRlIHRoZSB3aWR0aCAqLworCWlmIChjcnRjX2hkaXNwbGF5 ICUgaW50ZWxfZHAtPnBzci5zdV93X2dyYW51bGFyaXR5KQorCQlyZXR1cm4gZmFsc2U7CisKKwlp ZiAoY3J0Y192ZGlzcGxheSAlIGludGVsX2RwLT5wc3Iuc3VfeV9ncmFudWxhcml0eSkKKwkJcmV0 dXJuIGZhbHNlOworCisJLyogSFcgdHJhY2tpbmcgaXMgb25seSBhbGlnbmVkIHRvIDQgbGluZXMg Ki8KKwlpZiAoIWNydGNfc3RhdGUtPmVuYWJsZV9wc3IyX3NlbF9mZXRjaCkKKwkJcmV0dXJuIGlu dGVsX2RwLT5wc3Iuc3VfeV9ncmFudWxhcml0eSA9PSA0OworCisJLyoKKwkgKiBGb3IgU1cgdHJh Y2tpbmcgd2UgY2FuIGFkanVzdCB0aGUgeSB0byBtYXRjaCBzaW5rIHJlcXVpcmVtZW50IGlmCisJ ICogbXVsdGlwbGUgb2YgNAorCSAqLworCWlmIChpbnRlbF9kcC0+cHNyLnN1X3lfZ3JhbnVsYXJp dHkgPD0gMikKKwkJeV9ncmFudWxhcml0eSA9IDQ7CisJZWxzZSBpZiAoKGludGVsX2RwLT5wc3Iu c3VfeV9ncmFudWxhcml0eSAlIDQpID09IDApCisJCXlfZ3JhbnVsYXJpdHkgPSBpbnRlbF9kcC0+ cHNyLnN1X3lfZ3JhbnVsYXJpdHk7CisKKwlpZiAoeV9ncmFudWxhcml0eSA9PSAwIHx8IGNydGNf dmRpc3BsYXkgJSB5X2dyYW51bGFyaXR5KQorCQlyZXR1cm4gZmFsc2U7CisKKwljcnRjX3N0YXRl LT5zdV95X2dyYW51bGFyaXR5ID0geV9ncmFudWxhcml0eTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwog c3RhdGljIGJvb2wgaW50ZWxfcHNyMl9jb25maWdfdmFsaWQoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CkBA IC04MjQsMTkgKzg2OSw2IEBAIHN0YXRpYyBib29sIGludGVsX3BzcjJfY29uZmlnX3ZhbGlkKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKLQkvKgotCSAq IEhXIHNlbmRzIFNVIGJsb2NrcyBvZiBzaXplIGZvdXIgc2NhbiBsaW5lcywgd2hpY2ggbWVhbnMg dGhlIHN0YXJ0aW5nCi0JICogWCBjb29yZGluYXRlIGFuZCBZIGdyYW51bGFyaXR5IHJlcXVpcmVt ZW50cyB3aWxsIGFsd2F5cyBiZSBtZXQuIFdlCi0JICogb25seSBuZWVkIHRvIHZhbGlkYXRlIHRo ZSBTVSBibG9jayB3aWR0aCBpcyBhIG11bHRpcGxlIG9mCi0JICogeCBncmFudWxhcml0eS4KLQkg Ki8KLQlpZiAoY3J0Y19oZGlzcGxheSAlIGludGVsX2RwLT5wc3Iuc3VfeF9ncmFudWxhcml0eSkg ewotCQlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKLQkJCSAgICAiUFNSMiBub3QgZW5hYmxl ZCwgaGRpc3BsYXkoJWQpIG5vdCBtdWx0aXBsZSBvZiAlZFxuIiwKLQkJCSAgICBjcnRjX2hkaXNw bGF5LCBpbnRlbF9kcC0+cHNyLnN1X3hfZ3JhbnVsYXJpdHkpOwotCQlyZXR1cm4gZmFsc2U7Ci0J fQotCiAJaWYgKEhBU19QU1IyX1NFTF9GRVRDSChkZXZfcHJpdikpIHsKIAkJaWYgKCFpbnRlbF9w c3IyX3NlbF9mZXRjaF9jb25maWdfdmFsaWQoaW50ZWxfZHAsIGNydGNfc3RhdGUpICYmCiAJCSAg ICAhSEFTX1BTUl9IV19UUkFDS0lORyhkZXZfcHJpdikpIHsKQEAgLTg1Myw2ICs4ODUsMTEgQEAg c3RhdGljIGJvb2wgaW50ZWxfcHNyMl9jb25maWdfdmFsaWQoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAorCWlmICghcHNyMl9ncmFudWxhcml0eV9jaGVj ayhpbnRlbF9kcCwgY3J0Y19zdGF0ZSkpIHsKKwkJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0s ICJQU1IyIG5vdCBlbmFibGVkLCBTVSBncmFudWxhcml0eSBub3QgY29tcGF0aWJsZVxuIik7CisJ CXJldHVybiBmYWxzZTsKKwl9CisKIAlpZiAoIWNydGNfc3RhdGUtPmVuYWJsZV9wc3IyX3NlbF9m ZXRjaCAmJgogCSAgICAoY3J0Y19oZGlzcGxheSA+IHBzcl9tYXhfaCB8fCBjcnRjX3ZkaXNwbGF5 ID4gcHNyX21heF92KSkgewogCQlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKQEAgLTE0MzIs NiArMTQ2OSwxNiBAQCBzdGF0aWMgdm9pZCBjbGlwX2FyZWFfdXBkYXRlKHN0cnVjdCBkcm1fcmVj dCAqb3ZlcmxhcF9kYW1hZ2VfYXJlYSwKIAkJb3ZlcmxhcF9kYW1hZ2VfYXJlYS0+eTIgPSBkYW1h Z2VfYXJlYS0+eTI7CiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX3BzcjJfc2VsX2ZldGNoX3BpcGVf YWxpZ25tZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJ CQkJc3RydWN0IGRybV9yZWN0ICpwaXBlX2NsaXApCit7CisJY29uc3QgdTE2IHlfYWxpZ25tZW50 ID0gY3J0Y19zdGF0ZS0+c3VfeV9ncmFudWxhcml0eTsKKworCXBpcGVfY2xpcC0+eTEgLT0gcGlw ZV9jbGlwLT55MSAlIHlfYWxpZ25tZW50OworCWlmIChwaXBlX2NsaXAtPnkyICUgeV9hbGlnbm1l bnQpCisJCXBpcGVfY2xpcC0+eTIgPSAoKHBpcGVfY2xpcC0+eTIgLyB5X2FsaWdubWVudCkgKyAx KSAqIHlfYWxpZ25tZW50OworfQorCiBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQogewpAQCAtMTU0MCwxMCArMTU4Nyw3IEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91 cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJaWYgKGZ1bGxfdXBkYXRl KQogCQlnb3RvIHNraXBfc2VsX2ZldGNoX3NldF9sb29wOwogCi0JLyogSXQgbXVzdCBiZSBhbGln bmVkIHRvIDQgbGluZXMgKi8KLQlwaXBlX2NsaXAueTEgLT0gcGlwZV9jbGlwLnkxICUgNDsKLQlp ZiAocGlwZV9jbGlwLnkyICUgNCkKLQkJcGlwZV9jbGlwLnkyID0gKChwaXBlX2NsaXAueTIgLyA0 KSArIDEpICogNDsKKwlpbnRlbF9wc3IyX3NlbF9mZXRjaF9waXBlX2FsaWdubWVudChjcnRjX3N0 YXRlLCAmcGlwZV9jbGlwKTsKIAogCS8qCiAJICogTm93IHRoYXQgd2UgaGF2ZSB0aGUgcGlwZSBk YW1hZ2VkIGFyZWEgY2hlY2sgaWYgaXQgaW50ZXJzZWN0IHdpdGgKLS0gCjIuMzIuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==