From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 10/14] drm/i915: Calculate pipe watermarks into CRTC state (v3) Date: Mon, 14 Sep 2015 19:19:26 -0700 Message-ID: <1442283570-26824-11-git-send-email-matthew.d.roper@intel.com> References: <1442283570-26824-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 EA61A6E97E for ; Mon, 14 Sep 2015 19:20:06 -0700 (PDT) In-Reply-To: <1442283570-26824-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 ciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaCB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgIHwgNDQgKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDM1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggOTg4NWIyNS4uNmQ2 YjI3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTMyNCw2ICszMjQsMjEgQEAgc3Ry dWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlIHsKIC8qIGRybV9tb2RlLT5wcml2YXRlX2ZsYWdz ICovCiAjZGVmaW5lIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCAxCiAKK3N0cnVjdCBpbnRlbF9w aXBlX3dtIHsKKwlzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgd21bNV07CisJdWludDMyX3QgbGluZXRp bWU7CisJYm9vbCBmYmNfd21fZW5hYmxlZDsKKwlib29sIHBpcGVfZW5hYmxlZDsKKwlib29sIHNw cml0ZXNfZW5hYmxlZDsKKwlib29sIHNwcml0ZXNfc2NhbGVkOworfTsKKworc3RydWN0IHNrbF9w aXBlX3dtIHsKKwlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHdtWzhdOworCXN0cnVjdCBza2xfd21fbGV2 ZWwgdHJhbnNfd207CisJdWludDMyX3QgbGluZXRpbWU7Cit9OworCiBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSB7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7CiAKQEAgLTQ2MSw2ICs0NzYs MTcgQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewogCiAJLyogSVZCIHNwcml0ZSBzY2FsaW5n IHcvYSAoV2FDeFNSRGlzYWJsZWRGb3JTcHJpdGVTY2FsaW5nOml2YikgKi8KIAlib29sIGRpc2Fi bGVfbHBfd207CisKKwlzdHJ1Y3QgeworCQkvKgorCQkgKiBvcHRpbWFsIHdhdGVybWFya3MsIHBy b2dyYW1tZWQgcG9zdC12Ymxhbmsgd2hlbiB0aGlzIHN0YXRlCisJCSAqIGlzIGNvbW1pdHRlZAor CQkgKi8KKwkJdW5pb24geworCQkJc3RydWN0IGludGVsX3BpcGVfd20gaWxrOworCQkJc3RydWN0 IHNrbF9waXBlX3dtIHNrbDsKKwkJfSBvcHRpbWFsOworCX0gd207CiB9OwogCiBzdHJ1Y3Qgdmx2 X3dtX3N0YXRlIHsKQEAgLTQ3MiwxNSArNDk4LDYgQEAgc3RydWN0IHZsdl93bV9zdGF0ZSB7CiAJ Ym9vbCBjeHNyOwogfTsKIAotc3RydWN0IGludGVsX3BpcGVfd20gewotCXN0cnVjdCBpbnRlbF93 bV9sZXZlbCB3bVs1XTsKLQl1aW50MzJfdCBsaW5ldGltZTsKLQlib29sIGZiY193bV9lbmFibGVk OwotCWJvb2wgcGlwZV9lbmFibGVkOwotCWJvb2wgc3ByaXRlc19lbmFibGVkOwotCWJvb2wgc3By aXRlc19zY2FsZWQ7Ci19OwotCiBzdHJ1Y3QgaW50ZWxfbW1pb19mbGlwIHsKIAlzdHJ1Y3Qgd29y a19zdHJ1Y3Qgd29yazsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKQEAgLTQ4OCwx MiArNTA1LDYgQEAgc3RydWN0IGludGVsX21taW9fZmxpcCB7CiAJc3RydWN0IGludGVsX2NydGMg KmNydGM7CiB9OwogCi1zdHJ1Y3Qgc2tsX3BpcGVfd20gewotCXN0cnVjdCBza2xfd21fbGV2ZWwg d21bOF07Ci0Jc3RydWN0IHNrbF93bV9sZXZlbCB0cmFuc193bTsKLQl1aW50MzJfdCBsaW5ldGlt ZTsKLX07Ci0KIC8qCiAgKiBUcmFja2luZyBvZiBvcGVyYXRpb25zIHRoYXQgbmVlZCB0byBiZSBw ZXJmb3JtZWQgYXQgdGhlIGJlZ2lubmluZy9lbmQgb2YgYW4KICAqIGF0b21pYyBjb21taXQsIG91 dHNpZGUgdGhlIGF0b21pYyBzZWN0aW9uIHdoZXJlIGludGVycnVwdHMgYXJlIGRpc2FibGVkLgpA QCAtNTU5LDkgKzU3MCwxMCBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7CiAJLyogcGVyLXBpcGUgd2F0 ZXJtYXJrIHN0YXRlICovCiAJc3RydWN0IHsKIAkJLyogd2F0ZXJtYXJrcyBjdXJyZW50bHkgYmVp bmcgdXNlZCAgKi8KLQkJc3RydWN0IGludGVsX3BpcGVfd20gYWN0aXZlOwotCQkvKiBTS0wgd20g dmFsdWVzIGN1cnJlbnRseSBpbiB1c2UgKi8KLQkJc3RydWN0IHNrbF9waXBlX3dtIHNrbF9hY3Rp dmU7CisJCXVuaW9uIHsKKwkJCXN0cnVjdCBpbnRlbF9waXBlX3dtIGlsazsKKwkJCXN0cnVjdCBz a2xfcGlwZV93bSBza2w7CisJCX0gYWN0aXZlOwogCQkvKiBhbGxvdyBDeFNSIG9uIHRoaXMgcGlw ZSAqLwogCQlib29sIGN4c3JfYWxsb3dlZDsKIAl9IHdtOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK aW5kZXggMjBkOTFiZC4uYjc0ZTJhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0yMzUz LDcgKzIzNTMsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9jb25maWcoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAogCS8qIENvbXB1dGUgdGhlIGN1cnJlbnRseSBfYWN0aXZlXyBjb25m aWcgKi8KIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgaW50ZWxfY3J0YykgewotCQljb25zdCBz dHJ1Y3QgaW50ZWxfcGlwZV93bSAqd20gPSAmaW50ZWxfY3J0Yy0+d20uYWN0aXZlOworCQljb25z dCBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqd20gPSAmaW50ZWxfY3J0Yy0+d20uYWN0aXZlLmlsazsK IAogCQlpZiAoIXdtLT5waXBlX2VuYWJsZWQpCiAJCQljb250aW51ZTsKQEAgLTI0NTAsNyArMjQ1 MCw5IEBAIHN0YXRpYyB2b2lkIGlsa19tZXJnZV93bV9sZXZlbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCXJldF93bS0+ZW5hYmxlID0gdHJ1ZTsKIAogCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2 LCBpbnRlbF9jcnRjKSB7Ci0JCWNvbnN0IHN0cnVjdCBpbnRlbF9waXBlX3dtICphY3RpdmUgPSAm aW50ZWxfY3J0Yy0+d20uYWN0aXZlOworCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3N0YXRlID0KKwkJCXRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSk7 CisJCWNvbnN0IHN0cnVjdCBpbnRlbF9waXBlX3dtICphY3RpdmUgPSAmY3N0YXRlLT53bS5vcHRp bWFsLmlsazsKIAkJY29uc3Qgc3RydWN0IGludGVsX3dtX2xldmVsICp3bSA9ICZhY3RpdmUtPndt W2xldmVsXTsKIAogCQlpZiAoIWFjdGl2ZS0+cGlwZV9lbmFibGVkKQpAQCAtMjU5OCwxNCArMjYw MCwxNSBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9yZXN1bHRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAKIAkvKiBMUDAgcmVnaXN0ZXIgdmFsdWVzICovCiAJZm9yX2VhY2hfaW50ZWxf Y3J0YyhkZXYsIGludGVsX2NydGMpIHsKKwkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSA9CisJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUp OwogCQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Ci0JCWNvbnN0IHN0cnVjdCBp bnRlbF93bV9sZXZlbCAqciA9Ci0JCQkmaW50ZWxfY3J0Yy0+d20uYWN0aXZlLndtWzBdOworCQlj b25zdCBzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgKnIgPSAmY3N0YXRlLT53bS5vcHRpbWFsLmlsay53 bVswXTsKIAogCQlpZiAoV0FSTl9PTighci0+ZW5hYmxlKSkKIAkJCWNvbnRpbnVlOwogCi0JCXJl c3VsdHMtPndtX2xpbmV0aW1lW3BpcGVdID0gaW50ZWxfY3J0Yy0+d20uYWN0aXZlLmxpbmV0aW1l OworCQlyZXN1bHRzLT53bV9saW5ldGltZVtwaXBlXSA9IGNzdGF0ZS0+d20ub3B0aW1hbC5pbGsu bGluZXRpbWU7CiAKIAkJcmVzdWx0cy0+d21fcGlwZVtwaXBlXSA9CiAJCQkoci0+cHJpX3ZhbCA8 PCBXTTBfUElQRV9QTEFORV9TSElGVCkgfApAQCAtMzU4OSwxMCArMzU5MiwxMCBAQCBzdGF0aWMg Ym9vbCBza2xfdXBkYXRlX3BpcGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXNrbF9hbGxv Y2F0ZV9waXBlX2RkYihjc3RhdGUsIGNvbmZpZywgZGRiKTsKIAlza2xfY29tcHV0ZV9waXBlX3dt KGNzdGF0ZSwgZGRiLCBwaXBlX3dtKTsKIAotCWlmICghbWVtY21wKCZpbnRlbF9jcnRjLT53bS5z a2xfYWN0aXZlLCBwaXBlX3dtLCBzaXplb2YoKnBpcGVfd20pKSkKKwlpZiAoIW1lbWNtcCgmaW50 ZWxfY3J0Yy0+d20uYWN0aXZlLnNrbCwgcGlwZV93bSwgc2l6ZW9mKCpwaXBlX3dtKSkpCiAJCXJl dHVybiBmYWxzZTsKIAotCWludGVsX2NydGMtPndtLnNrbF9hY3RpdmUgPSAqcGlwZV93bTsKKwlp bnRlbF9jcnRjLT53bS5hY3RpdmUuc2tsID0gKnBpcGVfd207CiAKIAlyZXR1cm4gdHJ1ZTsKIH0K QEAgLTM2NTAsMTcgKzM2NTMsMTggQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0 cnVjdCBza2xfd21fdmFsdWVzICpyZXN1bHRzID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsK LQlzdHJ1Y3Qgc2tsX3BpcGVfd20gcGlwZV93bSA9IHt9OworCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKKwlzdHJ1Y3Qg c2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRlLT53bS5vcHRpbWFsLnNrbDsKIAlzdHJ1Y3Qg aW50ZWxfd21fY29uZmlnIGNvbmZpZyA9IHt9OwogCiAJbWVtc2V0KHJlc3VsdHMsIDAsIHNpemVv ZigqcmVzdWx0cykpOwogCiAJc2tsX2NvbXB1dGVfd21fZ2xvYmFsX3BhcmFtZXRlcnMoZGV2LCAm Y29uZmlnKTsKIAotCWlmICghc2tsX3VwZGF0ZV9waXBlX3dtKGNydGMsICZjb25maWcsICZyZXN1 bHRzLT5kZGIsICZwaXBlX3dtKSkKKwlpZiAoIXNrbF91cGRhdGVfcGlwZV93bShjcnRjLCAmY29u ZmlnLCAmcmVzdWx0cy0+ZGRiLCBwaXBlX3dtKSkKIAkJcmV0dXJuOwogCi0Jc2tsX2NvbXB1dGVf d21fcmVzdWx0cyhkZXYsICZwaXBlX3dtLCByZXN1bHRzLCBpbnRlbF9jcnRjKTsKKwlza2xfY29t cHV0ZV93bV9yZXN1bHRzKGRldiwgcGlwZV93bSwgcmVzdWx0cywgaW50ZWxfY3J0Yyk7CiAJcmVz dWx0cy0+ZGlydHlbaW50ZWxfY3J0Yy0+cGlwZV0gPSB0cnVlOwogCiAJc2tsX3VwZGF0ZV9vdGhl cl9waXBlX3dtKGRldiwgY3J0YywgJmNvbmZpZywgcmVzdWx0cyk7CkBAIC0zNzA5LDcgKzM3MTMs NiBAQCBzdGF0aWMgdm9pZCBpbGtfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CiAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PnN0YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfcGlwZV93bSBwaXBlX3dtID0ge307CiAKIAlXQVJOX09O KGNzdGF0ZS0+YmFzZS5hY3RpdmUgIT0gaW50ZWxfY3J0Yy0+YWN0aXZlKTsKIApAQCAtMzcyNSwx MiArMzcyOCwxMyBAQCBzdGF0aWMgdm9pZCBpbGtfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGNydGMtPmRldiwgaW50ZWxfY3J0Yy0+cGlw ZSk7CiAJfQogCi0JaW50ZWxfY29tcHV0ZV9waXBlX3dtKGNzdGF0ZSwgJnBpcGVfd20pOworCWlu dGVsX2NvbXB1dGVfcGlwZV93bShjc3RhdGUsICZjc3RhdGUtPndtLm9wdGltYWwuaWxrKTsKIAot CWlmICghbWVtY21wKCZpbnRlbF9jcnRjLT53bS5hY3RpdmUsICZwaXBlX3dtLCBzaXplb2YocGlw ZV93bSkpKQotCQlyZXR1cm47CisJaWYgKCFtZW1jbXAoJmludGVsX2NydGMtPndtLmFjdGl2ZS5p bGssCisJCSAgICAmY3N0YXRlLT53bS5vcHRpbWFsLmlsaywKKwkJICAgIHNpemVvZihjc3RhdGUt PndtLm9wdGltYWwuaWxrKSkpOwogCi0JaW50ZWxfY3J0Yy0+d20uYWN0aXZlID0gcGlwZV93bTsK KwlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0gY3N0YXRlLT53bS5vcHRpbWFsLmlsazsKIAog CWlsa19wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwogfQpAQCAtMzc4NSw3ICszNzg5LDgg QEAgc3RhdGljIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBza2xfd21fdmFsdWVzICpodyA9ICZkZXZfcHJpdi0+d20uc2tsX2h3Owog CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlz dHJ1Y3Qgc2tsX3BpcGVfd20gKmFjdGl2ZSA9ICZpbnRlbF9jcnRjLT53bS5za2xfYWN0aXZlOwor CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGMtPnN0YXRlKTsKKwlzdHJ1Y3Qgc2tsX3BpcGVfd20gKmFjdGl2ZSA9ICZjc3RhdGUtPndtLm9w dGltYWwuc2tsOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAlpbnQgbGV2 ZWwsIGksIG1heF9sZXZlbDsKIAl1aW50MzJfdCB0ZW1wOwpAQCAtMzgyOSw2ICszODM0LDggQEAg c3RhdGljIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKIAogCXRlbXAgPSBody0+cGxhbmVfdHJhbnNbcGlwZV1bUExBTkVfQ1VSU09SXTsKIAlza2xf cGlwZV93bV9hY3RpdmVfc3RhdGUodGVtcCwgYWN0aXZlLCB0cnVlLCB0cnVlLCBpLCAwKTsKKwor CWludGVsX2NydGMtPndtLmFjdGl2ZS5za2wgPSAqYWN0aXZlOwogfQogCiB2b2lkIHNrbF93bV9n ZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKQEAgLTM4NDgsNyArMzg1NSw4IEBA IHN0YXRpYyB2b2lkIGlsa19waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKIAlzdHJ1Y3QgaWxrX3dtX3ZhbHVlcyAqaHcgPSAmZGV2X3ByaXYtPndtLmh3OwogCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3Qg aW50ZWxfcGlwZV93bSAqYWN0aXZlID0gJmludGVsX2NydGMtPndtLmFjdGl2ZTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0 ZSk7CisJc3RydWN0IGludGVsX3BpcGVfd20gKmFjdGl2ZSA9ICZjc3RhdGUtPndtLm9wdGltYWwu aWxrOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAlzdGF0aWMgY29uc3Qg dW5zaWduZWQgaW50IHdtMF9waXBlX3JlZ1tdID0gewogCQlbUElQRV9BXSA9IFdNMF9QSVBFQV9J TEssCkBAIC0zODg3LDYgKzM4OTUsOCBAQCBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdf c3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0g bWF4X2xldmVsOyBsZXZlbCsrKQogCQkJYWN0aXZlLT53bVtsZXZlbF0uZW5hYmxlID0gdHJ1ZTsK IAl9CisKKwlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0gKmFjdGl2ZTsKIH0KIAogI2RlZmlu ZSBfRldfV00odmFsdWUsIHBsYW5lKSBcCi0tIAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK