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.7 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 9DC66C433E0 for ; Fri, 5 Feb 2021 14:49:30 +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 4446564FFF for ; Fri, 5 Feb 2021 14:49:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4446564FFF 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 C77A06F45F; Fri, 5 Feb 2021 14:49:29 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2D6066F45D for ; Fri, 5 Feb 2021 14:49:28 +0000 (UTC) IronPort-SDR: J8V+oh82t0wsEclfdDMwjSkC5uTEYhlzdbqU9kZUTu7cxETXhMcOW5FJbBeOaeUFIzb9Dr1ICI T718dygYGeCA== X-IronPort-AV: E=McAfee;i="6000,8403,9885"; a="242943200" X-IronPort-AV: E=Sophos;i="5.81,155,1610438400"; d="scan'208";a="242943200" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2021 06:49:27 -0800 IronPort-SDR: o6dJOPbWuX93LYgQaAJwo4lIyX9Yv2lPzh6qgeFO0OlSP24yZxQWM1QFBYZIubgeCpY7MJdpBR ZWZHZqCpS+hA== X-IronPort-AV: E=Sophos;i="5.81,155,1610438400"; d="scan'208";a="416217658" Received: from fuhrberg-mobl1.ger.corp.intel.com (HELO localhost) ([10.252.33.102]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2021 06:49:24 -0800 From: Jani Nikula To: intel-gfx@lists.freedesktop.org Date: Fri, 5 Feb 2021 16:48:41 +0200 Message-Id: X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v12 6/8] drm/i915: migrate i9xx plane get config 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: jani.nikula@intel.com, Dave Airlie Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KCk1pZ3JhdGUgdGhpcyBjb2Rl IG91dCBsaWtlIHRoZSBza3lsYWtlIGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEFpcmxpZSA8 YWlybGllZEByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFuaSBOaWt1bGEgPGphbmku bmlrdWxhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhf cGxhbmUuYyAgICB8IDExOSArKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2k5eHhfcGxhbmUuaCAgICB8ICAgNCArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYyB8IDExOSAtLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVz IGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pOXh4X3BsYW5lLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuYwppbmRleCBkMTE2ZGVlMjAxYWEuLjA1MjNl MmM3OWQxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pOXh4X3Bs YW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pOXh4X3BsYW5lLmMKQEAg LTg5MywzICs4OTMsMTIyIEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJcmV0dXJuIEVSUl9QVFIo cmV0KTsKIH0KIAorc3RhdGljIGludCBpOXh4X2Zvcm1hdF90b19mb3VyY2MoaW50IGZvcm1hdCkK K3sKKwlzd2l0Y2ggKGZvcm1hdCkgeworCWNhc2UgRElTUFBMQU5FXzhCUFA6CisJCXJldHVybiBE Uk1fRk9STUFUX0M4OworCWNhc2UgRElTUFBMQU5FX0JHUkE1NTU6CisJCXJldHVybiBEUk1fRk9S TUFUX0FSR0IxNTU1OworCWNhc2UgRElTUFBMQU5FX0JHUlg1NTU6CisJCXJldHVybiBEUk1fRk9S TUFUX1hSR0IxNTU1OworCWNhc2UgRElTUFBMQU5FX0JHUlg1NjU6CisJCXJldHVybiBEUk1fRk9S TUFUX1JHQjU2NTsKKwlkZWZhdWx0OgorCWNhc2UgRElTUFBMQU5FX0JHUlg4ODg6CisJCXJldHVy biBEUk1fRk9STUFUX1hSR0I4ODg4OworCWNhc2UgRElTUFBMQU5FX1JHQlg4ODg6CisJCXJldHVy biBEUk1fRk9STUFUX1hCR1I4ODg4OworCWNhc2UgRElTUFBMQU5FX0JHUkE4ODg6CisJCXJldHVy biBEUk1fRk9STUFUX0FSR0I4ODg4OworCWNhc2UgRElTUFBMQU5FX1JHQkE4ODg6CisJCXJldHVy biBEUk1fRk9STUFUX0FCR1I4ODg4OworCWNhc2UgRElTUFBMQU5FX0JHUlgxMDEwMTA6CisJCXJl dHVybiBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOworCWNhc2UgRElTUFBMQU5FX1JHQlgxMDEwMTA6 CisJCXJldHVybiBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOworCWNhc2UgRElTUFBMQU5FX0JHUkEx MDEwMTA6CisJCXJldHVybiBEUk1fRk9STUFUX0FSR0IyMTAxMDEwOworCWNhc2UgRElTUFBMQU5F X1JHQkExMDEwMTA6CisJCXJldHVybiBEUk1fRk9STUFUX0FCR1IyMTAxMDEwOworCWNhc2UgRElT UFBMQU5FX1JHQlgxNjE2MTY6CisJCXJldHVybiBEUk1fRk9STUFUX1hCR1IxNjE2MTYxNkY7CisJ fQorfQorCit2b2lkCitpOXh4X2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyAq cGxhbmVfY29uZmlnKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRl djsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJ c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJp bWFyeSk7CisJZW51bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmUgPSBwbGFuZS0+aTl4eF9wbGFu ZTsKKwllbnVtIHBpcGUgcGlwZTsKKwl1MzIgdmFsLCBiYXNlLCBvZmZzZXQ7CisJaW50IGZvdXJj YywgcGl4ZWxfZm9ybWF0OworCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodDsKKwlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYjsKKwlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2Zi OworCisJaWYgKCFwbGFuZS0+Z2V0X2h3X3N0YXRlKHBsYW5lLCAmcGlwZSkpCisJCXJldHVybjsK KworCWRybV9XQVJOX09OKGRldiwgcGlwZSAhPSBjcnRjLT5waXBlKTsKKworCWludGVsX2ZiID0g a3phbGxvYyhzaXplb2YoKmludGVsX2ZiKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFpbnRlbF9mYikg eworCQlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwgImZhaWxlZCB0byBhbGxvYyBmYlxuIik7 CisJCXJldHVybjsKKwl9CisKKwlmYiA9ICZpbnRlbF9mYi0+YmFzZTsKKworCWZiLT5kZXYgPSBk ZXY7CisKKwl2YWwgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBEU1BDTlRSKGk5eHhfcGxhbmUp KTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKKwkJaWYgKHZhbCAmIERJU1BQ TEFORV9USUxFRCkgeworCQkJcGxhbmVfY29uZmlnLT50aWxpbmcgPSBJOTE1X1RJTElOR19YOwor CQkJZmItPm1vZGlmaWVyID0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQ7CisJCX0KKworCQlpZiAo dmFsICYgRElTUFBMQU5FX1JPVEFURV8xODApCisJCQlwbGFuZV9jb25maWctPnJvdGF0aW9uID0g RFJNX01PREVfUk9UQVRFXzE4MDsKKwl9CisKKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikg JiYgcGlwZSA9PSBQSVBFX0IgJiYKKwkgICAgdmFsICYgRElTUFBMQU5FX01JUlJPUikKKwkJcGxh bmVfY29uZmlnLT5yb3RhdGlvbiB8PSBEUk1fTU9ERV9SRUZMRUNUX1g7CisKKwlwaXhlbF9mb3Jt YXQgPSB2YWwgJiBESVNQUExBTkVfUElYRk9STUFUX01BU0s7CisJZm91cmNjID0gaTl4eF9mb3Jt YXRfdG9fZm91cmNjKHBpeGVsX2Zvcm1hdCk7CisJZmItPmZvcm1hdCA9IGRybV9mb3JtYXRfaW5m byhmb3VyY2MpOworCisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChk ZXZfcHJpdikpIHsKKwkJb2Zmc2V0ID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgRFNQT0ZGU0VU KGk5eHhfcGxhbmUpKTsKKwkJYmFzZSA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERTUFNVUkYo aTl4eF9wbGFuZSkpICYgMHhmZmZmZjAwMDsKKwl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gNCkgeworCQlpZiAocGxhbmVfY29uZmlnLT50aWxpbmcpCisJCQlvZmZzZXQgPSBpbnRl bF9kZV9yZWFkKGRldl9wcml2LAorCQkJCQkgICAgICAgRFNQVElMRU9GRihpOXh4X3BsYW5lKSk7 CisJCWVsc2UKKwkJCW9mZnNldCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsCisJCQkJCSAgICAg ICBEU1BMSU5PRkYoaTl4eF9wbGFuZSkpOworCQliYXNlID0gaW50ZWxfZGVfcmVhZChkZXZfcHJp diwgRFNQU1VSRihpOXh4X3BsYW5lKSkgJiAweGZmZmZmMDAwOworCX0gZWxzZSB7CisJCWJhc2Ug PSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBEU1BBRERSKGk5eHhfcGxhbmUpKTsKKwl9CisJcGxh bmVfY29uZmlnLT5iYXNlID0gYmFzZTsKKworCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYs IFBJUEVTUkMocGlwZSkpOworCWZiLT53aWR0aCA9ICgodmFsID4+IDE2KSAmIDB4ZmZmKSArIDE7 CisJZmItPmhlaWdodCA9ICgodmFsID4+IDApICYgMHhmZmYpICsgMTsKKworCXZhbCA9IGludGVs X2RlX3JlYWQoZGV2X3ByaXYsIERTUFNUUklERShpOXh4X3BsYW5lKSk7CisJZmItPnBpdGNoZXNb MF0gPSB2YWwgJiAweGZmZmZmZmMwOworCisJYWxpZ25lZF9oZWlnaHQgPSBpbnRlbF9mYl9hbGln bl9oZWlnaHQoZmIsIDAsIGZiLT5oZWlnaHQpOworCisJcGxhbmVfY29uZmlnLT5zaXplID0gZmIt PnBpdGNoZXNbMF0gKiBhbGlnbmVkX2hlaWdodDsKKworCWRybV9kYmdfa21zKCZkZXZfcHJpdi0+ ZHJtLAorCQkgICAgIiVzLyVzIHdpdGggZmI6IHNpemU9JWR4JWRAJWQsIG9mZnNldD0leCwgcGl0 Y2ggJWQsIHNpemUgMHgleFxuIiwKKwkJICAgIGNydGMtPmJhc2UubmFtZSwgcGxhbmUtPmJhc2Uu bmFtZSwgZmItPndpZHRoLCBmYi0+aGVpZ2h0LAorCQkgICAgZmItPmZvcm1hdC0+Y3BwWzBdICog OCwgYmFzZSwgZmItPnBpdGNoZXNbMF0sCisJCSAgICBwbGFuZV9jb25maWctPnNpemUpOworCisJ cGxhbmVfY29uZmlnLT5mYiA9IGludGVsX2ZiOworfQorCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaTl4eF9wbGFuZS5oCmluZGV4IGNhOTYzYzJhODQ1Ny4uMDI3YjY2MDUzOTg0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2k5eHhfcGxhbmUuaApAQCAtMTAsNiArMTAsOCBA QAogCiBlbnVtIHBpcGU7CiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK3N0cnVjdCBpbnRlbF9j cnRjOworc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnOwogc3RydWN0IGludGVsX3Bs YW5lOwogc3RydWN0IGludGVsX3BsYW5lX3N0YXRlOwogCkBAIC0yMSw0ICsyMyw2IEBAIGludCBp OXh4X2NoZWNrX3BsYW5lX3N1cmZhY2Uoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSk7CiBzdHJ1Y3QgaW50ZWxfcGxhbmUgKgogaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSk7CiAKK3Zv aWQgaTl4eF9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMs CisJCQkJICAgc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnICpwbGFuZV9jb25maWcp OwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CmluZGV4IGFjOGY4OTg0OTUxMC4uMTgyNmI0ZmM2Y2VjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMjIwNiwzOSArMjIwNiw2IEBAIGludGVs X3BsYW5lX2NvbXB1dGVfZ3R0KHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp CiAJcmV0dXJuIGludGVsX3BsYW5lX2NoZWNrX3N0cmlkZShwbGFuZV9zdGF0ZSk7CiB9CiAKLXN0 YXRpYyBpbnQgaTl4eF9mb3JtYXRfdG9fZm91cmNjKGludCBmb3JtYXQpCi17Ci0Jc3dpdGNoIChm b3JtYXQpIHsKLQljYXNlIERJU1BQTEFORV84QlBQOgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9DODsK LQljYXNlIERJU1BQTEFORV9CR1JBNTU1OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9BUkdCMTU1NTsK LQljYXNlIERJU1BQTEFORV9CR1JYNTU1OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9YUkdCMTU1NTsK LQljYXNlIERJU1BQTEFORV9CR1JYNTY1OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9SR0I1NjU7Ci0J ZGVmYXVsdDoKLQljYXNlIERJU1BQTEFORV9CR1JYODg4OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9Y UkdCODg4ODsKLQljYXNlIERJU1BQTEFORV9SR0JYODg4OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9Y QkdSODg4ODsKLQljYXNlIERJU1BQTEFORV9CR1JBODg4OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9B UkdCODg4ODsKLQljYXNlIERJU1BQTEFORV9SR0JBODg4OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9B QkdSODg4ODsKLQljYXNlIERJU1BQTEFORV9CR1JYMTAxMDEwOgotCQlyZXR1cm4gRFJNX0ZPUk1B VF9YUkdCMjEwMTAxMDsKLQljYXNlIERJU1BQTEFORV9SR0JYMTAxMDEwOgotCQlyZXR1cm4gRFJN X0ZPUk1BVF9YQkdSMjEwMTAxMDsKLQljYXNlIERJU1BQTEFORV9CR1JBMTAxMDEwOgotCQlyZXR1 cm4gRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMDsKLQljYXNlIERJU1BQTEFORV9SR0JBMTAxMDEwOgot CQlyZXR1cm4gRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMDsKLQljYXNlIERJU1BQTEFORV9SR0JYMTYx NjE2OgotCQlyZXR1cm4gRFJNX0ZPUk1BVF9YQkdSMTYxNjE2MTZGOwotCX0KLX0KLQogc3RhdGlj IHN0cnVjdCBpOTE1X3ZtYSAqCiBpbml0aWFsX3BsYW5lX3ZtYShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIAkJICBzdHJ1Y3QgaW50ZWxfaW5pdGlhbF9wbGFuZV9jb25maWcgKnBsYW5l X2NvbmZpZykKQEAgLTU5MTEsOTIgKzU4NzgsNiBAQCBzdGF0aWMgdm9pZCB2bHZfY3J0Y19jbG9j a19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJcGlwZV9jb25maWctPnBvcnRfY2xvY2sg PSB2bHZfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGssICZjbG9jayk7CiB9CiAKLXN0YXRpYyB2b2lk Ci1pOXh4X2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK LQkJCSAgICAgIHN0cnVjdCBpbnRlbF9pbml0aWFsX3BsYW5lX2NvbmZpZyAqcGxhbmVfY29uZmln KQotewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSk7Ci0JZW51 bSBpOXh4X3BsYW5lX2lkIGk5eHhfcGxhbmUgPSBwbGFuZS0+aTl4eF9wbGFuZTsKLQllbnVtIHBp cGUgcGlwZTsKLQl1MzIgdmFsLCBiYXNlLCBvZmZzZXQ7Ci0JaW50IGZvdXJjYywgcGl4ZWxfZm9y bWF0OwotCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodDsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYjsKLQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiOwotCi0JaWYgKCFw bGFuZS0+Z2V0X2h3X3N0YXRlKHBsYW5lLCAmcGlwZSkpCi0JCXJldHVybjsKLQotCWRybV9XQVJO X09OKGRldiwgcGlwZSAhPSBjcnRjLT5waXBlKTsKLQotCWludGVsX2ZiID0ga3phbGxvYyhzaXpl b2YoKmludGVsX2ZiKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFpbnRlbF9mYikgewotCQlkcm1fZGJn X2ttcygmZGV2X3ByaXYtPmRybSwgImZhaWxlZCB0byBhbGxvYyBmYlxuIik7Ci0JCXJldHVybjsK LQl9Ci0KLQlmYiA9ICZpbnRlbF9mYi0+YmFzZTsKLQotCWZiLT5kZXYgPSBkZXY7Ci0KLQl2YWwg PSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBEU1BDTlRSKGk5eHhfcGxhbmUpKTsKLQotCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKLQkJaWYgKHZhbCAmIERJU1BQTEFORV9USUxFRCkg ewotCQkJcGxhbmVfY29uZmlnLT50aWxpbmcgPSBJOTE1X1RJTElOR19YOwotCQkJZmItPm1vZGlm aWVyID0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQ7Ci0JCX0KLQotCQlpZiAodmFsICYgRElTUFBM QU5FX1JPVEFURV8xODApCi0JCQlwbGFuZV9jb25maWctPnJvdGF0aW9uID0gRFJNX01PREVfUk9U QVRFXzE4MDsKLQl9Ci0KLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgcGlwZSA9PSBQ SVBFX0IgJiYKLQkgICAgdmFsICYgRElTUFBMQU5FX01JUlJPUikKLQkJcGxhbmVfY29uZmlnLT5y b3RhdGlvbiB8PSBEUk1fTU9ERV9SRUZMRUNUX1g7Ci0KLQlwaXhlbF9mb3JtYXQgPSB2YWwgJiBE SVNQUExBTkVfUElYRk9STUFUX01BU0s7Ci0JZm91cmNjID0gaTl4eF9mb3JtYXRfdG9fZm91cmNj KHBpeGVsX2Zvcm1hdCk7Ci0JZmItPmZvcm1hdCA9IGRybV9mb3JtYXRfaW5mbyhmb3VyY2MpOwot Ci0JaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsK LQkJb2Zmc2V0ID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgRFNQT0ZGU0VUKGk5eHhfcGxhbmUp KTsKLQkJYmFzZSA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERTUFNVUkYoaTl4eF9wbGFuZSkp ICYgMHhmZmZmZjAwMDsKLQl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewot CQlpZiAocGxhbmVfY29uZmlnLT50aWxpbmcpCi0JCQlvZmZzZXQgPSBpbnRlbF9kZV9yZWFkKGRl dl9wcml2LAotCQkJCQkgICAgICAgRFNQVElMRU9GRihpOXh4X3BsYW5lKSk7Ci0JCWVsc2UKLQkJ CW9mZnNldCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsCi0JCQkJCSAgICAgICBEU1BMSU5PRkYo aTl4eF9wbGFuZSkpOwotCQliYXNlID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgRFNQU1VSRihp OXh4X3BsYW5lKSkgJiAweGZmZmZmMDAwOwotCX0gZWxzZSB7Ci0JCWJhc2UgPSBpbnRlbF9kZV9y ZWFkKGRldl9wcml2LCBEU1BBRERSKGk5eHhfcGxhbmUpKTsKLQl9Ci0JcGxhbmVfY29uZmlnLT5i YXNlID0gYmFzZTsKLQotCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIFBJUEVTUkMocGlw ZSkpOwotCWZiLT53aWR0aCA9ICgodmFsID4+IDE2KSAmIDB4ZmZmKSArIDE7Ci0JZmItPmhlaWdo dCA9ICgodmFsID4+IDApICYgMHhmZmYpICsgMTsKLQotCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2 X3ByaXYsIERTUFNUUklERShpOXh4X3BsYW5lKSk7Ci0JZmItPnBpdGNoZXNbMF0gPSB2YWwgJiAw eGZmZmZmZmMwOwotCi0JYWxpZ25lZF9oZWlnaHQgPSBpbnRlbF9mYl9hbGlnbl9oZWlnaHQoZmIs IDAsIGZiLT5oZWlnaHQpOwotCi0JcGxhbmVfY29uZmlnLT5zaXplID0gZmItPnBpdGNoZXNbMF0g KiBhbGlnbmVkX2hlaWdodDsKLQotCWRybV9kYmdfa21zKCZkZXZfcHJpdi0+ZHJtLAotCQkgICAg IiVzLyVzIHdpdGggZmI6IHNpemU9JWR4JWRAJWQsIG9mZnNldD0leCwgcGl0Y2ggJWQsIHNpemUg MHgleFxuIiwKLQkJICAgIGNydGMtPmJhc2UubmFtZSwgcGxhbmUtPmJhc2UubmFtZSwgZmItPndp ZHRoLCBmYi0+aGVpZ2h0LAotCQkgICAgZmItPmZvcm1hdC0+Y3BwWzBdICogOCwgYmFzZSwgZmIt PnBpdGNoZXNbMF0sCi0JCSAgICBwbGFuZV9jb25maWctPnNpemUpOwotCi0JcGxhbmVfY29uZmln LT5mYiA9IGludGVsX2ZiOwotfQotCiBzdGF0aWMgdm9pZCBjaHZfY3J0Y19jbG9ja19nZXQoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQogewotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK