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 33916C4361B for ; Fri, 18 Dec 2020 18:46:51 +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 E27A523B08 for ; Fri, 18 Dec 2020 18:46:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E27A523B08 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 4A4CB89C68; Fri, 18 Dec 2020 18:46:50 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 164E789C68 for ; Fri, 18 Dec 2020 18:46:49 +0000 (UTC) IronPort-SDR: piePrXjkTt8Qc17GbUsXdu6Q+okHQGmb6ahrKzBNUS66rz+hJ201LrxXmMzgSRgcLiauKXp/ZF gTuhJBCtfFjQ== X-IronPort-AV: E=McAfee;i="6000,8403,9839"; a="172919175" X-IronPort-AV: E=Sophos;i="5.78,431,1599548400"; d="scan'208";a="172919175" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2020 10:46:48 -0800 IronPort-SDR: 3XzS76cqJKVEIqv1zmP2zIbz60LBcXLbJ8MrAvlXQqw8tESuXhiYoeg2Vz90rYG1l0n2X6Sv6Z br9p/riurlgQ== X-IronPort-AV: E=Sophos;i="5.78,431,1599548400"; d="scan'208";a="343429157" Received: from svasud1x-mobl3.amr.corp.intel.com (HELO josouza-mobl2.intel.com) ([10.254.182.238]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Dec 2020 10:46:46 -0800 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= To: intel-gfx@lists.freedesktop.org Date: Fri, 18 Dec 2020 10:46:58 -0800 Message-Id: <20201218184701.111857-2-jose.souza@intel.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201218184701.111857-1-jose.souza@intel.com> References: <20201218184701.111857-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v9 2/5] drm/i915/display/psr: Use plane damage clips to calculate damaged area 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" Tm93IHVzaW5nIHBsYW5lIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eSB0byBjYWxjdWFsdGUgdGhlIGRh bWFnZWQgYXJlYS4KU2VsZWN0aXZlIGZldGNoIG9ubHkgc3VwcG9ydHMgb25lIHJlZ2lvbiB0byBi ZSBmZXRjaGVkIHNvIHNvZnR3YXJlCm5lZWRzIHRvIGNhbGN1bGF0ZSBhIGJvdW5kaW5nIGJveCBh cm91bmQgYWxsIGRhbWFnZSBjbGlwcy4KCk5vdyB0aGF0IHdlIGFyZSBub3QgY29tcGxldGUgZmV0 Y2hpbmcgZWFjaCBwbGFuZSwgdGhlcmUgaXMgYW5vdGhlcgpsb29wIG5lZWRlZCBhcyBhbGwgdGhl IHBsYW5lIGFyZWFzIHRoYXQgaW50ZXJzZWN0IHdpdGggdGhlIHBpcGUKZGFtYWdlZCBhcmVhIG5l ZWRzIHRvIGJlIGZldGNoZWQgZnJvbSBtZW1vcnkgc28gdGhlIGNvbXBsZXRlIGJsZW5kaW5nCm9m IGFsbCBwbGFuZXMgY2FuIGhhcHBlbi4KCnYyOgotIGRvIG5vdCBzaGlmdGluZyBuZXdfcGxhbmVf c3RhdGUtPnVhcGkuZHN0IG9ubHkgc3JjIGlzIGluIDE2LjE2IGZvcm1hdAoKdjQ6Ci0gc2V0dGlu ZyBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYSB1c2luZyB0aGUgd2hvbGUgcGlwZSBkYW1hZ2Ug YXJlYQotIG1hcmsgdGhlIHdob2xlIHBsYW5lIGFyZWEgZGFtYWdlZCBpZiBwbGFuZSB2aXNpYmls aXR5IG9yIGFscGhhCmNoYW5nZWQKCnY1OgotIHRha2luZyBpbiBjb25zaWRlcmF0aW9uIHNyYy55 MSBpbiB0aGUgZGFtYWdlIGNvb3JkaW5hdGVzCi0gYWRkaW5nIHRvIHRoZSBwaXBlIGRhbWFnZWQg YXJlYSBwbGFuZXMgdGhhdCB3ZXJlIHZpc2libGUgYnV0IGFyZQppbnZpc2libGUgaW4gdGhlIG5l dyBzdGF0ZQoKdjY6Ci0gY29uc2lkZXIgb2xkIHN0YXRlIHBsYW5lIGNvb3JkaW5hdGVzIHdoZW4g dmlzaWJpbGl0eSBjaGFuZ2VzIG9yIGl0Cm1vdmVkIHRvIGNhbGN1bGF0ZSBkYW1hZ2VkIGFyZWEK LSByZW1vdmUgZnJvbSBkYW1hZ2VkIGFyZWEgdGhlIHBvcnRpb24gbm90IGluIHNyYyBjbGlwCgp2 NzoKLSBpbnRlcnNlYyBldmVyeSBkYW1hZ2UgY2xpcCB3aXRoIHNyYyB0byBtaW5pbWl6ZSBkYW1h Z2VkIGFyZWEKCnY4OgotIGFkanVzdCBwaXBlX2RhbWFnZWQgYXJlYSB0byA0IGxpbmVzIGdyb3Vw aW5nCi0gYWRqdXN0IGNhbGN1bGF0aW9uIG5vdyB0aGF0IGlzIHVuZGVyc3Rvb2QgdGhhdCB1YXBp LnNyYyBpcyB0aGUKZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgdGhhdCBwbGFuZSB3aWxsIHN0YXJ0 IHRvIGZldGNoIGZyb20KCnY5OgotIE9ubHkgYWRkIHBsYW5lIGRzdCBvciBzcmMgdG8gZGFtYWdl ZF9hcmVhIGlmIHZpc2libGUKLSBFYXJseSBza2lwIHBsYW5lIGRhbWFnZSBjYWxjdWxhdGlvbiBp ZiBpdCB3YXMgbm90IHZpc2libGUgaW4gb2xkIGFuZApuZXcgc3RhdGUKCkNjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogR3dhbi1neWVvbmcgTXVu IDxnd2FuLWd5ZW9uZy5tdW5AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRv IGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Bzci5jIHwgMTEzICsrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKaW5kZXggZDlhMzk1YzQ4NmQzLi5mNWI5NTE5 YjM3NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwpAQCAtMTI0 Miw5ICsxMjQyLDExIEBAIHN0YXRpYyB2b2lkIHBzcjJfbWFuX3Rya19jdGxfY2FsYyhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoY2xpcC0+eTEgPT0gLTEpCiAJCWdv dG8gZXhpdDsKIAorCWRybV9XQVJOX09OKGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2LCBjbGlw LT55MSAlIDQgfHwgY2xpcC0+eTIgJSA0KTsKKwogCXZhbCB8PSBQU1IyX01BTl9UUktfQ1RMX1NG X1BBUlRJQUxfRlJBTUVfVVBEQVRFOwogCXZhbCB8PSBQU1IyX01BTl9UUktfQ1RMX1NVX1JFR0lP Tl9TVEFSVF9BRERSKGNsaXAtPnkxIC8gNCArIDEpOwotCXZhbCB8PSBQU1IyX01BTl9UUktfQ1RM X1NVX1JFR0lPTl9FTkRfQUREUihESVZfUk9VTkRfVVAoY2xpcC0+eTIsIDQpICsgMSk7CisJdmFs IHw9IFBTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX0VORF9BRERSKGNsaXAtPnkyIC8gNCArIDEp OwogZXhpdDoKIAljcnRjX3N0YXRlLT5wc3IyX21hbl90cmFja19jdGwgPSB2YWw7CiB9CkBAIC0x MjY5LDggKzEyNzEsOCBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRlKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQog ewogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dl dF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJc3RydWN0IGRybV9yZWN0IHBpcGVfY2xp cCA9IHsgLngxID0gMCwgLnkxID0gLTEsIC54MiA9IElOVF9NQVgsIC55MiA9IC0xIH07CiAJc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUsICpvbGRfcGxhbmVfc3RhdGU7 Ci0Jc3RydWN0IGRybV9yZWN0IHBpcGVfY2xpcCA9IHsgLnkxID0gLTEgfTsKIAlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lOwogCWJvb2wgZnVsbF91cGRhdGUgPSBmYWxzZTsKIAlpbnQgaSwgcmV0 OwpAQCAtMTI4MiwxMyArMTI4NCwyNSBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0Y2hfdXBkYXRl KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CiAKKwkvKgorCSAqIENhbGN1bGF0ZSBtaW5pbWFsIHNlbGVjdGl2ZSBmZXRjaCBhcmVhIG9m IGVhY2ggcGxhbmUgYW5kIGNhbGN1bGF0ZQorCSAqIHRoZSBwaXBlIGRhbWFnZWQgYXJlYS4KKwkg KiBJbiB0aGUgbmV4dCBsb29wIHRoZSBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYSB3aWxsIGFj dHVhbGx5IGJlIHNldAorCSAqIHVzaW5nIHdob2xlIHBpcGUgZGFtYWdlZCBhcmVhLgorCSAqLwog CWZvcl9lYWNoX29sZG5ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9w bGFuZV9zdGF0ZSwKIAkJCQkJICAgICBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKLQkJc3RydWN0IGRy bV9yZWN0ICpzZWxfZmV0Y2hfYXJlYSwgdGVtcDsKKwkJc3RydWN0IGRybV9yZWN0IHNyYywgZGFt YWdlZF9hcmVhID0geyAueTEgPSAtMSB9OworCQlzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqZGFtYWdl ZF9jbGlwczsKKwkJdTMyIG51bV9jbGlwcywgajsKIAogCQlpZiAobmV3X3BsYW5lX3N0YXRlLT51 YXBpLmNydGMgIT0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKQogCQkJY29udGludWU7CiAKKwkJaWYg KCFuZXdfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSAmJgorCQkgICAgIW9sZF9wbGFuZV9zdGF0 ZS0+dWFwaS52aXNpYmxlKQorCQkJY29udGludWU7CisKIAkJLyoKIAkJICogVE9ETzogTm90IGNs ZWFyIGhvdyB0byBoYW5kbGUgcGxhbmVzIHdpdGggbmVnYXRpdmUgcG9zaXRpb24sCiAJCSAqIGFs c28gcGxhbmVzIGFyZSBub3QgdXBkYXRlZCBpZiB0aGV5IGhhdmUgYSBuZWdhdGl2ZSBYCkBAIC0x MzAwLDIzICsxMzE0LDk0IEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQlicmVhazsKIAkJfQogCi0JCWlmICghbmV3 X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUpCi0JCQljb250aW51ZTsKKwkJbnVtX2NsaXBzID0g ZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNfY291bnQoJm5ld19wbGFuZV9zdGF0ZS0+dWFwaSk7 CiAKIAkJLyoKLQkJICogRm9yIG5vdyBkb2luZyBhIHNlbGVjdGl2ZSBmZXRjaCBpbiB0aGUgd2hv bGUgcGxhbmUgYXJlYSwKLQkJICogb3B0aW1pemF0aW9ucyB3aWxsIGNvbWUgaW4gdGhlIGZ1dHVy ZS4KKwkJICogSWYgdmlzaWJpbGl0eSBvciBwbGFuZSBtb3ZlZCwgbWFyayB0aGUgd2hvbGUgcGxh bmUgYXJlYSBhcworCQkgKiBkYW1hZ2VkIGFzIGl0IG5lZWRzIHRvIGJlIGNvbXBsZXRlIHJlZHJh dyBpbiB0aGUgbmV3IGFuZCBvbGQKKwkJICogcG9zaXRpb24uCiAJCSAqLwotCQlzZWxfZmV0Y2hf YXJlYSA9ICZuZXdfcGxhbmVfc3RhdGUtPnBzcjJfc2VsX2ZldGNoX2FyZWE7Ci0JCXNlbF9mZXRj aF9hcmVhLT55MSA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5zcmMueTEgPj4gMTY7Ci0JCXNlbF9m ZXRjaF9hcmVhLT55MiA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5zcmMueTIgPj4gMTY7CisJCWlm IChuZXdfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSAhPSBvbGRfcGxhbmVfc3RhdGUtPnVhcGku dmlzaWJsZSB8fAorCQkgICAgIWRybV9yZWN0X2VxdWFscygmbmV3X3BsYW5lX3N0YXRlLT51YXBp LmRzdCwKKwkJCQkgICAgICZvbGRfcGxhbmVfc3RhdGUtPnVhcGkuZHN0KSkgeworCQkJaWYgKG9s ZF9wbGFuZV9zdGF0ZS0+dWFwaS52aXNpYmxlKSB7CisJCQkJZGFtYWdlZF9hcmVhLnkxID0gb2xk X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MTsKKwkJCQlkYW1hZ2VkX2FyZWEueTIgPSBvbGRfcGxh bmVfc3RhdGUtPnVhcGkuZHN0LnkyOworCQkJCWNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwg JmRhbWFnZWRfYXJlYSk7CisJCQl9CisKKwkJCWlmIChuZXdfcGxhbmVfc3RhdGUtPnVhcGkudmlz aWJsZSkgeworCQkJCWRhbWFnZWRfYXJlYS55MSA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3Qu eTE7CisJCQkJZGFtYWdlZF9hcmVhLnkyID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MjsK KwkJCQljbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAsICZkYW1hZ2VkX2FyZWEpOworCQkJfQor CQkJY29udGludWU7CisJCX0gZWxzZSBpZiAobmV3X3BsYW5lX3N0YXRlLT51YXBpLmFscGhhICE9 IG9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5hbHBoYSB8fAorCQkJICAgKCFudW1fY2xpcHMgJiYKKwkJ CSAgICBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZmIgIT0gb2xkX3BsYW5lX3N0YXRlLT51YXBpLmZi KSkgeworCQkJLyoKKwkJCSAqIElmIHRoZSBwbGFuZSBkb24ndCBoYXZlIGRhbWFnZWQgYXJlYXMg YnV0IHRoZQorCQkJICogZnJhbWVidWZmZXIgY2hhbmdlZCBvciBhbHBoYSBjaGFuZ2VkLCBtYXJr IHRoZSB3aG9sZQorCQkJICogcGxhbmUgYXJlYSBhcyBkYW1hZ2VkLgorCQkJICovCisJCQlkYW1h Z2VkX2FyZWEueTEgPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxOworCQkJZGFtYWdlZF9h cmVhLnkyID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MjsKKwkJCWNsaXBfYXJlYV91cGRh dGUoJnBpcGVfY2xpcCwgJmRhbWFnZWRfYXJlYSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWRy bV9yZWN0X2ZwX3RvX2ludCgmc3JjLCAmbmV3X3BsYW5lX3N0YXRlLT51YXBpLnNyYyk7CisJCWRh bWFnZWRfY2xpcHMgPSBkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwcygmbmV3X3BsYW5lX3N0YXRl LT51YXBpKTsKKworCQlmb3IgKGogPSAwOyBqIDwgbnVtX2NsaXBzOyBqKyspIHsKKwkJCXN0cnVj dCBkcm1fcmVjdCBjbGlwOworCisJCQljbGlwLngxID0gZGFtYWdlZF9jbGlwc1tqXS54MTsKKwkJ CWNsaXAueTEgPSBkYW1hZ2VkX2NsaXBzW2pdLnkxOworCQkJY2xpcC54MiA9IGRhbWFnZWRfY2xp cHNbal0ueDI7CisJCQljbGlwLnkyID0gZGFtYWdlZF9jbGlwc1tqXS55MjsKKwkJCWlmIChkcm1f cmVjdF9pbnRlcnNlY3QoJmNsaXAsICZzcmMpKQorCQkJCWNsaXBfYXJlYV91cGRhdGUoJmRhbWFn ZWRfYXJlYSwgJmNsaXApOworCQl9CiAKLQkJdGVtcCA9ICpzZWxfZmV0Y2hfYXJlYTsKLQkJdGVt cC55MSArPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxOwotCQl0ZW1wLnkyICs9IG5ld19w bGFuZV9zdGF0ZS0+dWFwaS5kc3QueTI7Ci0JCWNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwg JnRlbXApOworCQlpZiAoZGFtYWdlZF9hcmVhLnkxID09IC0xKQorCQkJY29udGludWU7CisKKwkJ ZGFtYWdlZF9hcmVhLnkxICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTEgLSBzcmMueTE7 CisJCWRhbWFnZWRfYXJlYS55MiArPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxIC0gc3Jj LnkxOworCQljbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAsICZkYW1hZ2VkX2FyZWEpOworCX0K KworCWlmIChmdWxsX3VwZGF0ZSkKKwkJZ290byBza2lwX3NlbF9mZXRjaF9zZXRfbG9vcDsKKwor CS8qIEl0IG11c3QgYmUgYWxpZ25lZCB0byA0IGxpbmVzICovCisJcGlwZV9jbGlwLnkxIC09IHBp cGVfY2xpcC55MSAlIDQ7CisJaWYgKHBpcGVfY2xpcC55MiAlIDQpCisJCXBpcGVfY2xpcC55MiA9 ICgocGlwZV9jbGlwLnkyIC8gNCkgKyAxKSAqIDQ7CisKKwkvKgorCSAqIE5vdyB0aGF0IHdlIGhh dmUgdGhlIHBpcGUgZGFtYWdlZCBhcmVhIGNoZWNrIGlmIGl0IGludGVyc2VjdCB3aXRoCisJICog ZXZlcnkgcGxhbmUsIGlmIGl0IGRvZXMgc2V0IHRoZSBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJl YS4KKwkgKi8KKwlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBs YW5lLCBvbGRfcGxhbmVfc3RhdGUsCisJCQkJCSAgICAgbmV3X3BsYW5lX3N0YXRlLCBpKSB7CisJ CXN0cnVjdCBkcm1fcmVjdCAqc2VsX2ZldGNoX2FyZWEsIGludGVyOworCisJCWlmIChuZXdfcGxh bmVfc3RhdGUtPnVhcGkuY3J0YyAhPSBjcnRjX3N0YXRlLT51YXBpLmNydGMgfHwKKwkJICAgICFu ZXdfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSkKKwkJCWNvbnRpbnVlOworCisJCWludGVyID0g cGlwZV9jbGlwOworCQlpZiAoIWRybV9yZWN0X2ludGVyc2VjdCgmaW50ZXIsICZuZXdfcGxhbmVf c3RhdGUtPnVhcGkuZHN0KSkKKwkJCWNvbnRpbnVlOworCisJCXNlbF9mZXRjaF9hcmVhID0gJm5l d19wbGFuZV9zdGF0ZS0+cHNyMl9zZWxfZmV0Y2hfYXJlYTsKKwkJc2VsX2ZldGNoX2FyZWEtPnkx ID0gaW50ZXIueTEgLSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkxOworCQlzZWxfZmV0Y2hf YXJlYS0+eTIgPSBpbnRlci55MiAtIG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTE7CiAJfQog Citza2lwX3NlbF9mZXRjaF9zZXRfbG9vcDoKIAlwc3IyX21hbl90cmtfY3RsX2NhbGMoY3J0Y19z dGF0ZSwgJnBpcGVfY2xpcCwgZnVsbF91cGRhdGUpOwogCXJldHVybiAwOwogfQotLSAKMi4yOS4y CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK