From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 10/15] drm/i915: Calculate pipe watermarks into CRTC state (v3) Date: Thu, 24 Sep 2015 15:53:15 -0700 Message-ID: <1443135200-9870-11-git-send-email-matthew.d.roper@intel.com> References: <1443135200-9870-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 805DF6E298 for ; Thu, 24 Sep 2015 15:53:54 -0700 (PDT) In-Reply-To: <1443135200-9870-1-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QSBmdXR1cmUgcGF0Y2ggd2lsbCBjYWxjdWxhdGUgdGhlc2UgZHVyaW5nIHRoZSBhdG9taWMgJ2No ZWNrJyBwaGFzZQpyYXRoZXIgdGhhbiBhdCBXTSBwcm9ncmFtbWluZyB0aW1lLCBzbyBsZXQncyBz dG9yZSB0aGUgd2F0ZXJtYXJrCnZhbHVlcyB3ZSdyZSBwbGFubmluZyB0byB1c2UgaW4gdGhlIENS VEMgc3RhdGU7IHRoZSB2YWx1ZXMgYWN0dWFsbHkKYWN0aXZlIG9uIHRoZSBoYXJkd2FyZSByZW1h aW5zIGluIGludGVsX2NydGMuCgpXaGlsZSB3ZSdyZSBhdCBpdCwgZG8gc29tZSBtaW5vciByZXN0 cnVjdHVyaW5nIHRvIGtlZXAgSUxLIGFuZCBTS0wKdmFsdWVzIGluIGEgdW5pb24uCgp2MjogRG9u J3QgbW92ZSBjeHNyX2FsbG93ZWQgdG8gc3RhdGUgKE1hYXJ0ZW4pCgp2MzogT25seSBjYWxjdWxh dGUgd2F0ZXJtYXJrcyBpbiBzdGF0ZS4gIFN0aWxsIGtlZXAgYWN0aXZlIHdhdGVybWFya3MgaW4K ICAgIGludGVsX2NydGMgaXRzZWxmLiAgKFZpbGxlKQoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3Bl ciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hv cnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICB8IDQ0ICsrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRp b25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDFi OTgyMTAuLjU5OGM0YjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0zMjQsNiArMzI0 LDIxIEBAIHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSB7CiAvKiBkcm1fbW9kZS0+cHJp dmF0ZV9mbGFncyAqLwogI2RlZmluZSBJOTE1X01PREVfRkxBR19JTkhFUklURUQgMQogCitzdHJ1 Y3QgaW50ZWxfcGlwZV93bSB7CisJc3RydWN0IGludGVsX3dtX2xldmVsIHdtWzVdOworCXVpbnQz Ml90IGxpbmV0aW1lOworCWJvb2wgZmJjX3dtX2VuYWJsZWQ7CisJYm9vbCBwaXBlX2VuYWJsZWQ7 CisJYm9vbCBzcHJpdGVzX2VuYWJsZWQ7CisJYm9vbCBzcHJpdGVzX3NjYWxlZDsKK307CisKK3N0 cnVjdCBza2xfcGlwZV93bSB7CisJc3RydWN0IHNrbF93bV9sZXZlbCB3bVs4XTsKKwlzdHJ1Y3Qg c2tsX3dtX2xldmVsIHRyYW5zX3dtOworCXVpbnQzMl90IGxpbmV0aW1lOworfTsKKwogc3RydWN0 IGludGVsX2NydGNfc3RhdGUgewogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBiYXNlOwogCkBAIC00 NjEsNiArNDc2LDE3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKIAogCS8qIElWQiBzcHJp dGUgc2NhbGluZyB3L2EgKFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2NhbGluZzppdmIpICovCiAJ Ym9vbCBkaXNhYmxlX2xwX3dtOworCisJc3RydWN0IHsKKwkJLyoKKwkJICogb3B0aW1hbCB3YXRl cm1hcmtzLCBwcm9ncmFtbWVkIHBvc3QtdmJsYW5rIHdoZW4gdGhpcyBzdGF0ZQorCQkgKiBpcyBj b21taXR0ZWQKKwkJICovCisJCXVuaW9uIHsKKwkJCXN0cnVjdCBpbnRlbF9waXBlX3dtIGlsazsK KwkJCXN0cnVjdCBza2xfcGlwZV93bSBza2w7CisJCX0gb3B0aW1hbDsKKwl9IHdtOwogfTsKIAog c3RydWN0IHZsdl93bV9zdGF0ZSB7CkBAIC00NzIsMTUgKzQ5OCw2IEBAIHN0cnVjdCB2bHZfd21f c3RhdGUgewogCWJvb2wgY3hzcjsKIH07CiAKLXN0cnVjdCBpbnRlbF9waXBlX3dtIHsKLQlzdHJ1 Y3QgaW50ZWxfd21fbGV2ZWwgd21bNV07Ci0JdWludDMyX3QgbGluZXRpbWU7Ci0JYm9vbCBmYmNf d21fZW5hYmxlZDsKLQlib29sIHBpcGVfZW5hYmxlZDsKLQlib29sIHNwcml0ZXNfZW5hYmxlZDsK LQlib29sIHNwcml0ZXNfc2NhbGVkOwotfTsKLQogc3RydWN0IGludGVsX21taW9fZmxpcCB7CiAJ c3RydWN0IHdvcmtfc3RydWN0IHdvcms7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7 CkBAIC00ODgsMTIgKzUwNSw2IEBAIHN0cnVjdCBpbnRlbF9tbWlvX2ZsaXAgewogCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjOwogfTsKIAotc3RydWN0IHNrbF9waXBlX3dtIHsKLQlzdHJ1Y3Qgc2ts X3dtX2xldmVsIHdtWzhdOwotCXN0cnVjdCBza2xfd21fbGV2ZWwgdHJhbnNfd207Ci0JdWludDMy X3QgbGluZXRpbWU7Ci19OwotCiAvKgogICogVHJhY2tpbmcgb2Ygb3BlcmF0aW9ucyB0aGF0IG5l ZWQgdG8gYmUgcGVyZm9ybWVkIGF0IHRoZSBiZWdpbm5pbmcvZW5kIG9mIGFuCiAgKiBhdG9taWMg Y29tbWl0LCBvdXRzaWRlIHRoZSBhdG9taWMgc2VjdGlvbiB3aGVyZSBpbnRlcnJ1cHRzIGFyZSBk aXNhYmxlZC4KQEAgLTU2MSw5ICs1NzIsMTAgQEAgc3RydWN0IGludGVsX2NydGMgewogCS8qIHBl ci1waXBlIHdhdGVybWFyayBzdGF0ZSAqLwogCXN0cnVjdCB7CiAJCS8qIHdhdGVybWFya3MgY3Vy cmVudGx5IGJlaW5nIHVzZWQgICovCi0JCXN0cnVjdCBpbnRlbF9waXBlX3dtIGFjdGl2ZTsKLQkJ LyogU0tMIHdtIHZhbHVlcyBjdXJyZW50bHkgaW4gdXNlICovCi0JCXN0cnVjdCBza2xfcGlwZV93 bSBza2xfYWN0aXZlOworCQl1bmlvbiB7CisJCQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBpbGs7CisJ CQlzdHJ1Y3Qgc2tsX3BpcGVfd20gc2tsOworCQl9IGFjdGl2ZTsKIAkJLyogYWxsb3cgQ3hTUiBv biB0aGlzIHBpcGUgKi8KIAkJYm9vbCBjeHNyX2FsbG93ZWQ7CiAJfSB3bTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCmluZGV4IDE3ZjczNTMuLjg1MmExMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YwpAQCAtMjM1Myw3ICsyMzUzLDcgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fY29uZmln KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkvKiBDb21wdXRlIHRoZSBjdXJyZW50bHkgX2Fj dGl2ZV8gY29uZmlnICovCiAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGludGVsX2NydGMpIHsK LQkJY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKndtID0gJmludGVsX2NydGMtPndtLmFjdGl2 ZTsKKwkJY29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKndtID0gJmludGVsX2NydGMtPndtLmFj dGl2ZS5pbGs7CiAKIAkJaWYgKCF3bS0+cGlwZV9lbmFibGVkKQogCQkJY29udGludWU7CkBAIC0y NDUwLDcgKzI0NTAsOSBAQCBzdGF0aWMgdm9pZCBpbGtfbWVyZ2Vfd21fbGV2ZWwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlyZXRfd20tPmVuYWJsZSA9IHRydWU7CiAKIAlmb3JfZWFjaF9pbnRl bF9jcnRjKGRldiwgaW50ZWxfY3J0YykgewotCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAq YWN0aXZlID0gJmludGVsX2NydGMtPndtLmFjdGl2ZTsKKwkJY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZSA9CisJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJh c2Uuc3RhdGUpOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYWN0aXZlID0gJmNzdGF0 ZS0+d20ub3B0aW1hbC5pbGs7CiAJCWNvbnN0IHN0cnVjdCBpbnRlbF93bV9sZXZlbCAqd20gPSAm YWN0aXZlLT53bVtsZXZlbF07CiAKIAkJaWYgKCFhY3RpdmUtPnBpcGVfZW5hYmxlZCkKQEAgLTI1 OTgsMTQgKzI2MDAsMTUgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fcmVzdWx0cyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJLyogTFAwIHJlZ2lzdGVyIHZhbHVlcyAqLwogCWZvcl9l YWNoX2ludGVsX2NydGMoZGV2LCBpbnRlbF9jcnRjKSB7CisJCWNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUgPQorCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5i YXNlLnN0YXRlKTsKIAkJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCQljb25z dCBzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgKnIgPQotCQkJJmludGVsX2NydGMtPndtLmFjdGl2ZS53 bVswXTsKKwkJY29uc3Qgc3RydWN0IGludGVsX3dtX2xldmVsICpyID0gJmNzdGF0ZS0+d20ub3B0 aW1hbC5pbGsud21bMF07CiAKIAkJaWYgKFdBUk5fT04oIXItPmVuYWJsZSkpCiAJCQljb250aW51 ZTsKIAotCQlyZXN1bHRzLT53bV9saW5ldGltZVtwaXBlXSA9IGludGVsX2NydGMtPndtLmFjdGl2 ZS5saW5ldGltZTsKKwkJcmVzdWx0cy0+d21fbGluZXRpbWVbcGlwZV0gPSBjc3RhdGUtPndtLm9w dGltYWwuaWxrLmxpbmV0aW1lOwogCiAJCXJlc3VsdHMtPndtX3BpcGVbcGlwZV0gPQogCQkJKHIt PnByaV92YWwgPDwgV00wX1BJUEVfUExBTkVfU0hJRlQpIHwKQEAgLTM1ODksMTAgKzM1OTIsMTAg QEAgc3RhdGljIGJvb2wgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAlza2xfYWxsb2NhdGVfcGlwZV9kZGIoY3N0YXRlLCBjb25maWcsIGRkYik7CiAJc2tsX2NvbXB1 dGVfcGlwZV93bShjc3RhdGUsIGRkYiwgcGlwZV93bSk7CiAKLQlpZiAoIW1lbWNtcCgmaW50ZWxf Y3J0Yy0+d20uc2tsX2FjdGl2ZSwgcGlwZV93bSwgc2l6ZW9mKCpwaXBlX3dtKSkpCisJaWYgKCFt ZW1jbXAoJmludGVsX2NydGMtPndtLmFjdGl2ZS5za2wsIHBpcGVfd20sIHNpemVvZigqcGlwZV93 bSkpKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlpbnRlbF9jcnRjLT53bS5za2xfYWN0aXZlID0gKnBp cGVfd207CisJaW50ZWxfY3J0Yy0+d20uYWN0aXZlLnNrbCA9ICpwaXBlX3dtOwogCiAJcmV0dXJu IHRydWU7CiB9CkBAIC0zNjcwLDcgKzM2NzMsOCBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX3dt KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IHNrbF93bV92YWx1ZXMgKnJlc3VsdHMgPSAmZGV2X3ByaXYtPndtLnNrbF9y ZXN1bHRzOwotCXN0cnVjdCBza2xfcGlwZV93bSBwaXBlX3dtID0ge307CisJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwor CXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSA9ICZjc3RhdGUtPndtLm9wdGltYWwuc2tsOwog CXN0cnVjdCBpbnRlbF93bV9jb25maWcgY29uZmlnID0ge307CiAKIApAQCAtMzY4MSwxMCArMzY4 NSwxMCBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK IAogCXNrbF9jb21wdXRlX3dtX2dsb2JhbF9wYXJhbWV0ZXJzKGRldiwgJmNvbmZpZyk7CiAKLQlp ZiAoIXNrbF91cGRhdGVfcGlwZV93bShjcnRjLCAmY29uZmlnLCAmcmVzdWx0cy0+ZGRiLCAmcGlw ZV93bSkpCisJaWYgKCFza2xfdXBkYXRlX3BpcGVfd20oY3J0YywgJmNvbmZpZywgJnJlc3VsdHMt PmRkYiwgcGlwZV93bSkpCiAJCXJldHVybjsKIAotCXNrbF9jb21wdXRlX3dtX3Jlc3VsdHMoZGV2 LCAmcGlwZV93bSwgcmVzdWx0cywgaW50ZWxfY3J0Yyk7CisJc2tsX2NvbXB1dGVfd21fcmVzdWx0 cyhkZXYsIHBpcGVfd20sIHJlc3VsdHMsIGludGVsX2NydGMpOwogCXJlc3VsdHMtPmRpcnR5W2lu dGVsX2NydGMtPnBpcGVdID0gdHJ1ZTsKIAogCXNrbF91cGRhdGVfb3RoZXJfcGlwZV93bShkZXYs IGNydGMsICZjb25maWcsIHJlc3VsdHMpOwpAQCAtMzczMyw3ICszNzM3LDYgQEAgc3RhdGljIHZv aWQgaWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Ci0Jc3Ry dWN0IGludGVsX3BpcGVfd20gcGlwZV93bSA9IHt9OwogCiAJV0FSTl9PTihjc3RhdGUtPmJhc2Uu YWN0aXZlICE9IGludGVsX2NydGMtPmFjdGl2ZSk7CiAKQEAgLTM3NDksMTIgKzM3NTIsMTMgQEAg c3RhdGljIHZvaWQgaWxrX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWludGVs X3dhaXRfZm9yX3ZibGFuayhjcnRjLT5kZXYsIGludGVsX2NydGMtPnBpcGUpOwogCX0KIAotCWlu dGVsX2NvbXB1dGVfcGlwZV93bShjc3RhdGUsICZwaXBlX3dtKTsKKwlpbnRlbF9jb21wdXRlX3Bp cGVfd20oY3N0YXRlLCAmY3N0YXRlLT53bS5vcHRpbWFsLmlsayk7CiAKLQlpZiAoIW1lbWNtcCgm aW50ZWxfY3J0Yy0+d20uYWN0aXZlLCAmcGlwZV93bSwgc2l6ZW9mKHBpcGVfd20pKSkKLQkJcmV0 dXJuOworCWlmICghbWVtY21wKCZpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrLAorCQkgICAgJmNz dGF0ZS0+d20ub3B0aW1hbC5pbGssCisJCSAgICBzaXplb2YoY3N0YXRlLT53bS5vcHRpbWFsLmls aykpKTsKIAotCWludGVsX2NydGMtPndtLmFjdGl2ZSA9IHBpcGVfd207CisJaW50ZWxfY3J0Yy0+ d20uYWN0aXZlLmlsayA9IGNzdGF0ZS0+d20ub3B0aW1hbC5pbGs7CiAKIAlpbGtfcHJvZ3JhbV93 YXRlcm1hcmtzKGRldl9wcml2KTsKIH0KQEAgLTM4MDksNyArMzgxMyw4IEBAIHN0YXRpYyB2b2lk IHNrbF9waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3Qg c2tsX3dtX3ZhbHVlcyAqaHcgPSAmZGV2X3ByaXYtPndtLnNrbF9odzsKIAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IHNrbF9waXBl X3dtICphY3RpdmUgPSAmaW50ZWxfY3J0Yy0+d20uc2tsX2FjdGl2ZTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CisJ c3RydWN0IHNrbF9waXBlX3dtICphY3RpdmUgPSAmY3N0YXRlLT53bS5vcHRpbWFsLnNrbDsKIAll bnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJaW50IGxldmVsLCBpLCBtYXhfbGV2 ZWw7CiAJdWludDMyX3QgdGVtcDsKQEAgLTM4NTMsNiArMzg1OCw4IEBAIHN0YXRpYyB2b2lkIHNr bF9waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAl0ZW1wID0g aHctPnBsYW5lX3RyYW5zW3BpcGVdW1BMQU5FX0NVUlNPUl07CiAJc2tsX3BpcGVfd21fYWN0aXZl X3N0YXRlKHRlbXAsIGFjdGl2ZSwgdHJ1ZSwgdHJ1ZSwgaSwgMCk7CisKKwlpbnRlbF9jcnRjLT53 bS5hY3RpdmUuc2tsID0gKmFjdGl2ZTsKIH0KIAogdm9pZCBza2xfd21fZ2V0X2h3X3N0YXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0zODcyLDcgKzM4NzksOCBAQCBzdGF0aWMgdm9pZCBp bGtfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGls a193bV92YWx1ZXMgKmh3ID0gJmRldl9wcml2LT53bS5odzsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX3BpcGVfd20g KmFjdGl2ZSA9ICZpbnRlbF9jcnRjLT53bS5hY3RpdmU7CisJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOworCXN0cnVjdCBp bnRlbF9waXBlX3dtICphY3RpdmUgPSAmY3N0YXRlLT53bS5vcHRpbWFsLmlsazsKIAllbnVtIHBp cGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB3 bTBfcGlwZV9yZWdbXSA9IHsKIAkJW1BJUEVfQV0gPSBXTTBfUElQRUFfSUxLLApAQCAtMzkxMSw2 ICszOTE5LDggQEAgc3RhdGljIHZvaWQgaWxrX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIAkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2 ZWwrKykKIAkJCWFjdGl2ZS0+d21bbGV2ZWxdLmVuYWJsZSA9IHRydWU7CiAJfQorCisJaW50ZWxf Y3J0Yy0+d20uYWN0aXZlLmlsayA9ICphY3RpdmU7CiB9CiAKICNkZWZpbmUgX0ZXX1dNKHZhbHVl LCBwbGFuZSkgXAotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==