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=-13.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 BA364C43461 for ; Fri, 4 Sep 2020 11:54:52 +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 8D9B0214F1 for ; Fri, 4 Sep 2020 11:54:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8D9B0214F1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 86CDD6EB6E; Fri, 4 Sep 2020 11:54:51 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 231A66EB6E; Fri, 4 Sep 2020 11:54:50 +0000 (UTC) IronPort-SDR: 3vccVTwIYmKE5L/NzQpfXXxx7tw/jHs1Oh9em2OODIP5x8nf/TlpX7ZdxYeOJNnqWeirE5ZLzs tRFezNBXnryw== X-IronPort-AV: E=McAfee;i="6000,8403,9733"; a="137780887" X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="137780887" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 04:54:49 -0700 IronPort-SDR: tW3/0jpcXZELxQMkClOOcawav8ru3ik1znt25zEoqUWk3L91fzLBl5Zp+HaeS2b+prc9xydHxn SuZa2igIQN0Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="332129650" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga008.jf.intel.com with SMTP; 04 Sep 2020 04:54:46 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 04 Sep 2020 14:54:46 +0300 From: Ville Syrjala To: dri-devel@lists.freedesktop.org Subject: [PATCH v2 16/18] drm/i915: DP->HDMI TMDS clock limits vs. deep color Date: Fri, 4 Sep 2020 14:53:52 +0300 Message-Id: <20200904115354.25336-17-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200904115354.25336-1-ville.syrjala@linux.intel.com> References: <20200904115354.25336-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFj Y291bnQgZm9yIHRoZSBUTURTIGNsb2NrIGxpbWl0cyBkZWNsYXJlZCBieSB0aGUgREZQL0RQKysg ZG9uZ2xlCndoZW4gZGV0ZXJtaW5pbmcgd2hhdCBjb2xvciBkZXB0aCB3ZSdyZSBnb2luZyB0byB1 c2UuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAg IHwgNjMgKysrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaGRtaS5jIHwgNTAgKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuaCB8ICAyICsKIDMgZmlsZXMgY2hhbmdlZCwgODggaW5z ZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcC5jCmluZGV4IDI3OTg2MjFhNDY2YS4uYzdhYTY2ZDJlYjkwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCkBAIC0xOTc3LDE4ICsxOTc3LDY5IEBAIHN0YXRp YyBib29sIGludGVsX2RwX3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAog CQlkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKTsKIH0KIAotc3Rh dGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAot CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKK3N0YXRpYyBib29sIGlu dGVsX2RwX2hkbWlfeWNiY3I0MjAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlyZXR1cm4gY3J0 Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwOwor fQorCitzdGF0aWMgaW50IGludGVsX2RwX2hkbWlfdG1kc19jbG9jayhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwgaW50IGJwYykKK3sKKwlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2sgKiBicGMgLyA4OworCisJaWYgKGludGVsX2RwX2hkbWlfeWNiY3I0MjAo aW50ZWxfZHAsIGNydGNfc3RhdGUpKQorCQljbG9jayAvPSAyOworCisJcmV0dXJuIGNsb2NrOwor fQorCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9oZG1pX3RtZHNfY2xvY2tfdmFsaWQoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKKwkJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsIGludCBicGMpCit7CisJaW50IHRtZHNfY2xvY2sgPSBpbnRlbF9kcF9oZG1p X3RtZHNfY2xvY2soaW50ZWxfZHAsIGNydGNfc3RhdGUsIGJwYyk7CisKKwlpZiAoaW50ZWxfZHAt PmRmcC5taW5fdG1kc19jbG9jayAmJgorCSAgICB0bWRzX2Nsb2NrIDwgaW50ZWxfZHAtPmRmcC5t aW5fdG1kc19jbG9jaykKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGludGVsX2RwLT5kZnAubWF4 X3RtZHNfY2xvY2sgJiYKKwkgICAgdG1kc19jbG9jayA+IGludGVsX2RwLT5kZnAubWF4X3RtZHNf Y2xvY2spCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9v bCBpbnRlbF9kcF9oZG1pX2RlZXBfY29sb3JfcG9zc2libGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKKwkJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCisJCQkJCSAgICAgIGludCBicGMpCit7CisJYm9vbCBoYXNfaGRtaV9zaW5rID0gaW50ZWxf ZHAtPmhhc19oZG1pX3Npbms7CisKKwlyZXR1cm4gaW50ZWxfaGRtaV9kZWVwX2NvbG9yX3Bvc3Np YmxlKGNydGNfc3RhdGUsIGJwYywgaGFzX2hkbWlfc2luaykgJiYKKwkJaW50ZWxfZHBfaGRtaV90 bWRzX2Nsb2NrX3ZhbGlkKGludGVsX2RwLCBjcnRjX3N0YXRlLCBicGMpOworfQorCitzdGF0aWMg aW50IGludGVsX2RwX21heF9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKIAlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yOwotCWludCBicHA7CisJaW50IGJwcCwgYnBjOwogCi0JYnBwID0gcGlwZV9jb25maWct PnBpcGVfYnBwOworCWJwYyA9IGNydGNfc3RhdGUtPnBpcGVfYnBwIC8gMzsKIAogCWlmIChpbnRl bF9kcC0+ZGZwLm1heF9icGMpCi0JCWJwcCA9IG1pbihicHAsIDMgKiBpbnRlbF9kcC0+ZGZwLm1h eF9icGMpOworCQlicGMgPSBtaW5fdChpbnQsIGJwYywgaW50ZWxfZHAtPmRmcC5tYXhfYnBjKTsK IAorCWlmIChpbnRlbF9kcC0+ZGZwLm1pbl90bWRzX2Nsb2NrKSB7CisJCWZvciAoOyBicGMgPj0g MTA7IGJwYyAtPSAyKSB7CisJCQlpZiAoaW50ZWxfZHBfaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxl KGludGVsX2RwLCBjcnRjX3N0YXRlLCBicGMpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJYnBw ID0gYnBjICogMzsKIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewogCQkvKiBHZXQg YnBwIGZyb20gdmJ0IG9ubHkgZm9yIHBhbmVscyB0aGF0IGRvbnQgaGF2ZSBicHAgaW4gZWRpZCAq LwogCQlpZiAoaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRpc3BsYXlfaW5mby5icGMgPT0gMCAmJgpA QCAtMjMxMCw3ICsyMzYxLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlsaW1pdHMubWF4X2xhbmVfY291bnQgPSBpbnRlbF9k cF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7CiAKIAlsaW1pdHMubWluX2JwcCA9IGludGVsX2Rw X21pbl9icHAocGlwZV9jb25maWcpOwotCWxpbWl0cy5tYXhfYnBwID0gaW50ZWxfZHBfY29tcHV0 ZV9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKKwlsaW1pdHMubWF4X2JwcCA9IGludGVsX2Rw X21heF9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKIAogCWlmIChpbnRlbF9kcF9pc19lZHAo aW50ZWxfZHApKSB7CiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRt aS5jCmluZGV4IDliZjY2NGJmZDdkZS4uOTI5YWUyMmIwYTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwpAQCAtMjI3NywzNSArMjI3NywxOCBAQCBpbnRlbF9o ZG1pX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlyZXR1cm4g aW50ZWxfbW9kZV92YWxpZF9tYXhfcGxhbmVfc2l6ZShkZXZfcHJpdiwgbW9kZSk7CiB9CiAKLXN0 YXRpYyBib29sIGhkbWlfZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCQkgICAgIGludCBicGMpCitib29sIGludGVsX2hkbWlf ZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKKwkJCQkgICAgaW50IGJwYywgYm9vbCBoYXNfaGRtaV9zaW5rKQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjLT5kZXYpOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUt PnVhcGkuc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0 ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVk X21vZGU7CiAJaW50IGk7CiAKLQlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQotCQlyZXR1cm4gZmFs c2U7Ci0KLQlpZiAoYnBjID09IDEwICYmIElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKLQkJcmV0 dXJuIGZhbHNlOwotCiAJaWYgKGNydGNfc3RhdGUtPnBpcGVfYnBwIDwgYnBjICogMykKIAkJcmV0 dXJuIGZhbHNlOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5oYXNfaGRtaV9zaW5rKQotCQlyZXR1cm4g ZmFsc2U7Ci0KLQkvKgotCSAqIEhETUkgZGVlcCBjb2xvciBhZmZlY3RzIHRoZSBjbG9ja3MsIHNv IGl0J3Mgb25seSBwb3NzaWJsZQotCSAqIHdoZW4gbm90IGNsb25pbmcgd2l0aCBvdGhlciBlbmNv ZGVyIHR5cGVzLgotCSAqLwotCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfdHlwZXMgIT0gMSA8PCBJ TlRFTF9PVVRQVVRfSERNSSkKKwlpZiAoIWhhc19oZG1pX3NpbmspCiAJCXJldHVybiBmYWxzZTsK IAogCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29u bmVjdG9yX3N0YXRlLCBpKSB7CkBAIC0yMzMzLDYgKzIzMTYsMzAgQEAgc3RhdGljIGJvb2wgaGRt aV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCQl9CiAJfQogCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGhkbWlf ZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKKwkJCQkgICAgIGludCBicGMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0KKwkJdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQorCQkmY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZTsKKworCWlmIChIQVNfR01DSChkZXZfcHJpdikpCisJCXJldHVybiBm YWxzZTsKKworCWlmIChicGMgPT0gMTAgJiYgSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQorCQly ZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIEhETUkgZGVlcCBjb2xvciBhZmZlY3RzIHRoZSBjbG9j a3MsIHNvIGl0J3Mgb25seSBwb3NzaWJsZQorCSAqIHdoZW4gbm90IGNsb25pbmcgd2l0aCBvdGhl ciBlbmNvZGVyIHR5cGVzLgorCSAqLworCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfdHlwZXMgIT0g QklUKElOVEVMX09VVFBVVF9IRE1JKSkKKwkJcmV0dXJuIGZhbHNlOworCiAJLyogRGlzcGxheSBX YV8xNDA1NTEwMDU3OmljbCxlaGwgKi8KIAlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9 PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwICYmCiAJICAgIGJwYyA9PSAxMCAmJiBJU19H RU4oZGV2X3ByaXYsIDExKSAmJgpAQCAtMjM0MCw3ICsyMzQ3LDggQEAgc3RhdGljIGJvb2wgaGRt aV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCSAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oYmxhbmtfc3RhcnQpICUgOCA9PSAy KQogCQlyZXR1cm4gZmFsc2U7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gaW50ZWxfaGRtaV9k ZWVwX2NvbG9yX3Bvc3NpYmxlKGNydGNfc3RhdGUsIGJwYywKKwkJCQkJICAgICAgY3J0Y19zdGF0 ZS0+aGFzX2hkbWlfc2luayk7CiB9CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9oZG1pLmgKaW5kZXggNWIzNDhkY2FiNzdhLi5jMzgyOTMwYTk5MmUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5oCkBAIC00OCw1ICs0OCw3 IEBAIHZvaWQgaW50ZWxfcmVhZF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJCQkgIHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFtZSk7CiBib29sIGludGVsX2hkbWlf bGltaXRlZF9jb2xvcl9yYW5nZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpOworYm9vbCBpbnRlbF9oZG1pX2RlZXBfY29sb3JfcG9zc2libGUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJICAgIGludCBicGMsIGJvb2wgaGFzX2hk bWlfc2luayk7CiAKICNlbmRpZiAvKiBfX0lOVEVMX0hETUlfSF9fICovCi0tIAoyLjI2LjIKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= 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=-13.0 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 3689DC28E83 for ; Fri, 4 Sep 2020 11:54:53 +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 09D0B214F1 for ; Fri, 4 Sep 2020 11:54:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 09D0B214F1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 162726EB72; Fri, 4 Sep 2020 11:54:52 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 231A66EB6E; Fri, 4 Sep 2020 11:54:50 +0000 (UTC) IronPort-SDR: 3vccVTwIYmKE5L/NzQpfXXxx7tw/jHs1Oh9em2OODIP5x8nf/TlpX7ZdxYeOJNnqWeirE5ZLzs tRFezNBXnryw== X-IronPort-AV: E=McAfee;i="6000,8403,9733"; a="137780887" X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="137780887" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 04:54:49 -0700 IronPort-SDR: tW3/0jpcXZELxQMkClOOcawav8ru3ik1znt25zEoqUWk3L91fzLBl5Zp+HaeS2b+prc9xydHxn SuZa2igIQN0Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,389,1592895600"; d="scan'208";a="332129650" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga008.jf.intel.com with SMTP; 04 Sep 2020 04:54:46 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 04 Sep 2020 14:54:46 +0300 From: Ville Syrjala To: dri-devel@lists.freedesktop.org Date: Fri, 4 Sep 2020 14:53:52 +0300 Message-Id: <20200904115354.25336-17-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200904115354.25336-1-ville.syrjala@linux.intel.com> References: <20200904115354.25336-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 16/18] drm/i915: DP->HDMI TMDS clock limits vs. deep color 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: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkFj Y291bnQgZm9yIHRoZSBUTURTIGNsb2NrIGxpbWl0cyBkZWNsYXJlZCBieSB0aGUgREZQL0RQKysg ZG9uZ2xlCndoZW4gZGV0ZXJtaW5pbmcgd2hhdCBjb2xvciBkZXB0aCB3ZSdyZSBnb2luZyB0byB1 c2UuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAg IHwgNjMgKysrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaGRtaS5jIHwgNTAgKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuaCB8ICAyICsKIDMgZmlsZXMgY2hhbmdlZCwgODggaW5z ZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcC5jCmluZGV4IDI3OTg2MjFhNDY2YS4uYzdhYTY2ZDJlYjkwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCkBAIC0xOTc3LDE4ICsxOTc3LDY5IEBAIHN0YXRp YyBib29sIGludGVsX2RwX3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAog CQlkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKTsKIH0KIAotc3Rh dGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAot CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKK3N0YXRpYyBib29sIGlu dGVsX2RwX2hkbWlfeWNiY3I0MjAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCQkgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlyZXR1cm4gY3J0 Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwOwor fQorCitzdGF0aWMgaW50IGludGVsX2RwX2hkbWlfdG1kc19jbG9jayhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwgaW50IGJwYykKK3sKKwlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2sgKiBicGMgLyA4OworCisJaWYgKGludGVsX2RwX2hkbWlfeWNiY3I0MjAo aW50ZWxfZHAsIGNydGNfc3RhdGUpKQorCQljbG9jayAvPSAyOworCisJcmV0dXJuIGNsb2NrOwor fQorCitzdGF0aWMgYm9vbCBpbnRlbF9kcF9oZG1pX3RtZHNfY2xvY2tfdmFsaWQoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKKwkJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsIGludCBicGMpCit7CisJaW50IHRtZHNfY2xvY2sgPSBpbnRlbF9kcF9oZG1p X3RtZHNfY2xvY2soaW50ZWxfZHAsIGNydGNfc3RhdGUsIGJwYyk7CisKKwlpZiAoaW50ZWxfZHAt PmRmcC5taW5fdG1kc19jbG9jayAmJgorCSAgICB0bWRzX2Nsb2NrIDwgaW50ZWxfZHAtPmRmcC5t aW5fdG1kc19jbG9jaykKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGludGVsX2RwLT5kZnAubWF4 X3RtZHNfY2xvY2sgJiYKKwkgICAgdG1kc19jbG9jayA+IGludGVsX2RwLT5kZnAubWF4X3RtZHNf Y2xvY2spCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9v bCBpbnRlbF9kcF9oZG1pX2RlZXBfY29sb3JfcG9zc2libGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKKwkJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCisJCQkJCSAgICAgIGludCBicGMpCit7CisJYm9vbCBoYXNfaGRtaV9zaW5rID0gaW50ZWxf ZHAtPmhhc19oZG1pX3Npbms7CisKKwlyZXR1cm4gaW50ZWxfaGRtaV9kZWVwX2NvbG9yX3Bvc3Np YmxlKGNydGNfc3RhdGUsIGJwYywgaGFzX2hkbWlfc2luaykgJiYKKwkJaW50ZWxfZHBfaGRtaV90 bWRzX2Nsb2NrX3ZhbGlkKGludGVsX2RwLCBjcnRjX3N0YXRlLCBicGMpOworfQorCitzdGF0aWMg aW50IGludGVsX2RwX21heF9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKKwkJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKIAlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yOwotCWludCBicHA7CisJaW50IGJwcCwgYnBjOwogCi0JYnBwID0gcGlwZV9jb25maWct PnBpcGVfYnBwOworCWJwYyA9IGNydGNfc3RhdGUtPnBpcGVfYnBwIC8gMzsKIAogCWlmIChpbnRl bF9kcC0+ZGZwLm1heF9icGMpCi0JCWJwcCA9IG1pbihicHAsIDMgKiBpbnRlbF9kcC0+ZGZwLm1h eF9icGMpOworCQlicGMgPSBtaW5fdChpbnQsIGJwYywgaW50ZWxfZHAtPmRmcC5tYXhfYnBjKTsK IAorCWlmIChpbnRlbF9kcC0+ZGZwLm1pbl90bWRzX2Nsb2NrKSB7CisJCWZvciAoOyBicGMgPj0g MTA7IGJwYyAtPSAyKSB7CisJCQlpZiAoaW50ZWxfZHBfaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxl KGludGVsX2RwLCBjcnRjX3N0YXRlLCBicGMpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJYnBw ID0gYnBjICogMzsKIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewogCQkvKiBHZXQg YnBwIGZyb20gdmJ0IG9ubHkgZm9yIHBhbmVscyB0aGF0IGRvbnQgaGF2ZSBicHAgaW4gZWRpZCAq LwogCQlpZiAoaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRpc3BsYXlfaW5mby5icGMgPT0gMCAmJgpA QCAtMjMxMCw3ICsyMzYxLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlsaW1pdHMubWF4X2xhbmVfY291bnQgPSBpbnRlbF9k cF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7CiAKIAlsaW1pdHMubWluX2JwcCA9IGludGVsX2Rw X21pbl9icHAocGlwZV9jb25maWcpOwotCWxpbWl0cy5tYXhfYnBwID0gaW50ZWxfZHBfY29tcHV0 ZV9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKKwlsaW1pdHMubWF4X2JwcCA9IGludGVsX2Rw X21heF9icHAoaW50ZWxfZHAsIHBpcGVfY29uZmlnKTsKIAogCWlmIChpbnRlbF9kcF9pc19lZHAo aW50ZWxfZHApKSB7CiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRt aS5jCmluZGV4IDliZjY2NGJmZDdkZS4uOTI5YWUyMmIwYTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwpAQCAtMjI3NywzNSArMjI3NywxOCBAQCBpbnRlbF9o ZG1pX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlyZXR1cm4g aW50ZWxfbW9kZV92YWxpZF9tYXhfcGxhbmVfc2l6ZShkZXZfcHJpdiwgbW9kZSk7CiB9CiAKLXN0 YXRpYyBib29sIGhkbWlfZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJCQkgICAgIGludCBicGMpCitib29sIGludGVsX2hkbWlf ZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKKwkJCQkgICAgaW50IGJwYywgYm9vbCBoYXNfaGRtaV9zaW5rKQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjLT5kZXYpOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUt PnVhcGkuc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0 ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVk X21vZGU7CiAJaW50IGk7CiAKLQlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQotCQlyZXR1cm4gZmFs c2U7Ci0KLQlpZiAoYnBjID09IDEwICYmIElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKLQkJcmV0 dXJuIGZhbHNlOwotCiAJaWYgKGNydGNfc3RhdGUtPnBpcGVfYnBwIDwgYnBjICogMykKIAkJcmV0 dXJuIGZhbHNlOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5oYXNfaGRtaV9zaW5rKQotCQlyZXR1cm4g ZmFsc2U7Ci0KLQkvKgotCSAqIEhETUkgZGVlcCBjb2xvciBhZmZlY3RzIHRoZSBjbG9ja3MsIHNv IGl0J3Mgb25seSBwb3NzaWJsZQotCSAqIHdoZW4gbm90IGNsb25pbmcgd2l0aCBvdGhlciBlbmNv ZGVyIHR5cGVzLgotCSAqLwotCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfdHlwZXMgIT0gMSA8PCBJ TlRFTF9PVVRQVVRfSERNSSkKKwlpZiAoIWhhc19oZG1pX3NpbmspCiAJCXJldHVybiBmYWxzZTsK IAogCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29u bmVjdG9yX3N0YXRlLCBpKSB7CkBAIC0yMzMzLDYgKzIzMTYsMzAgQEAgc3RhdGljIGJvb2wgaGRt aV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCQl9CiAJfQogCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGhkbWlf ZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKKwkJCQkgICAgIGludCBicGMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0KKwkJdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQorCQkmY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZTsKKworCWlmIChIQVNfR01DSChkZXZfcHJpdikpCisJCXJldHVybiBm YWxzZTsKKworCWlmIChicGMgPT0gMTAgJiYgSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQorCQly ZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIEhETUkgZGVlcCBjb2xvciBhZmZlY3RzIHRoZSBjbG9j a3MsIHNvIGl0J3Mgb25seSBwb3NzaWJsZQorCSAqIHdoZW4gbm90IGNsb25pbmcgd2l0aCBvdGhl ciBlbmNvZGVyIHR5cGVzLgorCSAqLworCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfdHlwZXMgIT0g QklUKElOVEVMX09VVFBVVF9IRE1JKSkKKwkJcmV0dXJuIGZhbHNlOworCiAJLyogRGlzcGxheSBX YV8xNDA1NTEwMDU3OmljbCxlaGwgKi8KIAlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9 PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwICYmCiAJICAgIGJwYyA9PSAxMCAmJiBJU19H RU4oZGV2X3ByaXYsIDExKSAmJgpAQCAtMjM0MCw3ICsyMzQ3LDggQEAgc3RhdGljIGJvb2wgaGRt aV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCSAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oYmxhbmtfc3RhcnQpICUgOCA9PSAy KQogCQlyZXR1cm4gZmFsc2U7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gaW50ZWxfaGRtaV9k ZWVwX2NvbG9yX3Bvc3NpYmxlKGNydGNfc3RhdGUsIGJwYywKKwkJCQkJICAgICAgY3J0Y19zdGF0 ZS0+aGFzX2hkbWlfc2luayk7CiB9CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9oZG1pLmgKaW5kZXggNWIzNDhkY2FiNzdhLi5jMzgyOTMwYTk5MmUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5oCkBAIC00OCw1ICs0OCw3 IEBAIHZvaWQgaW50ZWxfcmVhZF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJCQkgIHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFtZSk7CiBib29sIGludGVsX2hkbWlf bGltaXRlZF9jb2xvcl9yYW5nZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpOworYm9vbCBpbnRlbF9oZG1pX2RlZXBfY29sb3JfcG9zc2libGUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkJICAgIGludCBicGMsIGJvb2wgaGFzX2hk bWlfc2luayk7CiAKICNlbmRpZiAvKiBfX0lOVEVMX0hETUlfSF9fICovCi0tIAoyLjI2LjIKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=