From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vidya Srinivas Subject: [PATCH 02/15] drm/i915/skl+: refactore WM calculation for NV12 Date: Thu, 4 Jan 2018 10:44:05 +0000 (UTC) Message-ID: <1515319159-30543-3-git-send-email-vidya.srinivas@intel.com> References: <1515319159-30543-1-git-send-email-vidya.srinivas@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4591F6E0DD for ; Thu, 4 Jan 2018 10:45:59 +0000 (UTC) Date: Sun, 7 Jan 2018 15:29:06 +0530 In-Reply-To: <1515319159-30543-1-git-send-email-vidya.srinivas@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 RnJvbTogTWFoZXNoIEt1bWFyIDxtYWhlc2gxLmt1bWFyQGludGVsLmNvbT4KCkN1cnJlbnQgY29k ZSBjYWxjdWxhdGVzIEREQiBmb3IgcGxhbmFyIGZvcm1hdHMgaW4gc3VjaCBhIHdheSB0aGF0IHdl CnN0b3JlIEREQiBvZiBwbGFuZS0wIGluIHBsYW5lIDEgJiB2aWNlLXZlcnNhLgpJbiBvcmRlciB0 byBtYWtlIHRoaXMgY2xlYW4gdGhpcyBwYXRjaCByZWZhY3RvcnMgV00vRERCIGNhbGN1bGF0aW9u IGZvcgpOVjEyIHBsYW5hciBmb3JtYXRzLgoKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEt1bWFyIDxt YWhlc2gxLmt1bWFyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgfCAxMjAgKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyks IDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDU2MDQ3ZjguLjk2 MjcxN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTQzNCw3ICsxNDM0LDcgQEAgc3Rh dGljIGlubGluZSBib29sIHNrbF9kZGJfZW50cnlfZXF1YWwoY29uc3Qgc3RydWN0IHNrbF9kZGJf ZW50cnkgKmUxLAogCiBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIHsKIAlzdHJ1Y3Qgc2tsX2Rk Yl9lbnRyeSBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsgLyogcGFja2Vk L3V2ICovCi0Jc3RydWN0IHNrbF9kZGJfZW50cnkgeV9wbGFuZVtJOTE1X01BWF9QSVBFU11bSTkx NV9NQVhfUExBTkVTXTsKKwlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSB1dl9wbGFuZVtJOTE1X01BWF9Q SVBFU11bSTkxNV9NQVhfUExBTkVTXTsKIH07CiAKIHN0cnVjdCBza2xfZGRiX3ZhbHVlcyB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDljOGFlZjkuLjVmNWUwNzAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCkBAIC01MTMsNiArNTEzLDcgQEAgc3RydWN0IGludGVsX3BpcGVfd20g ewogc3RydWN0IHNrbF9wbGFuZV93bSB7CiAJc3RydWN0IHNrbF93bV9sZXZlbCB3bVs4XTsKIAlz dHJ1Y3Qgc2tsX3dtX2xldmVsIHRyYW5zX3dtOworCWJvb2wgaXNfbnYxMjsKIH07CiAKIHN0cnVj dCBza2xfcGlwZV93bSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBlMjU5OGNmLi4xNWVk YjlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTQwMDQsOSArNDAwNCw5IEBAIGludCBz a2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKIHN0YXRpYyB1bnNpZ25lZCBpbnQKIHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKIAkJCSAgICAgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlLAotCQkJICAgICBpbnQgeSkKKwkJCSAgICAgY29uc3Qg aW50IHBsYW5lKQogewotCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwc3RhdGUtPnBsYW5lKTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9f aW50ZWxfcGxhbmUocHN0YXRlLT5wbGFuZSk7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpp bnRlbF9wc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwc3RhdGUpOwogCXVpbnQzMl90IGRh dGFfcmF0ZTsKIAl1aW50MzJfdCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CkBAIC00MDIwLDkgKzQw MjAsOSBAQCBza2xfcGxhbmVfcmVsYXRpdmVfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCiAJZmIgPSBwc3RhdGUtPmZiOwogCWZvcm1hdCA9IGZiLT5mb3Jt YXQtPmZvcm1hdDsKIAotCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKQorCWlmIChpbnRl bF9wbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKQogCQlyZXR1cm4gMDsKLQlpZiAoeSAmJiBmb3Jt YXQgIT0gRFJNX0ZPUk1BVF9OVjEyKQorCWlmIChwbGFuZSA9PSAxICYmIGZvcm1hdCAhPSBEUk1f Rk9STUFUX05WMTIpCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTQwMzMsMTkgKzQwMzMsMTQgQEAg c2tsX3BsYW5lX3JlbGF0aXZlX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3N0YXRlLAogCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJmludGVsX3BzdGF0ZS0+YmFzZS5z cmMpID4+IDE2OwogCWhlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5iYXNl LnNyYykgPj4gMTY7CiAKLQkvKiBmb3IgcGxhbmFyIGZvcm1hdCAqLwotCWlmIChmb3JtYXQgPT0g RFJNX0ZPUk1BVF9OVjEyKSB7Ci0JCWlmICh5KSAgLyogeS1wbGFuZSBkYXRhIHJhdGUgKi8KLQkJ CWRhdGFfcmF0ZSA9IHdpZHRoICogaGVpZ2h0ICoKLQkJCQlmYi0+Zm9ybWF0LT5jcHBbMF07Ci0J CWVsc2UgICAgLyogdXYtcGxhbmUgZGF0YSByYXRlICovCi0JCQlkYXRhX3JhdGUgPSAod2lkdGgg LyAyKSAqIChoZWlnaHQgLyAyKSAqCi0JCQkJZmItPmZvcm1hdC0+Y3BwWzFdOwotCX0gZWxzZSB7 Ci0JCS8qIGZvciBwYWNrZWQgZm9ybWF0cyAqLwotCQlkYXRhX3JhdGUgPSB3aWR0aCAqIGhlaWdo dCAqIGZiLT5mb3JtYXQtPmNwcFswXTsKKwkvKiBVViBwbGFuZSBkb2VzIDEvMiBwaXhlbCBzdWIt c2FtcGxpbmcgKi8KKwlpZiAocGxhbmUgPT0gMSAmJiBmb3JtYXQgPT0gRFJNX0ZPUk1BVF9OVjEy KSB7CisJCXdpZHRoIC89IDI7CisJCWhlaWdodCAvPSAyOwogCX0KIAorCWRhdGFfcmF0ZSA9IHdp ZHRoICogaGVpZ2h0ICogZmItPmZvcm1hdC0+Y3BwW3BsYW5lXTsKKwogCWRvd25fc2NhbGVfYW1v dW50ID0gc2tsX3BsYW5lX2Rvd25zY2FsZV9hbW91bnQoY3N0YXRlLCBpbnRlbF9wc3RhdGUpOwog CiAJcmV0dXJuIG11bF9yb3VuZF91cF91MzJfZml4ZWQxNihkYXRhX3JhdGUsIGRvd25fc2NhbGVf YW1vdW50KTsKQEAgLTQwNTgsOCArNDA1Myw4IEBAIHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3Jh dGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKICAqLwogc3RhdGljIHVu c2lnbmVkIGludAogc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZSwKLQkJCQkgdW5zaWduZWQgKnBsYW5lX2RhdGFfcmF0 ZSwKLQkJCQkgdW5zaWduZWQgKnBsYW5lX3lfZGF0YV9yYXRlKQorCQkJCSB1bnNpZ25lZCBpbnQg KnBsYW5lX2RhdGFfcmF0ZSwKKwkJCQkgdW5zaWduZWQgaW50ICp1dl9wbGFuZV9kYXRhX3JhdGUp CiB7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGUgPSAmaW50ZWxfY3N0YXRlLT5iYXNl OwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+c3RhdGU7CkBAIC00 MDc1LDE3ICs0MDcwLDE2IEBAIHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCiAJCWVudW0gcGxhbmVfaWQgcGxhbmVf aWQgPSB0b19pbnRlbF9wbGFuZShwbGFuZSktPmlkOwogCQl1bnNpZ25lZCBpbnQgcmF0ZTsKIAot CQkvKiBwYWNrZWQvdXYgKi8KIAkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9kYXRhX3JhdGUo aW50ZWxfY3N0YXRlLAogCQkJCQkJICAgIHBzdGF0ZSwgMCk7CiAJCXBsYW5lX2RhdGFfcmF0ZVtw bGFuZV9pZF0gPSByYXRlOwogCiAJCXRvdGFsX2RhdGFfcmF0ZSArPSByYXRlOwogCi0JCS8qIHkt cGxhbmUgKi8KKwkJLyogdXYtcGxhbmUgKi8KIAkJcmF0ZSA9IHNrbF9wbGFuZV9yZWxhdGl2ZV9k YXRhX3JhdGUoaW50ZWxfY3N0YXRlLAogCQkJCQkJICAgIHBzdGF0ZSwgMSk7Ci0JCXBsYW5lX3lf ZGF0YV9yYXRlW3BsYW5lX2lkXSA9IHJhdGU7CisJCXV2X3BsYW5lX2RhdGFfcmF0ZVtwbGFuZV9p ZF0gPSByYXRlOwogCiAJCXRvdGFsX2RhdGFfcmF0ZSArPSByYXRlOwogCX0KQEAgLTQwOTQsOCAr NDA4OCw3IEBAIHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICppbnRlbF9jc3RhdGUsCiB9CiAKIHN0YXRpYyB1aW50MTZfdAotc2tsX2RkYl9t aW5fYWxsb2MoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlLAotCQkgIGNvbnN0 IGludCB5KQorc2tsX2RkYl9taW5fYWxsb2MoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq cHN0YXRlLCBjb25zdCBpbnQgcGxhbmUpCiB7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIg PSBwc3RhdGUtPmZiOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlID0g dG9faW50ZWxfcGxhbmVfc3RhdGUocHN0YXRlKTsKQEAgLTQxMDYsOCArNDA5OSw4IEBAIHNrbF9k ZGJfbWluX2FsbG9jKGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSwKIAlpZiAo V0FSTl9PTighZmIpKQogCQlyZXR1cm4gMDsKIAotCS8qIEZvciBwYWNrZWQgZm9ybWF0cywgbm8g eS1wbGFuZSwgcmV0dXJuIDAgKi8KLQlpZiAoeSAmJiBmYi0+Zm9ybWF0LT5mb3JtYXQgIT0gRFJN X0ZPUk1BVF9OVjEyKQorCS8qIEZvciBwYWNrZWQgZm9ybWF0cywgYW5kIHV2LXBsYW5lLCByZXR1 cm4gMCAqLworCWlmIChwbGFuZSA9PSAxICYmIGZiLT5mb3JtYXQtPmZvcm1hdCAhPSBEUk1fRk9S TUFUX05WMTIpCiAJCXJldHVybiAwOwogCiAJLyogRm9yIE5vbiBZLXRpbGUgcmV0dXJuIDgtYmxv Y2tzICovCkBAIC00MTI2LDE1ICs0MTE5LDEyIEBAIHNrbF9kZGJfbWluX2FsbG9jKGNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSwKIAlzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgm aW50ZWxfcHN0YXRlLT5iYXNlLnNyYykgPj4gMTY7CiAKIAkvKiBIYWx2ZSBVViBwbGFuZSB3aWR0 aCBhbmQgaGVpZ2h0IGZvciBOVjEyICovCi0JaWYgKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1f Rk9STUFUX05WMTIgJiYgIXkpIHsKKwlpZiAocGxhbmUgPT0gMSkgewogCQlzcmNfdyAvPSAyOwog CQlzcmNfaCAvPSAyOwogCX0KIAotCWlmIChmYi0+Zm9ybWF0LT5mb3JtYXQgPT0gRFJNX0ZPUk1B VF9OVjEyICYmICF5KQotCQlwbGFuZV9icHAgPSBmYi0+Zm9ybWF0LT5jcHBbMV07Ci0JZWxzZQot CQlwbGFuZV9icHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CisJcGxhbmVfYnBwID0gZmItPmZvcm1h dC0+Y3BwW3BsYW5lXTsKIAogCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHBzdGF0ZS0+cm90 YXRpb24pKSB7CiAJCXN3aXRjaCAocGxhbmVfYnBwKSB7CkBAIC00MTYyLDcgKzQxNTIsNyBAQCBz a2xfZGRiX21pbl9hbGxvYyhjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUsCiAK IHN0YXRpYyB2b2lkCiBza2xfZGRiX2NhbGNfbWluKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUsIGludCBudW1fYWN0aXZlLAotCQkgdWludDE2X3QgKm1pbmltdW0sIHVpbnQx Nl90ICp5X21pbmltdW0pCisJCSB1aW50MTZfdCAqbWluaW11bSwgdWludDE2X3QgKnV2X21pbmlt dW0pCiB7CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlOwogCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOwpAQCAtNDE3Nyw3ICs0MTY3LDcgQEAgc2tsX2RkYl9jYWxjX21pbihj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLCBpbnQgbnVtX2FjdGl2ZSwKIAkJ CWNvbnRpbnVlOwogCiAJCW1pbmltdW1bcGxhbmVfaWRdID0gc2tsX2RkYl9taW5fYWxsb2MocHN0 YXRlLCAwKTsKLQkJeV9taW5pbXVtW3BsYW5lX2lkXSA9IHNrbF9kZGJfbWluX2FsbG9jKHBzdGF0 ZSwgMSk7CisJCXV2X21pbmltdW1bcGxhbmVfaWRdID0gc2tsX2RkYl9taW5fYWxsb2MocHN0YXRl LCAxKTsKIAl9CiAKIAltaW5pbXVtW1BMQU5FX0NVUlNPUl0gPSBza2xfY3Vyc29yX2FsbG9jYXRp b24obnVtX2FjdGl2ZSk7CkBAIC00MTk1LDE3ICs0MTg1LDE3IEBAIHNrbF9hbGxvY2F0ZV9waXBl X2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCXN0cnVjdCBza2xfZGRiX2Vu dHJ5ICphbGxvYyA9ICZjc3RhdGUtPndtLnNrbC5kZGI7CiAJdWludDE2X3QgYWxsb2Nfc2l6ZSwg c3RhcnQ7CiAJdWludDE2X3QgbWluaW11bVtJOTE1X01BWF9QTEFORVNdID0ge307Ci0JdWludDE2 X3QgeV9taW5pbXVtW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKKwl1aW50MTZfdCB1dl9taW5pbXVt W0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKIAl1bnNpZ25lZCBpbnQgdG90YWxfZGF0YV9yYXRlOwog CWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7CiAJaW50IG51bV9hY3RpdmU7Ci0JdW5zaWduZWQgcGxh bmVfZGF0YV9yYXRlW0k5MTVfTUFYX1BMQU5FU10gPSB7fTsKLQl1bnNpZ25lZCBwbGFuZV95X2Rh dGFfcmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CisJdW5zaWduZWQgaW50IHBsYW5lX2RhdGFf cmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CisJdW5zaWduZWQgaW50IHV2X3BsYW5lX2RhdGFf cmF0ZVtJOTE1X01BWF9QTEFORVNdID0ge307CiAJdWludDE2X3QgdG90YWxfbWluX2Jsb2NrcyA9 IDA7CiAKIAkvKiBDbGVhciB0aGUgcGFydGl0aW9uaW5nIGZvciBkaXNhYmxlZCBwbGFuZXMuICov CiAJbWVtc2V0KGRkYi0+cGxhbmVbcGlwZV0sIDAsIHNpemVvZihkZGItPnBsYW5lW3BpcGVdKSk7 Ci0JbWVtc2V0KGRkYi0+eV9wbGFuZVtwaXBlXSwgMCwgc2l6ZW9mKGRkYi0+eV9wbGFuZVtwaXBl XSkpOworCW1lbXNldChkZGItPnV2X3BsYW5lW3BpcGVdLCAwLCBzaXplb2YoZGRiLT51dl9wbGFu ZVtwaXBlXSkpOwogCiAJaWYgKFdBUk5fT04oIXN0YXRlKSkKIAkJcmV0dXJuIDA7CkBAIC00MjIw LDcgKzQyMTAsNyBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSwKIAlpZiAoYWxsb2Nfc2l6ZSA9PSAwKQogCQlyZXR1cm4gMDsKIAotCXNrbF9k ZGJfY2FsY19taW4oY3N0YXRlLCBudW1fYWN0aXZlLCBtaW5pbXVtLCB5X21pbmltdW0pOworCXNr bF9kZGJfY2FsY19taW4oY3N0YXRlLCBudW1fYWN0aXZlLCBtaW5pbXVtLCB1dl9taW5pbXVtKTsK IAogCS8qCiAJICogMS4gQWxsb2NhdGUgdGhlIG1pbmludW0gcmVxdWlyZWQgYmxvY2tzIGZvciBl YWNoIGFjdGl2ZSBwbGFuZQpAQCAtNDIzMCw3ICs0MjIwLDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVf ZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAKIAlmb3JfZWFjaF9wbGFuZV9p ZF9vbl9jcnRjKGludGVsX2NydGMsIHBsYW5lX2lkKSB7CiAJCXRvdGFsX21pbl9ibG9ja3MgKz0g bWluaW11bVtwbGFuZV9pZF07Ci0JCXRvdGFsX21pbl9ibG9ja3MgKz0geV9taW5pbXVtW3BsYW5l X2lkXTsKKwkJdG90YWxfbWluX2Jsb2NrcyArPSB1dl9taW5pbXVtW3BsYW5lX2lkXTsKIAl9CiAK IAlpZiAodG90YWxfbWluX2Jsb2NrcyA+IGFsbG9jX3NpemUpIHsKQEAgLTQyNTIsMTQgKzQyNDIs MTQgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3Rh dGUsCiAJICovCiAJdG90YWxfZGF0YV9yYXRlID0gc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRh X3JhdGUoY3N0YXRlLAogCQkJCQkJCSAgIHBsYW5lX2RhdGFfcmF0ZSwKLQkJCQkJCQkgICBwbGFu ZV95X2RhdGFfcmF0ZSk7CisJCQkJCQkJICAgdXZfcGxhbmVfZGF0YV9yYXRlKTsKIAlpZiAodG90 YWxfZGF0YV9yYXRlID09IDApCiAJCXJldHVybiAwOwogCiAJc3RhcnQgPSBhbGxvYy0+c3RhcnQ7 CiAJZm9yX2VhY2hfcGxhbmVfaWRfb25fY3J0YyhpbnRlbF9jcnRjLCBwbGFuZV9pZCkgewotCQl1 bnNpZ25lZCBpbnQgZGF0YV9yYXRlLCB5X2RhdGFfcmF0ZTsKLQkJdWludDE2X3QgcGxhbmVfYmxv Y2tzLCB5X3BsYW5lX2Jsb2NrcyA9IDA7CisJCXVuc2lnbmVkIGludCBkYXRhX3JhdGUsIHV2X2Rh dGFfcmF0ZTsKKwkJdWludDE2X3QgcGxhbmVfYmxvY2tzLCB1dl9wbGFuZV9ibG9ja3M7CiAKIAkJ aWYgKHBsYW5lX2lkID09IFBMQU5FX0NVUlNPUikKIAkJCWNvbnRpbnVlOwpAQCAtNDI4MywyMSAr NDI3MywyMCBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKIAogCQlzdGFydCArPSBwbGFuZV9ibG9ja3M7CiAKLQkJLyoKLQkJICogYWxsb2Nh dGlvbiBmb3IgeV9wbGFuZSBwYXJ0IG9mIHBsYW5hciBmb3JtYXQ6Ci0JCSAqLwotCQl5X2RhdGFf cmF0ZSA9IHBsYW5lX3lfZGF0YV9yYXRlW3BsYW5lX2lkXTsKKwkJLyogQWxsb2NhdGUgRERCIGZv ciBVViBwbGFuZSBmb3IgcGxhbmFyIGZvcm1hdC9OVjEyICovCisJCXV2X2RhdGFfcmF0ZSA9IHV2 X3BsYW5lX2RhdGFfcmF0ZVtwbGFuZV9pZF07CiAKLQkJeV9wbGFuZV9ibG9ja3MgPSB5X21pbmlt dW1bcGxhbmVfaWRdOwotCQl5X3BsYW5lX2Jsb2NrcyArPSBkaXZfdTY0KCh1aW50NjRfdClhbGxv Y19zaXplICogeV9kYXRhX3JhdGUsCisJCXV2X3BsYW5lX2Jsb2NrcyA9IHV2X21pbmltdW1bcGxh bmVfaWRdOworCQl1dl9wbGFuZV9ibG9ja3MgKz0gZGl2X3U2NCgodWludDY0X3QpYWxsb2Nfc2l6 ZSAqIHV2X2RhdGFfcmF0ZSwKIAkJCQkJdG90YWxfZGF0YV9yYXRlKTsKIAotCQlpZiAoeV9kYXRh X3JhdGUpIHsKLQkJCWRkYi0+eV9wbGFuZVtwaXBlXVtwbGFuZV9pZF0uc3RhcnQgPSBzdGFydDsK LQkJCWRkYi0+eV9wbGFuZVtwaXBlXVtwbGFuZV9pZF0uZW5kID0gc3RhcnQgKyB5X3BsYW5lX2Js b2NrczsKKwkJaWYgKHV2X2RhdGFfcmF0ZSkgeworCQkJZGRiLT51dl9wbGFuZVtwaXBlXVtwbGFu ZV9pZF0uc3RhcnQgPSBzdGFydDsKKwkJCWRkYi0+dXZfcGxhbmVbcGlwZV1bcGxhbmVfaWRdLmVu ZCA9IHN0YXJ0ICsKKwkJCQkJCQkJdXZfcGxhbmVfYmxvY2tzOwogCQl9CiAKLQkJc3RhcnQgKz0g eV9wbGFuZV9ibG9ja3M7CisJCXN0YXJ0ICs9IHV2X3BsYW5lX2Jsb2NrczsKIAl9CiAKIAlyZXR1 cm4gMDsKQEAgLTQ0MjUsOCArNDQxNCw3IEBAIHNrbF9jb21wdXRlX3BsYW5lX3dtX3BhcmFtcyhj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXdwLT53aWR0aCA9IGRy bV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKIAl9CiAKLQl3cC0+ Y3BwID0gKGZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpID8gZmItPmZvcm1h dC0+Y3BwWzFdIDoKLQkJCQkJCQkgICAgZmItPmZvcm1hdC0+Y3BwWzBdOworCXdwLT5jcHAgPSBm Yi0+Zm9ybWF0LT5jcHBbMF07CiAJd3AtPnBsYW5lX3BpeGVsX3JhdGUgPSBza2xfYWRqdXN0ZWRf cGxhbmVfcGl4ZWxfcmF0ZShjc3RhdGUsCiAJCQkJCQkJICAgICBpbnRlbF9wc3RhdGUpOwogCkBA IC00NjE4LDYgKzQ2MDYsOSBAQCBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJcmV0dXJuIHJldDsKIAl9CiAKKwlpZiAoaW50 ZWxfcHN0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmZvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIpCisJ CXdtLT5pc19udjEyID0gdHJ1ZTsKKwogCXJldHVybiAwOwogfQogCkBAIC00Nzg4LDEwICs0Nzc5 LDE5IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YywKIAlza2xfd3JpdGVfd21fbGV2ZWwoZGV2X3ByaXYsIFBMQU5FX1dNX1RSQU5T KHBpcGUsIHBsYW5lX2lkKSwKIAkJCSAgICZ3bS0+dHJhbnNfd20pOwogCi0Jc2tsX2RkYl9lbnRy eV93cml0ZShkZXZfcHJpdiwgUExBTkVfQlVGX0NGRyhwaXBlLCBwbGFuZV9pZCksCi0JCQkgICAg JmRkYi0+cGxhbmVbcGlwZV1bcGxhbmVfaWRdKTsKLQlza2xfZGRiX2VudHJ5X3dyaXRlKGRldl9w cml2LCBQTEFORV9OVjEyX0JVRl9DRkcocGlwZSwgcGxhbmVfaWQpLAotCQkJICAgICZkZGItPnlf cGxhbmVbcGlwZV1bcGxhbmVfaWRdKTsKKwlpZiAod20tPmlzX252MTIpIHsKKwkJc2tsX2RkYl9l bnRyeV93cml0ZShkZXZfcHJpdiwgUExBTkVfQlVGX0NGRyhwaXBlLCBwbGFuZV9pZCksCisJCQkJ JmRkYi0+dXZfcGxhbmVbcGlwZV1bcGxhbmVfaWRdKTsKKwkJc2tsX2RkYl9lbnRyeV93cml0ZShk ZXZfcHJpdiwKKwkJCQkgICAgUExBTkVfTlYxMl9CVUZfQ0ZHKHBpcGUsIHBsYW5lX2lkKSwKKwkJ CQkgICAgJmRkYi0+cGxhbmVbcGlwZV1bcGxhbmVfaWRdKTsKKwl9IGVsc2UgeworCQlza2xfZGRi X2VudHJ5X3dyaXRlKGRldl9wcml2LCBQTEFORV9CVUZfQ0ZHKHBpcGUsIHBsYW5lX2lkKSwKKwkJ CQkmZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9pZF0pOworCQlza2xfZGRiX2VudHJ5X3dyaXRlKGRl dl9wcml2LAorCQkJCSAgICBQTEFORV9OVjEyX0JVRl9DRkcocGlwZSwgcGxhbmVfaWQpLAorCQkJ CSAgICAmZGRiLT51dl9wbGFuZVtwaXBlXVtwbGFuZV9pZF0pOworCX0KIH0KIAogc3RhdGljIHZv aWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKQEAg LTQ5MDYsOCArNDkwNiw4IEBAIHNrbF9kZGJfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCiAJCWlmIChza2xfZGRiX2VudHJ5X2VxdWFsKCZjdXJf ZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9pZF0sCiAJCQkJCSZuZXdfZGRiLT5wbGFuZVtwaXBlXVtw bGFuZV9pZF0pICYmCi0JCSAgICBza2xfZGRiX2VudHJ5X2VxdWFsKCZjdXJfZGRiLT55X3BsYW5l W3BpcGVdW3BsYW5lX2lkXSwKLQkJCQkJJm5ld19kZGItPnlfcGxhbmVbcGlwZV1bcGxhbmVfaWRd KSkKKwkJICAgIHNrbF9kZGJfZW50cnlfZXF1YWwoJmN1cl9kZGItPnV2X3BsYW5lW3BpcGVdW3Bs YW5lX2lkXSwKKwkJCQkJJm5ld19kZGItPnV2X3BsYW5lW3BpcGVdW3BsYW5lX2lkXSkpCiAJCQlj b250aW51ZTsKIAogCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0 YXRlLCBwbGFuZSk7CkBAIC01MDAxLDggKzUwMDEsOCBAQCBza2xfY29weV93bV9mb3JfcGlwZShz dHJ1Y3Qgc2tsX2RkYl92YWx1ZXMgKmRzdCwKIAkJICAgICBzdHJ1Y3Qgc2tsX2RkYl92YWx1ZXMg KnNyYywKIAkJICAgICBlbnVtIHBpcGUgcGlwZSkKIHsKLQltZW1jcHkoZHN0LT5kZGIueV9wbGFu ZVtwaXBlXSwgc3JjLT5kZGIueV9wbGFuZVtwaXBlXSwKLQkgICAgICAgc2l6ZW9mKGRzdC0+ZGRi LnlfcGxhbmVbcGlwZV0pKTsKKwltZW1jcHkoZHN0LT5kZGIudXZfcGxhbmVbcGlwZV0sIHNyYy0+ ZGRiLnV2X3BsYW5lW3BpcGVdLAorCSAgICAgICBzaXplb2YoZHN0LT5kZGIudXZfcGxhbmVbcGlw ZV0pKTsKIAltZW1jcHkoZHN0LT5kZGIucGxhbmVbcGlwZV0sIHNyYy0+ZGRiLnBsYW5lW3BpcGVd LAogCSAgICAgICBzaXplb2YoZHN0LT5kZGIucGxhbmVbcGlwZV0pKTsKIH0KLS0gCjIuNy40Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK