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 19452C432BE for ; Fri, 23 Jul 2021 17:43:41 +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 BE72060C51 for ; Fri, 23 Jul 2021 17:43:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org BE72060C51 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C33C86FB95; Fri, 23 Jul 2021 17:43:36 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id BAFAC6FB9F for ; Fri, 23 Jul 2021 17:43:09 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10054"; a="211644144" X-IronPort-AV: E=Sophos;i="5.84,264,1620716400"; d="scan'208";a="211644144" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2021 10:42:52 -0700 X-IronPort-AV: E=Sophos;i="5.84,264,1620716400"; d="scan'208";a="463229112" Received: from mdroper-desk1.fm.intel.com ([10.1.27.134]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2021 10:42:51 -0700 From: Matt Roper To: intel-gfx@lists.freedesktop.org Date: Fri, 23 Jul 2021 10:42:33 -0700 Message-Id: <20210723174239.1551352-25-matthew.d.roper@intel.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: <20210723174239.1551352-1-matthew.d.roper@intel.com> References: <20210723174239.1551352-1-matthew.d.roper@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v3 24/30] drm/i915/dg2: Add MPLLB programming for HDMI 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" QXQgdGhlIG1vbWVudCB3ZSBkb24ndCBoYXZlIGEgcHJvcGVyIGFsZ29yaXRobSB0aGF0IGNhbiBi ZSB1c2VkIHRvCmNhbGN1bGF0ZSBQSFkgc2V0dGluZ3MgZm9yIGFyYml0cmFyeSBIRE1JIGxpbmsg cmF0ZXMuICBUaGUgUEhZIHRhYmxlcwpoZXJlIHNob3VsZCBzdXBwb3J0IHRoZSByZWd1bGFyIG1v ZGVzIG9mIHJlYWwtd29ybGQgSERNSSBtb25pdG9ycy4KCkJzcGVjOiA1NDAzMgpDYzogTWF0dCBB dHdvb2QgPG1hdHRoZXcucy5hdHdvb2RAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXR0IFJv cGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBWYW5kaXRhIEt1 bGthcm5pIDx2YW5kaXRhLmt1bGthcm5pQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hdHQgQXR3 b29kIDxtYXR0aGV3LnMuYXR3b29kQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgMTQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8ICA0NyArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfaGRtaS5jICAgICB8ICAxMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3NucHNfcGh5LmMgfCAyODYgKysrKysrKysrKysrKysrKystCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3NucHNfcGh5LmggfCAgIDcgKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAgICAgIHwgICAzICsKIDYgZmlsZXMgY2hh bmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCmluZGV4IDI2YTNhYTczZmNjNC4uOTI5YTk1ZGRiMzE2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKQEAgLTUxLDYgKzUx LDcgQEAKICNpbmNsdWRlICJpbnRlbF9wYW5lbC5oIgogI2luY2x1ZGUgImludGVsX3Bwcy5oIgog I2luY2x1ZGUgImludGVsX3Bzci5oIgorI2luY2x1ZGUgImludGVsX3NucHNfcGh5LmgiCiAjaW5j bHVkZSAiaW50ZWxfc3ByaXRlLmgiCiAjaW5jbHVkZSAiaW50ZWxfdGMuaCIKICNpbmNsdWRlICJp bnRlbF92ZHNjLmgiCkBAIC0zNzQ1LDYgKzM3NDYsMTUgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2Ns b2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkJICAgICAmY3J0Y19zdGF0 ZS0+ZHBsbF9od19zdGF0ZSk7CiB9CiAKK3N0YXRpYyB2b2lkIGRnMl9kZGlfZ2V0X2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKK3sKKwlpbnRlbF9tcGxsYl9yZWFkb3V0X2h3X3N0YXRlKGVuY29kZXIs ICZjcnRjX3N0YXRlLT5tcGxsYl9zdGF0ZSk7CisJY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayA9IGlu dGVsX21wbGxiX2NhbGNfcG9ydF9jbG9jayhlbmNvZGVyLCAmY3J0Y19zdGF0ZS0+bXBsbGJfc3Rh dGUpOworCisJaW50ZWxfZGRpX2dldF9jb25maWcoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cit9CisK IHN0YXRpYyB2b2lkIGFkbHNfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CkBAIC00 NjA2LDcgKzQ2MTYsOSBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJZW5jb2Rlci0+Y2xvbmVhYmxlID0gMDsK IAllbmNvZGVyLT5waXBlX21hc2sgPSB+MDsKIAotCWlmIChJU19BTERFUkxBS0VfUyhkZXZfcHJp dikpIHsKKwlpZiAoSVNfREcyKGRldl9wcml2KSkgeworCQllbmNvZGVyLT5nZXRfY29uZmlnID0g ZGcyX2RkaV9nZXRfY29uZmlnOworCX0gZWxzZSBpZiAoSVNfQUxERVJMQUtFX1MoZGV2X3ByaXYp KSB7CiAJCWVuY29kZXItPmVuYWJsZV9jbG9jayA9IGFkbHNfZGRpX2VuYWJsZV9jbG9jazsKIAkJ ZW5jb2Rlci0+ZGlzYWJsZV9jbG9jayA9IGFkbHNfZGRpX2Rpc2FibGVfY2xvY2s7CiAJCWVuY29k ZXItPmlzX2Nsb2NrX2VuYWJsZWQgPSBhZGxzX2RkaV9pc19jbG9ja19lbmFibGVkOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCA4ZTg4ZWY1NDA3 ZDguLjhjNjZlOTJmYjdiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMKQEAgLTkxNDEsNiArOTE0MSw1MiBAQCB2ZXJpZnlfc2hhcmVkX2RwbGxfc3Rh dGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJfQogfQogCitzdGF0aWMgdm9pZAordmVyaWZ5 X21wbGxiX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCit7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGludGVs X21wbGxiX3N0YXRlIG1wbGxiX2h3X3N0YXRlID0geyAwIH07CisJc3RydWN0IGludGVsX21wbGxi X3N0YXRlICptcGxsYl9zd19zdGF0ZSA9ICZuZXdfY3J0Y19zdGF0ZS0+bXBsbGJfc3RhdGU7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51 YXBpLmNydGMpOworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOworCisJaWYgKCFJU19E RzIoaTkxNSkpCisJCXJldHVybjsKKworCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkK KwkJcmV0dXJuOworCisJZW5jb2RlciA9IGludGVsX2dldF9jcnRjX25ld19lbmNvZGVyKHN0YXRl LCBuZXdfY3J0Y19zdGF0ZSk7CisJaW50ZWxfbXBsbGJfcmVhZG91dF9od19zdGF0ZShlbmNvZGVy LCAmbXBsbGJfaHdfc3RhdGUpOworCisjZGVmaW5lIE1QTExCX0NIRUNLKG5hbWUpIGRvIHsgXAor CWlmIChtcGxsYl9zd19zdGF0ZS0+bmFtZSAhPSBtcGxsYl9od19zdGF0ZS5uYW1lKSB7IFwKKwkJ cGlwZV9jb25maWdfbWlzbWF0Y2goZmFsc2UsIGNydGMsICJNUExMQjoiIF9fc3RyaW5naWZ5KG5h bWUpLCBcCisJCQkJICAgICAiKGV4cGVjdGVkIDB4JTA4eCwgZm91bmQgMHglMDh4KSIsIFwKKwkJ CQkgICAgIG1wbGxiX3N3X3N0YXRlLT5uYW1lLCBcCisJCQkJICAgICBtcGxsYl9od19zdGF0ZS5u YW1lKTsgXAorCX0gXAorfSB3aGlsZSAoMCkKKworCU1QTExCX0NIRUNLKG1wbGxiX2NwKTsKKwlN UExMQl9DSEVDSyhtcGxsYl9kaXYpOworCU1QTExCX0NIRUNLKG1wbGxiX2RpdjIpOworCU1QTExC X0NIRUNLKG1wbGxiX2ZyYWNuMSk7CisJTVBMTEJfQ0hFQ0sobXBsbGJfZnJhY24yKTsKKwlNUExM Ql9DSEVDSyhtcGxsYl9zc2Nlbik7CisJTVBMTEJfQ0hFQ0sobXBsbGJfc3Njc3RlcCk7CisKKwkv KgorCSAqIHJlZl9jb250cm9sIGlzIGhhbmRsZWQgYnkgdGhlIGhhcmR3YXJlL2ZpcmVtd2FyZSBh bmQgbmV2ZXIKKwkgKiBwcm9ncmFtbWVkIGJ5IHRoZSBzb2Z0d2FyZSwgYnV0IHRoZSBwcm9wZXIg dmFsdWVzIGFyZSBzdXBwbGllZAorCSAqIGluIHRoZSBic3BlYyBmb3IgdmVyaWZpY2F0aW9uIHB1 cnBvc2VzLgorCSAqLworCU1QTExCX0NIRUNLKHJlZl9jb250cm9sKTsKKworI3VuZGVmIE1QTExC X0NIRUNLCit9CisKIHN0YXRpYyB2b2lkCiBpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9jcnRjKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKQEAgLTkxNTQsNiArOTIwMCw3IEBAIGludGVsX21vZGVzZXRfdmVyaWZ5X2NydGMoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJdmVyaWZ5X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY3J0Yyk7 CiAJdmVyaWZ5X2NydGNfc3RhdGUoY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRl KTsKIAl2ZXJpZnlfc2hhcmVkX2RwbGxfc3RhdGUoY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19j cnRjX3N0YXRlKTsKKwl2ZXJpZnlfbXBsbGJfc3RhdGUoc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsK IH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1p LmMKaW5kZXggODUyYWYyYjIzNTQwLi5iMDQ2ODViYjY0MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiaW50 ZWxfaGRtaS5oIgogI2luY2x1ZGUgImludGVsX2xzcGNvbi5oIgogI2luY2x1ZGUgImludGVsX3Bh bmVsLmgiCisjaW5jbHVkZSAiaW50ZWxfc25wc19waHkuaCIKIAogc3RhdGljIHN0cnVjdCBkcm1f ZGV2aWNlICppbnRlbF9oZG1pX3RvX2RldihzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSkK IHsKQEAgLTE4NTAsNiArMTg1MSwxNiBAQCBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoc3RydWN0IGlu dGVsX2hkbWkgKmhkbWksCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmIGNsb2NrID4g MjE2MDAwICYmIGNsb2NrIDwgMjQwMDAwKQogCQlyZXR1cm4gTU9ERV9DTE9DS19SQU5HRTsKIAor CS8qCisJICogU05QUyBQSFlzJyBNUExMQiB0YWJsZS1iYXNlZCBwcm9ncmFtbWluZyBjYW4gb25s eSBoYW5kbGUgYSBmaXhlZAorCSAqIHNldCBvZiBsaW5rIHJhdGVzLgorCSAqCisJICogRklYTUU6 IFdlIHdpbGwgaG9wZWZ1bGx5IGdldCBhbiBhbGdvcml0aG1pYyB3YXkgb2YgcHJvZ3JhbW1pbmcK KwkgKiB0aGUgTVBMTEIgZm9yIEhETUkgaW4gdGhlIGZ1dHVyZS4KKwkgKi8KKwlpZiAoSVNfREcy KGRldl9wcml2KSkKKwkJcmV0dXJuIGludGVsX3NucHNfcGh5X2NoZWNrX2hkbWlfbGlua19yYXRl KGNsb2NrKTsKKwogCXJldHVybiBNT0RFX09LOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3NucHNfcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3NucHNfcGh5LmMKaW5kZXggNmQ5MjA1OTA2NTk1Li4xMzE3YjRlOTRi NTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc25wc19w aHkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3NucHNfcGh5LmMK QEAgLTMsNiArMyw4IEBACiAgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgog ICovCiAKKyNpbmNsdWRlIDxsaW51eC91dGlsX21hY3Jvcy5oPgorCiAjaW5jbHVkZSAiaW50ZWxf ZGUuaCIKICNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVkZSAiaW50ZWxf c25wc19waHkuaCIKQEAgLTM3NSwxNCArMzc3LDE3MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlu dGVsX21wbGxiX3N0YXRlICpkZzJfZWRwX3RhYmxlc1tdID0gewogCU5VTEwsCiB9OwogCi1pbnQg aW50ZWxfbXBsbGJfY2FsY19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKLQkJCSAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQotewotCWNvbnN0IHN0cnVj dCBpbnRlbF9tcGxsYl9zdGF0ZSAqKnRhYmxlczsKLQlpbnQgaTsKKy8qCisgKiBIRE1JIGxpbmsg cmF0ZXMgd2l0aCAxMDAgTUh6IHJlZmVyZW5jZSBjbG9jay4KKyAqLworCitzdGF0aWMgY29uc3Qg c3RydWN0IGludGVsX21wbGxiX3N0YXRlIGRnMl9oZG1pXzI1XzE3NSA9IHsKKwkuY2xvY2sgPSAy NTE3NSwKKwkucmVmX2NvbnRyb2wgPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9SRUZfQ09O VFJPTF9SRUZfUkFOR0UsIDMpLAorCS5tcGxsYl9jcCA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNf UEhZX01QTExCX0NQX0lOVCwgNSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9D UF9QUk9QLCAxNSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9DUF9JTlRfR1Ms IDY0KSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0NQX1BST1BfR1MsIDEyNCks CisJLm1wbGxiX2RpdiA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0RJVjVfQ0xL X0VOLCAxKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX1RYX0NMS19ESVYsIDUp IHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfUE1JWF9FTiwgMSkgfAorCQlSRUdf RklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9WMkksIDIpLAorCS5tcGxsYl9kaXYyID0KKwkJUkVH X0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfUkVGX0NMS19ESVYsIDEpIHwKKwkJUkVHX0ZJRUxE X1BSRVAoU05QU19QSFlfTVBMTEJfTVVMVElQTElFUiwgMTI4KSB8CisJCVJFR19GSUVMRF9QUkVQ KFNOUFNfUEhZX01QTExCX0hETUlfRElWLCAxKSwKKwkubXBsbGJfZnJhY24xID0KKwkJUkVHX0ZJ RUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fQ0dHX1VQREFURV9FTiwgMSkgfAorCQlSRUdf RklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkFDTl9FTiwgMSkgfAorCQlSRUdfRklFTERfUFJF UChTTlBTX1BIWV9NUExMQl9GUkFDTl9ERU4sIDE0MyksCisJLm1wbGxiX2ZyYWNuMiA9CisJCVJF R19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX1FVT1QsIDM2NjYzKSB8CisJCVJFR19G SUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX1JFTSwgNzEpLAorCS5tcGxsYl9zc2NlbiA9 CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX1NTQ19VUF9TUFJFQUQsIDEpLAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9tcGxsYl9zdGF0ZSBkZzJfaGRtaV8yN18wID0g eworCS5jbG9jayA9IDI3MDAwLAorCS5yZWZfY29udHJvbCA9CisJCVJFR19GSUVMRF9QUkVQKFNO UFNfUEhZX1JFRl9DT05UUk9MX1JFRl9SQU5HRSwgMyksCisJLm1wbGxiX2NwID0KKwkJUkVHX0ZJ RUxEX1BSRVAoU05QU19QSFlfTVBMTEJfQ1BfSU5ULCA1KSB8CisJCVJFR19GSUVMRF9QUkVQKFNO UFNfUEhZX01QTExCX0NQX1BST1AsIDE1KSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01Q TExCX0NQX0lOVF9HUywgNjQpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfQ1Bf UFJPUF9HUywgMTI0KSwKKwkubXBsbGJfZGl2ID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlf TVBMTEJfRElWNV9DTEtfRU4sIDEpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJf VFhfQ0xLX0RJViwgNSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9QTUlYX0VO LCAxKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX1YySSwgMiksCisJLm1wbGxi X2RpdjIgPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9SRUZfQ0xLX0RJViwgMSkg fAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9NVUxUSVBMSUVSLCAxNDApIHwKKwkJ UkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfSERNSV9ESVYsIDEpLAorCS5tcGxsYl9mcmFj bjEgPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkFDTl9DR0dfVVBEQVRFX0VO LCAxKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX0VOLCAxKSB8CisJ CVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX0RFTiwgNSksCisJLm1wbGxiX2Zy YWNuMiA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX1FVT1QsIDI2MjE0 KSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX1JFTSwgMiksCisJLm1w bGxiX3NzY2VuID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfU1NDX1VQX1NQUkVB RCwgMSksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX21wbGxiX3N0YXRlIGRnMl9o ZG1pXzc0XzI1ID0geworCS5jbG9jayA9IDc0MjUwLAorCS5yZWZfY29udHJvbCA9CisJCVJFR19G SUVMRF9QUkVQKFNOUFNfUEhZX1JFRl9DT05UUk9MX1JFRl9SQU5HRSwgMyksCisJLm1wbGxiX2Nw ID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfQ1BfSU5ULCA0KSB8CisJCVJFR19G SUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0NQX1BST1AsIDE1KSB8CisJCVJFR19GSUVMRF9QUkVQ KFNOUFNfUEhZX01QTExCX0NQX0lOVF9HUywgNjQpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19Q SFlfTVBMTEJfQ1BfUFJPUF9HUywgMTI0KSwKKwkubXBsbGJfZGl2ID0KKwkJUkVHX0ZJRUxEX1BS RVAoU05QU19QSFlfTVBMTEJfRElWNV9DTEtfRU4sIDEpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05Q U19QSFlfTVBMTEJfVFhfQ0xLX0RJViwgMykgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9N UExMQl9QTUlYX0VOLCAxKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX1YySSwg MikgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkVRX1ZDTywgMyksCisJLm1w bGxiX2RpdjIgPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9SRUZfQ0xLX0RJViwg MSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9NVUxUSVBMSUVSLCA4NikgfAor CQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9IRE1JX0RJViwgMSksCisJLm1wbGxiX2Zy YWNuMSA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX0NHR19VUERBVEVf RU4sIDEpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fRU4sIDEpIHwK KwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fREVOLCA1KSwKKwkubXBsbGJf ZnJhY24yID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fUVVPVCwgMjYy MTQpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fUkVNLCAyKSwKKwku bXBsbGJfc3NjZW4gPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9TU0NfVVBfU1BS RUFELCAxKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfbXBsbGJfc3RhdGUgZGcy X2hkbWlfMTQ4XzUgPSB7CisJLmNsb2NrID0gMTQ4NTAwLAorCS5yZWZfY29udHJvbCA9CisJCVJF R19GSUVMRF9QUkVQKFNOUFNfUEhZX1JFRl9DT05UUk9MX1JFRl9SQU5HRSwgMyksCisJLm1wbGxi X2NwID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfQ1BfSU5ULCA0KSB8CisJCVJF R19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0NQX1BST1AsIDE1KSB8CisJCVJFR19GSUVMRF9Q UkVQKFNOUFNfUEhZX01QTExCX0NQX0lOVF9HUywgNjQpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05Q U19QSFlfTVBMTEJfQ1BfUFJPUF9HUywgMTI0KSwKKwkubXBsbGJfZGl2ID0KKwkJUkVHX0ZJRUxE X1BSRVAoU05QU19QSFlfTVBMTEJfRElWNV9DTEtfRU4sIDEpIHwKKwkJUkVHX0ZJRUxEX1BSRVAo U05QU19QSFlfTVBMTEJfVFhfQ0xLX0RJViwgMikgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BI WV9NUExMQl9QTUlYX0VOLCAxKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX1Yy SSwgMikgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkVRX1ZDTywgMyksCisJ Lm1wbGxiX2RpdjIgPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9SRUZfQ0xLX0RJ ViwgMSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9NVUxUSVBMSUVSLCA4Nikg fAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9IRE1JX0RJViwgMSksCisJLm1wbGxi X2ZyYWNuMSA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSQUNOX0NHR19VUERB VEVfRU4sIDEpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fRU4sIDEp IHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fREVOLCA1KSwKKwkubXBs bGJfZnJhY24yID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fUVVPVCwg MjYyMTQpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05fUkVNLCAyKSwK KwkubXBsbGJfc3NjZW4gPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9TU0NfVVBf U1BSRUFELCAxKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfbXBsbGJfc3RhdGUg ZGcyX2hkbWlfNTk0ID0geworCS5jbG9jayA9IDU5NDAwMCwKKwkucmVmX2NvbnRyb2wgPQorCQlS RUdfRklFTERfUFJFUChTTlBTX1BIWV9SRUZfQ09OVFJPTF9SRUZfUkFOR0UsIDMpLAorCS5tcGxs Yl9jcCA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0NQX0lOVCwgNCkgfAorCQlS RUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9DUF9QUk9QLCAxNSkgfAorCQlSRUdfRklFTERf UFJFUChTTlBTX1BIWV9NUExMQl9DUF9JTlRfR1MsIDY0KSB8CisJCVJFR19GSUVMRF9QUkVQKFNO UFNfUEhZX01QTExCX0NQX1BST1BfR1MsIDEyNCksCisJLm1wbGxiX2RpdiA9CisJCVJFR19GSUVM RF9QUkVQKFNOUFNfUEhZX01QTExCX0RJVjVfQ0xLX0VOLCAxKSB8CisJCVJFR19GSUVMRF9QUkVQ KFNOUFNfUEhZX01QTExCX1BNSVhfRU4sIDEpIHwKKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlf TVBMTEJfVjJJLCAyKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0ZSRVFfVkNP LCAzKSwKKwkubXBsbGJfZGl2MiA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX1JF Rl9DTEtfRElWLCAxKSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX01VTFRJUExJ RVIsIDg2KSB8CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExCX0hETUlfRElWLCAxKSwK KwkubXBsbGJfZnJhY24xID0KKwkJUkVHX0ZJRUxEX1BSRVAoU05QU19QSFlfTVBMTEJfRlJBQ05f Q0dHX1VQREFURV9FTiwgMSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkFD Tl9FTiwgMSkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkFDTl9ERU4sIDUp LAorCS5tcGxsYl9mcmFjbjIgPQorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkFD Tl9RVU9ULCAyNjIxNCkgfAorCQlSRUdfRklFTERfUFJFUChTTlBTX1BIWV9NUExMQl9GUkFDTl9S RU0sIDIpLAorCS5tcGxsYl9zc2NlbiA9CisJCVJFR19GSUVMRF9QUkVQKFNOUFNfUEhZX01QTExC X1NTQ19VUF9TUFJFQUQsIDEpLAorfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9tcGxs Yl9zdGF0ZSAqZGcyX2hkbWlfdGFibGVzW10gPSB7CisJJmRnMl9oZG1pXzI1XzE3NSwKKwkmZGcy X2hkbWlfMjdfMCwKKwkmZGcyX2hkbWlfNzRfMjUsCisJJmRnMl9oZG1pXzE0OF81LAorCSZkZzJf aGRtaV81OTQsCisJTlVMTCwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfbXBsbGJf c3RhdGUgKioKK2ludGVsX21wbGxiX3RhYmxlc19nZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCisJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sK IAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRURQKSkg ewotCQl0YWJsZXMgPSBkZzJfZWRwX3RhYmxlczsKKwkJcmV0dXJuIGRnMl9lZHBfdGFibGVzOwog CX0gZWxzZSBpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSkgewogCQkv KgogCQkgKiBGSVhNRTogSW5pdGlhbGx5IHdlJ3JlIGp1c3QgZW5hYmxpbmcgdGhlICJjb21ibyIg b3V0cHV0cyBvbgpAQCAtMzk3LDE1ICs1NTcsNDEgQEAgaW50IGludGVsX21wbGxiX2NhbGNfc3Rh dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAqIHRoYXQgdG8gZGV0 ZXJtaW5lIHdoaWNoIHRhYmxlIHRvIHVzZS4KIAkJICovCiAJCWlmICgwKQotCQkJdGFibGVzID0g ZGcyX2RwXzM4XzRfdGFibGVzOworCQkJcmV0dXJuIGRnMl9kcF8zOF80X3RhYmxlczsKIAkJZWxz ZQotCQkJdGFibGVzID0gZGcyX2RwXzEwMF90YWJsZXM7Ci0JfSBlbHNlIHsKLQkJLyogVE9ETzog QWRkIEhETUkgc3VwcG9ydCAqLwotCQlNSVNTSU5HX0NBU0UoZW5jb2Rlci0+dHlwZSk7Ci0JCXJl dHVybiAtRUlOVkFMOworCQkJcmV0dXJuIGRnMl9kcF8xMDBfdGFibGVzOworCX0gZWxzZSBpZiAo aW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpIHsKKwkJ cmV0dXJuIGRnMl9oZG1pX3RhYmxlczsKIAl9CiAKKwlNSVNTSU5HX0NBU0UoZW5jb2Rlci0+dHlw ZSk7CisJcmV0dXJuIE5VTEw7Cit9CisKK2ludCBpbnRlbF9tcGxsYl9jYWxjX3N0YXRlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJICAgc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCit7CisJY29uc3Qgc3RydWN0IGludGVsX21wbGxiX3N0YXRlICoqdGFibGVz OworCWludCBpOworCisJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxf T1VUUFVUX0hETUkpKSB7CisJCWlmIChpbnRlbF9zbnBzX3BoeV9jaGVja19oZG1pX2xpbmtfcmF0 ZShjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrKQorCQkgICAgIT0gTU9ERV9PSykgeworCQkJLyoKKwkJ CSAqIEZJWE1FOiBDYW4gb25seSBzdXBwb3J0IGZpeGVkIEhETUkgZnJlcXVlbmNpZXMKKwkJCSAq IHVudGlsIHdlIGhhdmUgYSBwcm9wZXIgYWxnb3JpdGhtIHVuZGVyIGEgdmFsaWQKKwkJCSAqIGxp Y2Vuc2UuCisJCQkgKi8KKwkJCURSTV9ERUJVR19LTVMoIkNhbid0IHN1cHBvcnQgSERNSSBsaW5r IHJhdGUgJWRcbiIsCisJCQkJICAgICAgY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayk7CisJCQlyZXR1 cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCXRhYmxlcyA9IGludGVsX21wbGxiX3RhYmxlc19nZXQo Y3J0Y19zdGF0ZSwgZW5jb2Rlcik7CisJaWYgKCF0YWJsZXMpCisJCXJldHVybiAtRUlOVkFMOwor CiAJZm9yIChpID0gMDsgdGFibGVzW2ldOyBpKyspIHsKIAkJaWYgKGNydGNfc3RhdGUtPnBvcnRf Y2xvY2sgPD0gdGFibGVzW2ldLT5jbG9jaykgewogCQkJY3J0Y19zdGF0ZS0+bXBsbGJfc3RhdGUg PSAqdGFibGVzW2ldOwpAQCAtNTE1LDMgKzcwMSw3OSBAQCB2b2lkIGludGVsX21wbGxiX2Rpc2Fi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJICogV2UgaGFuZGxlIHRoaXMgc3Rl cCBpbiBieHRfc2V0X2NkY2xrKCkuCiAJICovCiB9CisKK2ludCBpbnRlbF9tcGxsYl9jYWxjX3Bv cnRfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJY29uc3Qgc3RydWN0 IGludGVsX21wbGxiX3N0YXRlICpwbGxfc3RhdGUpCit7CisJdW5zaWduZWQgaW50IGZyYWNfcXVv dCA9IDAsIGZyYWNfcmVtID0gMCwgZnJhY19kZW4gPSAxOworCXVuc2lnbmVkIGludCBtdWx0aXBs aWVyLCB0eF9jbGtfZGl2LCByZWZjbGs7CisJYm9vbCBmcmFjX2VuOworCisJaWYgKDApCisJCXJl ZmNsayA9IDM4NDAwOworCWVsc2UKKwkJcmVmY2xrID0gMTAwMDAwOworCisJcmVmY2xrID4+PSBS RUdfRklFTERfR0VUKFNOUFNfUEhZX01QTExCX1JFRl9DTEtfRElWLCBwbGxfc3RhdGUtPm1wbGxi X2RpdjIpIC0gMTsKKworCWZyYWNfZW4gPSBSRUdfRklFTERfR0VUKFNOUFNfUEhZX01QTExCX0ZS QUNOX0VOLCBwbGxfc3RhdGUtPm1wbGxiX2ZyYWNuMSk7CisKKwlpZiAoZnJhY19lbikgeworCQlm cmFjX3F1b3QgPSBSRUdfRklFTERfR0VUKFNOUFNfUEhZX01QTExCX0ZSQUNOX1FVT1QsIHBsbF9z dGF0ZS0+bXBsbGJfZnJhY24yKTsKKwkJZnJhY19yZW0gPSBSRUdfRklFTERfR0VUKFNOUFNfUEhZ X01QTExCX0ZSQUNOX1JFTSwgcGxsX3N0YXRlLT5tcGxsYl9mcmFjbjIpOworCQlmcmFjX2RlbiA9 IFJFR19GSUVMRF9HRVQoU05QU19QSFlfTVBMTEJfRlJBQ05fREVOLCBwbGxfc3RhdGUtPm1wbGxi X2ZyYWNuMSk7CisJfQorCisJbXVsdGlwbGllciA9IFJFR19GSUVMRF9HRVQoU05QU19QSFlfTVBM TEJfTVVMVElQTElFUiwgcGxsX3N0YXRlLT5tcGxsYl9kaXYyKSAvIDIgKyAxNjsKKworCXR4X2Ns a19kaXYgPSBSRUdfRklFTERfR0VUKFNOUFNfUEhZX01QTExCX1RYX0NMS19ESVYsIHBsbF9zdGF0 ZS0+bXBsbGJfZGl2KTsKKworCXJldHVybiBESVZfUk9VTkRfQ0xPU0VTVF9VTEwobXVsX3UzMl91 MzIocmVmY2xrLCAobXVsdGlwbGllciA8PCAxNikgKyBmcmFjX3F1b3QpICsKKwkJCQkgICAgIERJ Vl9ST1VORF9DTE9TRVNUKHJlZmNsayAqIGZyYWNfcmVtLCBmcmFjX2RlbiksCisJCQkJICAgICAx MCA8PCAodHhfY2xrX2RpdiArIDE2KSk7Cit9CisKK3ZvaWQgaW50ZWxfbXBsbGJfcmVhZG91dF9o d19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgIHN0cnVjdCBpbnRl bF9tcGxsYl9zdGF0ZSAqcGxsX3N0YXRlKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCWVudW0gcGh5IHBoeSA9IGlu dGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKKworCXBsbF9zdGF0ZS0+ bXBsbGJfY3AgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBTTlBTX1BIWV9NUExMQl9DUChwaHkp KTsKKwlwbGxfc3RhdGUtPm1wbGxiX2RpdiA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIFNOUFNf UEhZX01QTExCX0RJVihwaHkpKTsKKwlwbGxfc3RhdGUtPm1wbGxiX2RpdjIgPSBpbnRlbF9kZV9y ZWFkKGRldl9wcml2LCBTTlBTX1BIWV9NUExMQl9ESVYyKHBoeSkpOworCXBsbF9zdGF0ZS0+bXBs bGJfc3NjZW4gPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2LCBTTlBTX1BIWV9NUExMQl9TU0NFTihw aHkpKTsKKwlwbGxfc3RhdGUtPm1wbGxiX3NzY3N0ZXAgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2 LCBTTlBTX1BIWV9NUExMQl9TU0NTVEVQKHBoeSkpOworCXBsbF9zdGF0ZS0+bXBsbGJfZnJhY24x ID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgU05QU19QSFlfTVBMTEJfRlJBQ04xKHBoeSkpOwor CXBsbF9zdGF0ZS0+bXBsbGJfZnJhY24yID0gaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgU05QU19Q SFlfTVBMTEJfRlJBQ04yKHBoeSkpOworCisJLyoKKwkgKiBSRUZfQ09OVFJPTCBpcyB1bmRlciBm aXJtd2FyZSBjb250cm9sIGFuZCBuZXZlciBwcm9ncmFtbWVkIGJ5IHRoZQorCSAqIGRyaXZlcjsg d2UgcmVhZCBpdCBvbmx5IGZvciBzYW5pdHkgY2hlY2tpbmcgcHVycG9zZXMuICBUaGUgYnNwZWMK KwkgKiBvbmx5IHRlbGxzIHVzIHRoZSBleHBlY3RlZCB2YWx1ZSBmb3Igb25lIGZpZWxkIGluIHRo aXMgcmVnaXN0ZXIsCisJICogc28gd2UnbGwgb25seSByZWFkIG91dCB0aG9zZSBzcGVjaWZpYyBi aXRzIGhlcmUuCisJICovCisJcGxsX3N0YXRlLT5yZWZfY29udHJvbCA9IGludGVsX2RlX3JlYWQo ZGV2X3ByaXYsIFNOUFNfUEhZX1JFRl9DT05UUk9MKHBoeSkpICYKKwkJU05QU19QSFlfUkVGX0NP TlRST0xfUkVGX1JBTkdFOworCisJLyoKKwkgKiBNUExMQl9ESVYgaXMgcHJvZ3JhbW1lZCB0d2lj ZSwgb25jZSB3aXRoIHRoZSBzb2Z0d2FyZS1jb21wdXRlZAorCSAqIHN0YXRlLCB0aGVuIGFnYWlu IHdpdGggdGhlIE1QTExCX0ZPUkNFX0VOIGJpdCBhZGRlZC4gIERyb3AgdGhhdAorCSAqIGV4dHJh IGJpdCBkdXJpbmcgcmVhZG91dCBzbyB0aGF0IHdlIHJldHVybiB0aGUgYWN0dWFsIGV4cGVjdGVk CisJICogc29mdHdhcmUgc3RhdGUuCisJICovCisJcGxsX3N0YXRlLT5tcGxsYl9kaXYgJj0gflNO UFNfUEhZX01QTExCX0ZPUkNFX0VOOworfQorCitpbnQgaW50ZWxfc25wc19waHlfY2hlY2tfaGRt aV9saW5rX3JhdGUoaW50IGNsb2NrKQoreworCWNvbnN0IHN0cnVjdCBpbnRlbF9tcGxsYl9zdGF0 ZSAqKnRhYmxlcyA9IGRnMl9oZG1pX3RhYmxlczsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IHRh Ymxlc1tpXTsgaSsrKSB7CisJCWlmIChjbG9jayA9PSB0YWJsZXNbaV0tPmNsb2NrKQorCQkJcmV0 dXJuIE1PREVfT0s7CisJfQorCisJcmV0dXJuIE1PREVfQ0xPQ0tfUkFOR0U7Cit9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3NucHNfcGh5LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3NucHNfcGh5LmgKaW5kZXggMjA1YWI0NmYw YjY3Li5jYTRjMmEyNTE4MmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfc25wc19waHkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3NucHNfcGh5LmgKQEAgLTgsMTEgKzgsMTggQEAKIAogc3RydWN0IGludGVsX2VuY29kZXI7 CiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZTsKK3N0cnVjdCBpbnRlbF9tcGxsYl9zdGF0ZTsKIAog aW50IGludGVsX21wbGxiX2NhbGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiB2b2lkIGludGVs X21wbGxiX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIHZvaWQgaW50ZWxfbXBsbGJfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cit2b2lkIGludGVsX21wbGxiX3Jl YWRvdXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJICBzdHJ1 Y3QgaW50ZWxfbXBsbGJfc3RhdGUgKnBsbF9zdGF0ZSk7CitpbnQgaW50ZWxfbXBsbGJfY2FsY19w b3J0X2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCWNvbnN0IHN0cnVj dCBpbnRlbF9tcGxsYl9zdGF0ZSAqcGxsX3N0YXRlKTsKKworaW50IGludGVsX3NucHNfcGh5X2No ZWNrX2hkbWlfbGlua19yYXRlKGludCBjbG9jayk7CiAKICNlbmRpZiAvKiBfX0lOVEVMX1NOUFNf UEhZX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggMzdkODJjYmZiYTZiLi5kYzAw MDJjMWVmZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtMjMyNSwxMiArMjMyNSwxNSBA QCBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9tbWlvX3JlZ192YWxpZChpOTE1X3JlZ190IHJlZykK IAogI2RlZmluZSBTTlBTX1BIWV9NUExMQl9TU0NFTihwaHkpCQlfTU1JT19TTlBTKHBoeSwgMHgx NjgwMTQpCiAjZGVmaW5lICAgU05QU19QSFlfTVBMTEJfU1NDX0VOCQkJUkVHX0JJVCgzMSkKKyNk ZWZpbmUgICBTTlBTX1BIWV9NUExMQl9TU0NfVVBfU1BSRUFECQlSRUdfQklUKDMwKQogI2RlZmlu ZSAgIFNOUFNfUEhZX01QTExCX1NTQ19QRUFLCQlSRUdfR0VOTUFTSygyOSwgMTApCiAKICNkZWZp bmUgU05QU19QSFlfTVBMTEJfU1NDU1RFUChwaHkpCQlfTU1JT19TTlBTKHBoeSwgMHgxNjgwMTgp CiAjZGVmaW5lICAgU05QU19QSFlfTVBMTEJfU1NDX1NURVBTSVpFCQlSRUdfR0VOTUFTSygzMSwg MTEpCiAKICNkZWZpbmUgU05QU19QSFlfTVBMTEJfRElWMihwaHkpCQlfTU1JT19TTlBTKHBoeSwg MHgxNjgwMUMpCisjZGVmaW5lICAgU05QU19QSFlfTVBMTEJfSERNSV9QSVhFTF9DTEtfRElWCVJF R19HRU5NQVNLKDE5LCAxOCkKKyNkZWZpbmUgICBTTlBTX1BIWV9NUExMQl9IRE1JX0RJVgkJUkVH X0dFTk1BU0soMTcsIDE1KQogI2RlZmluZSAgIFNOUFNfUEhZX01QTExCX1JFRl9DTEtfRElWCQlS RUdfR0VOTUFTSygxNCwgMTIpCiAjZGVmaW5lICAgU05QU19QSFlfTVBMTEJfTVVMVElQTElFUgkJ UkVHX0dFTk1BU0soMTEsIDApCiAKLS0gCjIuMjUuNAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==