From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 05/14] drm/i915/skl: Simplify wm structures slightly (v2) Date: Mon, 14 Sep 2015 19:19:21 -0700 Message-ID: <1442283570-26824-6-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 9761A6E97E 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 QSBidW5jaCBvZiBTS0wgd2F0ZXJtYXJrLXJlbGF0ZWQgc3RydWN0dXJlcyBoYXZlIHRoZSBjdXJz b3IgcGxhbmUgYXMgYQpzZXBhcmF0ZSBlbnRyeSBmcm9tIHRoZSByZXN0IG9mIHRoZSBwbGFuZXMu ICBTaW5jZSBhIHByZXZpb3VzIHBhdGNoCnVwZGF0ZWQgSTkxNV9NQVhfUExBTkVTIHN1Y2ggdGhh dCB0aG9zZSBwbGFuZSBhcnJheXMgbm93IGhhdmUgYSBzbG90IGZvcgp0aGUgY3Vyc29yLCB1cGRh dGUgdGhlIGNvZGUgdG8gdXNlIHRoZSBuZXcgc2xvdCBpbiB0aGUgZXhpc3RpbmcgcGxhbmUKYXJy YXlzIGFuZCBraWxsIG9mZiB0aGUgY3Vyc29yLXNwZWNpZmljIHN0cnVjdHVyZXMuCgpUaGVyZSBz aG91bGRuJ3QgYmUgYW55IGZ1bmN0aW9uYWwgY2hhbmdlIGhlcmU7IHRoaXMgaXMganVzdCBzaHVm ZmxpbmcKYXJvdW5kIGhvdyB0aGUgZGF0YSBpcyBzdG9yZWQgaW4gc29tZSBvZiB0aGUgZGF0YSBz dHJ1Y3R1cmVzLiAgVGhlIHdob2xlCnBhdGNoIGlzIGdlbmVyYXRlZCB3aXRoIENvY2NpbmVsbGUg dmlhIHRoZSBmb2xsb3dpbmcgc2VtYW50aWMgcGF0Y2g6CgogICAgICAgIEBAIHN0cnVjdCBza2xf cGlwZV93bV9wYXJhbWV0ZXJzIFdNUDsgQEAKICAgICAgICAtIFdNUC5jdXJzb3IKICAgICAgICAr IFdNUC5wbGFuZVtQTEFORV9DVVJTT1JdCgogICAgICAgIEBAIHN0cnVjdCBza2xfcGlwZV93bV9w YXJhbWV0ZXJzICpXTVA7IEBACiAgICAgICAgLSBXTVAtPmN1cnNvcgogICAgICAgICsgV01QLT5w bGFuZVtQTEFORV9DVVJTT1JdCgogICAgICAgIEBAIEBACiAgICAgICAgc3RydWN0IHNrbF9waXBl X3dtX3BhcmFtZXRlcnMgewogICAgICAgIC4uLgogICAgICAgIC0gc3RydWN0IGludGVsX3BsYW5l X3dtX3BhcmFtZXRlcnMgY3Vyc29yOwogICAgICAgIC4uLgogICAgICAgIH07CgogICAgICAgIEBA CiAgICAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiBEREI7CiAgICAgICAgZXhwcmVzc2lv biBFOwogICAgICAgIEBACiAgICAgICAgLSBEREIuY3Vyc29yW0VdCiAgICAgICAgKyBEREIucGxh bmVbRV1bUExBTkVfQ1VSU09SXQoKICAgICAgICBAQAogICAgICAgIHN0cnVjdCBza2xfZGRiX2Fs bG9jYXRpb24gKkREQjsKICAgICAgICBleHByZXNzaW9uIEU7CiAgICAgICAgQEAKICAgICAgICAt IEREQi0+Y3Vyc29yW0VdCiAgICAgICAgKyBEREItPnBsYW5lW0VdW1BMQU5FX0NVUlNPUl0KCiAg ICAgICAgQEAgQEAKICAgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIHsKICAgICAgICAu Li4KICAgICAgICAtIHN0cnVjdCBza2xfZGRiX2VudHJ5IGN1cnNvcltJOTE1X01BWF9QSVBFU107 CiAgICAgICAgLi4uCiAgICAgICAgfTsKCiAgICAgICAgQEAKICAgICAgICBzdHJ1Y3Qgc2tsX3dt X3ZhbHVlcyBXTVY7CiAgICAgICAgZXhwcmVzc2lvbiBFMSwgRTI7CiAgICAgICAgQEAKICAgICAg ICAoCiAgICAgICAgLSBXTVYuY3Vyc29yW0UxXVtFMl0KICAgICAgICArIFdNVi5wbGFuZVtFMV1b UExBTkVfQ1VSU09SXVtFMl0KICAgICAgICB8CiAgICAgICAgLSBXTVYuY3Vyc29yX3RyYW5zW0Ux XQogICAgICAgICsgV01WLnBsYW5lX3RyYW5zW0UxXVtQTEFORV9DVVJTT1JdCiAgICAgICAgKQoK ICAgICAgICBAQAogICAgICAgIHN0cnVjdCBza2xfd21fdmFsdWVzICpXTVY7CiAgICAgICAgZXhw cmVzc2lvbiBFMSwgRTI7CiAgICAgICAgQEAKICAgICAgICAoCiAgICAgICAgLSBXTVYtPmN1cnNv cltFMV1bRTJdCiAgICAgICAgKyBXTVYtPnBsYW5lW0UxXVtQTEFORV9DVVJTT1JdW0UyXQogICAg ICAgIHwKICAgICAgICAtIFdNVi0+Y3Vyc29yX3RyYW5zW0UxXQogICAgICAgICsgV01WLT5wbGFu ZV90cmFuc1tFMV1bUExBTkVfQ1VSU09SXQogICAgICAgICkKCiAgICAgICAgQEAgQEAKICAgICAg ICBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyB7CiAgICAgICAgLi4uCiAgICAgICAgLSB1aW50MzJfdCBj dXJzb3JbSTkxNV9NQVhfUElQRVNdWzhdOwogICAgICAgIC4uLgogICAgICAgIC0gdWludDMyX3Qg Y3Vyc29yX3RyYW5zW0k5MTVfTUFYX1BJUEVTXTsKICAgICAgICAuLi4KICAgICAgICB9OwoKICAg ICAgICBAQCBzdHJ1Y3Qgc2tsX3dtX2xldmVsIFdNTDsgQEAKICAgICAgICAoCiAgICAgICAgLSBX TUwuY3Vyc29yX2VuCiAgICAgICAgKyBXTUwucGxhbmVfZW5bUExBTkVfQ1VSU09SXQogICAgICAg IHwKICAgICAgICAtIFdNTC5jdXJzb3JfcmVzX2IKICAgICAgICArIFdNTC5wbGFuZV9yZXNfYltQ TEFORV9DVVJTT1JdCiAgICAgICAgfAogICAgICAgIC0gV01MLmN1cnNvcl9yZXNfbAogICAgICAg ICsgV01MLnBsYW5lX3Jlc19sW1BMQU5FX0NVUlNPUl0KICAgICAgICApCgogICAgICAgIEBAIHN0 cnVjdCBza2xfd21fbGV2ZWwgKldNTDsgQEAKICAgICAgICAoCiAgICAgICAgLSBXTUwtPmN1cnNv cl9lbgogICAgICAgICsgV01MLT5wbGFuZV9lbltQTEFORV9DVVJTT1JdCiAgICAgICAgfAogICAg ICAgIC0gV01MLT5jdXJzb3JfcmVzX2IKICAgICAgICArIFdNTC0+cGxhbmVfcmVzX2JbUExBTkVf Q1VSU09SXQogICAgICAgIHwKICAgICAgICAtIFdNTC0+Y3Vyc29yX3Jlc19sCiAgICAgICAgKyBX TUwtPnBsYW5lX3Jlc19sW1BMQU5FX0NVUlNPUl0KICAgICAgICApCgogICAgICAgIEBAIEBACiAg ICAgICAgc3RydWN0IHNrbF93bV9sZXZlbCB7CiAgICAgICAgLi4uCiAgICAgICAgLSBib29sIGN1 cnNvcl9lbjsKICAgICAgICAuLi4KICAgICAgICAtIHVpbnQxNl90IGN1cnNvcl9yZXNfYjsKICAg ICAgICAtIHVpbnQ4X3QgY3Vyc29yX3Jlc19sOwogICAgICAgIC4uLgogICAgICAgIH07Cgp2Mjog VXNlIGEgUExBTkVfQ1VSU09SIGVudW0gZW50cnkgcmF0aGVyIHRoYW4gbWFraW5nIHRoZSBjb2Rl IHJlZmVyZW5jZQogICAgSTkxNV9NQVhfUExBTkVTIG9yIEk5MTVfTUFYX1BMQU5FUysxLCB3aGlj aCB3YXMgY29uZnVzaW5nLiAgKEFuZGVyKQoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0 dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwg IDggKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDQgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA1 MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDcyYWUz NDcuLjUyZWUyYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0zMTQ0LDcg KzMxNDQsNyBAQCBzdGF0aWMgaW50IGk5MTVfZGRiX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICp1bnVzZWQpCiAJCQkJICAgc2tsX2RkYl9lbnRyeV9zaXplKGVudHJ5KSk7CiAJCX0KIAot CQllbnRyeSA9ICZkZGItPmN1cnNvcltwaXBlXTsKKwkJZW50cnkgPSAmZGRiLT5wbGFuZVtwaXBl XVtQTEFORV9DVVJTT1JdOwogCQlzZXFfcHJpbnRmKG0sICIgICUtMTNzJTh1JTh1JTh1XG4iLCAi Q3Vyc29yIiwgZW50cnktPnN0YXJ0LAogCQkJICAgZW50cnktPmVuZCwgc2tsX2RkYl9lbnRyeV9z aXplKGVudHJ5KSk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggYzgwMDAzMS4uNTM5 YmZhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xNTg1LDggKzE1ODUsNyBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgc2tsX2RkYl9lbnRyeV9lcXVhbChjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9l bnRyeSAqZTEsCiBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIHsKIAlzdHJ1Y3Qgc2tsX2RkYl9l bnRyeSBwaXBlW0k5MTVfTUFYX1BJUEVTXTsKIAlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSBwbGFuZVtJ OTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsgLyogcGFja2VkL3V2ICovCi0Jc3RydWN0 IHNrbF9kZGJfZW50cnkgeV9wbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsg LyogeS1wbGFuZSAqLwotCXN0cnVjdCBza2xfZGRiX2VudHJ5IGN1cnNvcltJOTE1X01BWF9QSVBF U107CisJc3RydWN0IHNrbF9kZGJfZW50cnkgeV9wbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9N QVhfUExBTkVTXTsKIH07CiAKIHN0cnVjdCBza2xfd21fdmFsdWVzIHsKQEAgLTE1OTQsMTggKzE1 OTMsMTMgQEAgc3RydWN0IHNrbF93bV92YWx1ZXMgewogCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRp b24gZGRiOwogCXVpbnQzMl90IHdtX2xpbmV0aW1lW0k5MTVfTUFYX1BJUEVTXTsKIAl1aW50MzJf dCBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXVs4XTsKLQl1aW50MzJfdCBj dXJzb3JbSTkxNV9NQVhfUElQRVNdWzhdOwogCXVpbnQzMl90IHBsYW5lX3RyYW5zW0k5MTVfTUFY X1BJUEVTXVtJOTE1X01BWF9QTEFORVNdOwotCXVpbnQzMl90IGN1cnNvcl90cmFuc1tJOTE1X01B WF9QSVBFU107CiB9OwogCiBzdHJ1Y3Qgc2tsX3dtX2xldmVsIHsKIAlib29sIHBsYW5lX2VuW0k5 MTVfTUFYX1BMQU5FU107Ci0JYm9vbCBjdXJzb3JfZW47CiAJdWludDE2X3QgcGxhbmVfcmVzX2Jb STkxNV9NQVhfUExBTkVTXTsKIAl1aW50OF90IHBsYW5lX3Jlc19sW0k5MTVfTUFYX1BMQU5FU107 Ci0JdWludDE2X3QgY3Vyc29yX3Jlc19iOwotCXVpbnQ4X3QgY3Vyc29yX3Jlc19sOwogfTsKIAog LyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBkMTQ0ZDI5Li4wMTc2NDFh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjUyNyw4ICsxMjUyNyw4 IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3dtX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ CX0KIAogCQkvKiBjdXJzb3IgKi8KLQkJaHdfZW50cnkgPSAmaHdfZGRiLmN1cnNvcltwaXBlXTsK LQkJc3dfZW50cnkgPSAmc3dfZGRiLT5jdXJzb3JbcGlwZV07CisJCWh3X2VudHJ5ID0gJmh3X2Rk Yi5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdOworCQlzd19lbnRyeSA9ICZzd19kZGItPnBsYW5l W3BpcGVdW1BMQU5FX0NVUlNPUl07CiAKIAkJaWYgKHNrbF9kZGJfZW50cnlfZXF1YWwoaHdfZW50 cnksIHN3X2VudHJ5KSkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXgg MGNhYWJjZS4uNzExNTM2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0xNzkyLDcgKzE3 OTIsNiBAQCBzdHJ1Y3Qgc2tsX3BpcGVfd21fcGFyYW1ldGVycyB7CiAJdWludDMyX3QgcGlwZV9o dG90YWw7CiAJdWludDMyX3QgcGl4ZWxfcmF0ZTsgLyogaW4gS0h6ICovCiAJc3RydWN0IGludGVs X3BsYW5lX3dtX3BhcmFtZXRlcnMgcGxhbmVbSTkxNV9NQVhfUExBTkVTXTsKLQlzdHJ1Y3QgaW50 ZWxfcGxhbmVfd21fcGFyYW1ldGVycyBjdXJzb3I7CiB9OwogCiBzdHJ1Y3QgaWxrX3dtX21heGlt dW1zIHsKQEAgLTI5MDYsNyArMjkwNSw4IEBAIHZvaWQgc2tsX2RkYl9nZXRfaHdfc3RhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQl9CiAKIAkJdmFsID0gSTkxNV9SRUFE KENVUl9CVUZfQ0ZHKHBpcGUpKTsKLQkJc2tsX2RkYl9lbnRyeV9pbml0X2Zyb21faHcoJmRkYi0+ Y3Vyc29yW3BpcGVdLCB2YWwpOworCQlza2xfZGRiX2VudHJ5X2luaXRfZnJvbV9odygmZGRiLT5w bGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdLAorCQkJCQkgICB2YWwpOwogCX0KIH0KIApAQCAtMjk3 NSwxMyArMjk3NSwxNCBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCWFsbG9jX3NpemUgPSBza2xfZGRiX2VudHJ5X3NpemUoYWxsb2MpOwogCWlmIChhbGxv Y19zaXplID09IDApIHsKIAkJbWVtc2V0KGRkYi0+cGxhbmVbcGlwZV0sIDAsIHNpemVvZihkZGIt PnBsYW5lW3BpcGVdKSk7Ci0JCW1lbXNldCgmZGRiLT5jdXJzb3JbcGlwZV0sIDAsIHNpemVvZihk ZGItPmN1cnNvcltwaXBlXSkpOworCQltZW1zZXQoJmRkYi0+cGxhbmVbcGlwZV1bUExBTkVfQ1VS U09SXSwgMCwKKwkJICAgICAgIHNpemVvZihkZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0p KTsKIAkJcmV0dXJuOwogCX0KIAogCWN1cnNvcl9ibG9ja3MgPSBza2xfY3Vyc29yX2FsbG9jYXRp b24oY29uZmlnKTsKLQlkZGItPmN1cnNvcltwaXBlXS5zdGFydCA9IGFsbG9jLT5lbmQgLSBjdXJz b3JfYmxvY2tzOwotCWRkYi0+Y3Vyc29yW3BpcGVdLmVuZCA9IGFsbG9jLT5lbmQ7CisJZGRiLT5w bGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdLnN0YXJ0ID0gYWxsb2MtPmVuZCAtIGN1cnNvcl9ibG9j a3M7CisJZGRiLT5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdLmVuZCA9IGFsbG9jLT5lbmQ7CiAK IAlhbGxvY19zaXplIC09IGN1cnNvcl9ibG9ja3M7CiAJYWxsb2MtPmVuZCAtPSBjdXJzb3JfYmxv Y2tzOwpAQCAtMzEyMCw4ICszMTIxLDggQEAgc3RhdGljIGJvb2wgc2tsX2RkYl9hbGxvY2F0aW9u X2NoYW5nZWQoY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqbmV3X2RkYiwKIAkJICAg c2l6ZW9mKG5ld19kZGItPnBsYW5lW3BpcGVdKSkpCiAJCXJldHVybiB0cnVlOwogCi0JaWYgKG1l bWNtcCgmbmV3X2RkYi0+Y3Vyc29yW3BpcGVdLCAmY3VyX2RkYi0+Y3Vyc29yW3BpcGVdLAotCQkg ICAgc2l6ZW9mKG5ld19kZGItPmN1cnNvcltwaXBlXSkpKQorCWlmIChtZW1jbXAoJm5ld19kZGIt PnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0sICZjdXJfZGRiLT5wbGFuZVtwaXBlXVtQTEFORV9D VVJTT1JdLAorCQkgICAgc2l6ZW9mKG5ld19kZGItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl0p KSkKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gZmFsc2U7CkBAIC0zMTgxLDE3ICszMTgyLDE3 IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3dtX3BpcGVfcGFyYW1ldGVycyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJCXAtPnBsYW5lWzBdLnJvdGF0aW9uID0gY3J0Yy0+cHJpbWFyeS0+c3Rh dGUtPnJvdGF0aW9uOwogCiAJCWZiID0gY3J0Yy0+Y3Vyc29yLT5zdGF0ZS0+ZmI7Ci0JCXAtPmN1 cnNvci55X2J5dGVzX3Blcl9waXhlbCA9IDA7CisJCXAtPnBsYW5lW1BMQU5FX0NVUlNPUl0ueV9i eXRlc19wZXJfcGl4ZWwgPSAwOwogCQlpZiAoZmIpIHsKLQkJCXAtPmN1cnNvci5lbmFibGVkID0g dHJ1ZTsKLQkJCXAtPmN1cnNvci5ieXRlc19wZXJfcGl4ZWwgPSBmYi0+Yml0c19wZXJfcGl4ZWwg LyA4OwotCQkJcC0+Y3Vyc29yLmhvcml6X3BpeGVscyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNy dGNfdzsKLQkJCXAtPmN1cnNvci52ZXJ0X3BpeGVscyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNy dGNfaDsKKwkJCXAtPnBsYW5lW1BMQU5FX0NVUlNPUl0uZW5hYmxlZCA9IHRydWU7CisJCQlwLT5w bGFuZVtQTEFORV9DVVJTT1JdLmJ5dGVzX3Blcl9waXhlbCA9IGZiLT5iaXRzX3Blcl9waXhlbCAv IDg7CisJCQlwLT5wbGFuZVtQTEFORV9DVVJTT1JdLmhvcml6X3BpeGVscyA9IGNydGMtPmN1cnNv ci0+c3RhdGUtPmNydGNfdzsKKwkJCXAtPnBsYW5lW1BMQU5FX0NVUlNPUl0udmVydF9waXhlbHMg PSBjcnRjLT5jdXJzb3ItPnN0YXRlLT5jcnRjX2g7CiAJCX0gZWxzZSB7Ci0JCQlwLT5jdXJzb3Iu ZW5hYmxlZCA9IGZhbHNlOwotCQkJcC0+Y3Vyc29yLmJ5dGVzX3Blcl9waXhlbCA9IDA7Ci0JCQlw LT5jdXJzb3IuaG9yaXpfcGl4ZWxzID0gNjQ7Ci0JCQlwLT5jdXJzb3IudmVydF9waXhlbHMgPSA2 NDsKKwkJCXAtPnBsYW5lW1BMQU5FX0NVUlNPUl0uZW5hYmxlZCA9IGZhbHNlOworCQkJcC0+cGxh bmVbUExBTkVfQ1VSU09SXS5ieXRlc19wZXJfcGl4ZWwgPSAwOworCQkJcC0+cGxhbmVbUExBTkVf Q1VSU09SXS5ob3Jpel9waXhlbHMgPSA2NDsKKwkJCXAtPnBsYW5lW1BMQU5FX0NVUlNPUl0udmVy dF9waXhlbHMgPSA2NDsKIAkJfQogCX0KIApAQCAtMzMwNSwxMSArMzMwNiwxMiBAQCBzdGF0aWMg dm9pZCBza2xfY29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkJCQkmcmVzdWx0LT5wbGFuZV9yZXNfbFtpXSk7CiAJfQogCi0JZGRiX2Js b2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5jdXJzb3JbcGlwZV0pOwotCXJlc3VsdC0+ Y3Vyc29yX2VuID0gc2tsX2NvbXB1dGVfcGxhbmVfd20oZGV2X3ByaXYsIHAsICZwLT5jdXJzb3Is CisJZGRiX2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5wbGFuZVtwaXBlXVtQTEFO RV9DVVJTT1JdKTsKKwlyZXN1bHQtPnBsYW5lX2VuW1BMQU5FX0NVUlNPUl0gPSBza2xfY29tcHV0 ZV9wbGFuZV93bShkZXZfcHJpdiwgcCwKKwkJCQkJCSAmcC0+cGxhbmVbUExBTkVfQ1VSU09SXSwK IAkJCQkJCSBkZGJfYmxvY2tzLCBsZXZlbCwKLQkJCQkJCSAmcmVzdWx0LT5jdXJzb3JfcmVzX2Is Ci0JCQkJCQkgJnJlc3VsdC0+Y3Vyc29yX3Jlc19sKTsKKwkJCQkJCSAmcmVzdWx0LT5wbGFuZV9y ZXNfYltQTEFORV9DVVJTT1JdLAorCQkJCQkJICZyZXN1bHQtPnBsYW5lX3Jlc19sW1BMQU5FX0NV UlNPUl0pOwogfQogCiBzdGF0aWMgdWludDMyX3QKQEAgLTMzMzcsNyArMzMzOSw3IEBAIHN0YXRp YyB2b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oc3RydWN0IGRybV9jcnRjICpjcnRjLAog CS8qIFVudGlsIHdlIGtub3cgbW9yZSwganVzdCBkaXNhYmxlIHRyYW5zaXRpb24gV01zICovCiAJ Zm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoaW50ZWxfY3J0Yyk7IGkrKykKIAkJdHJh bnNfd20tPnBsYW5lX2VuW2ldID0gZmFsc2U7Ci0JdHJhbnNfd20tPmN1cnNvcl9lbiA9IGZhbHNl OworCXRyYW5zX3dtLT5wbGFuZV9lbltQTEFORV9DVVJTT1JdID0gZmFsc2U7CiB9CiAKIHN0YXRp YyB2b2lkIHNrbF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjLApAQCAtMzM4 NiwxMyArMzM4OCwxMyBAQCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV93bV9yZXN1bHRzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAKIAkJdGVtcCA9IDA7CiAKLQkJdGVtcCB8PSBwX3dtLT53bVts ZXZlbF0uY3Vyc29yX3Jlc19sIDw8IFBMQU5FX1dNX0xJTkVTX1NISUZUOwotCQl0ZW1wIHw9IHBf d20tPndtW2xldmVsXS5jdXJzb3JfcmVzX2I7CisJCXRlbXAgfD0gcF93bS0+d21bbGV2ZWxdLnBs YW5lX3Jlc19sW1BMQU5FX0NVUlNPUl0gPDwgUExBTkVfV01fTElORVNfU0hJRlQ7CisJCXRlbXAg fD0gcF93bS0+d21bbGV2ZWxdLnBsYW5lX3Jlc19iW1BMQU5FX0NVUlNPUl07CiAKLQkJaWYgKHBf d20tPndtW2xldmVsXS5jdXJzb3JfZW4pCisJCWlmIChwX3dtLT53bVtsZXZlbF0ucGxhbmVfZW5b UExBTkVfQ1VSU09SXSkKIAkJCXRlbXAgfD0gUExBTkVfV01fRU47CiAKLQkJci0+Y3Vyc29yW3Bp cGVdW2xldmVsXSA9IHRlbXA7CisJCXItPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2ZWxd ID0gdGVtcDsKIAogCX0KIApAQCAtMzQwOCwxMiArMzQxMCwxMiBAQCBzdGF0aWMgdm9pZCBza2xf Y29tcHV0ZV93bV9yZXN1bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJdGVtcCA9 IDA7Ci0JdGVtcCB8PSBwX3dtLT50cmFuc193bS5jdXJzb3JfcmVzX2wgPDwgUExBTkVfV01fTElO RVNfU0hJRlQ7Ci0JdGVtcCB8PSBwX3dtLT50cmFuc193bS5jdXJzb3JfcmVzX2I7Ci0JaWYgKHBf d20tPnRyYW5zX3dtLmN1cnNvcl9lbikKKwl0ZW1wIHw9IHBfd20tPnRyYW5zX3dtLnBsYW5lX3Jl c19sW1BMQU5FX0NVUlNPUl0gPDwgUExBTkVfV01fTElORVNfU0hJRlQ7CisJdGVtcCB8PSBwX3dt LT50cmFuc193bS5wbGFuZV9yZXNfYltQTEFORV9DVVJTT1JdOworCWlmIChwX3dtLT50cmFuc193 bS5wbGFuZV9lbltQTEFORV9DVVJTT1JdKQogCQl0ZW1wIHw9IFBMQU5FX1dNX0VOOwogCi0Jci0+ Y3Vyc29yX3RyYW5zW3BpcGVdID0gdGVtcDsKKwlyLT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9D VVJTT1JdID0gdGVtcDsKIAogCXItPndtX2xpbmV0aW1lW3BpcGVdID0gcF93bS0+bGluZXRpbWU7 CiB9CkBAIC0zNDQ3LDEyICszNDQ5LDEzIEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1 ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCUk5MTVfV1JJVEUoUExB TkVfV00ocGlwZSwgaSwgbGV2ZWwpLAogCQkJCQkgICBuZXctPnBsYW5lW3BpcGVdW2ldW2xldmVs XSk7CiAJCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBsZXZlbCksCi0JCQkJICAgbmV3LT5jdXJz b3JbcGlwZV1bbGV2ZWxdKTsKKwkJCQkgICBuZXctPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1b bGV2ZWxdKTsKIAkJfQogCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsg aSsrKQogCQkJSTkxNV9XUklURShQTEFORV9XTV9UUkFOUyhwaXBlLCBpKSwKIAkJCQkgICBuZXct PnBsYW5lX3RyYW5zW3BpcGVdW2ldKTsKLQkJSTkxNV9XUklURShDVVJfV01fVFJBTlMocGlwZSks IG5ldy0+Y3Vyc29yX3RyYW5zW3BpcGVdKTsKKwkJSTkxNV9XUklURShDVVJfV01fVFJBTlMocGlw ZSksCisJCQkgICBuZXctPnBsYW5lX3RyYW5zW3BpcGVdW1BMQU5FX0NVUlNPUl0pOwogCiAJCWZv ciAoaSA9IDA7IGkgPCBpbnRlbF9udW1fcGxhbmVzKGNydGMpOyBpKyspIHsKIAkJCXNrbF9kZGJf ZW50cnlfd3JpdGUoZGV2X3ByaXYsCkBAIC0zNDY0LDcgKzM0NjcsNyBAQCBzdGF0aWMgdm9pZCBz a2xfd3JpdGVfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJ fQogCiAJCXNrbF9kZGJfZW50cnlfd3JpdGUoZGV2X3ByaXYsIENVUl9CVUZfQ0ZHKHBpcGUpLAot CQkJCSAgICAmbmV3LT5kZGIuY3Vyc29yW3BpcGVdKTsKKwkJCQkgICAgJm5ldy0+ZGRiLnBsYW5l W3BpcGVdW1BMQU5FX0NVUlNPUl0pOwogCX0KIH0KIApAQCAtMzgyMCwxMCArMzgyMywxMCBAQCBz dGF0aWMgdm9pZCBza2xfcGlwZV93bV9hY3RpdmVfc3RhdGUodWludDMyX3QgdmFsLAogCQkJCQko dmFsID4+IFBMQU5FX1dNX0xJTkVTX1NISUZUKSAmCiAJCQkJCQlQTEFORV9XTV9MSU5FU19NQVNL OwogCQl9IGVsc2UgewotCQkJYWN0aXZlLT53bVtsZXZlbF0uY3Vyc29yX2VuID0gaXNfZW5hYmxl ZDsKLQkJCWFjdGl2ZS0+d21bbGV2ZWxdLmN1cnNvcl9yZXNfYiA9CisJCQlhY3RpdmUtPndtW2xl dmVsXS5wbGFuZV9lbltQTEFORV9DVVJTT1JdID0gaXNfZW5hYmxlZDsKKwkJCWFjdGl2ZS0+d21b bGV2ZWxdLnBsYW5lX3Jlc19iW1BMQU5FX0NVUlNPUl0gPQogCQkJCQl2YWwgJiBQTEFORV9XTV9C TE9DS1NfTUFTSzsKLQkJCWFjdGl2ZS0+d21bbGV2ZWxdLmN1cnNvcl9yZXNfbCA9CisJCQlhY3Rp dmUtPndtW2xldmVsXS5wbGFuZV9yZXNfbFtQTEFORV9DVVJTT1JdID0KIAkJCQkJKHZhbCA+PiBQ TEFORV9XTV9MSU5FU19TSElGVCkgJgogCQkJCQkJUExBTkVfV01fTElORVNfTUFTSzsKIAkJfQpA QCAtMzgzNiwxMCArMzgzOSwxMCBAQCBzdGF0aWMgdm9pZCBza2xfcGlwZV93bV9hY3RpdmVfc3Rh dGUodWludDMyX3QgdmFsLAogCQkJCQkodmFsID4+IFBMQU5FX1dNX0xJTkVTX1NISUZUKSAmCiAJ CQkJCQlQTEFORV9XTV9MSU5FU19NQVNLOwogCQl9IGVsc2UgewotCQkJYWN0aXZlLT50cmFuc193 bS5jdXJzb3JfZW4gPSBpc19lbmFibGVkOwotCQkJYWN0aXZlLT50cmFuc193bS5jdXJzb3JfcmVz X2IgPQorCQkJYWN0aXZlLT50cmFuc193bS5wbGFuZV9lbltQTEFORV9DVVJTT1JdID0gaXNfZW5h YmxlZDsKKwkJCWFjdGl2ZS0+dHJhbnNfd20ucGxhbmVfcmVzX2JbUExBTkVfQ1VSU09SXSA9CiAJ CQkJCXZhbCAmIFBMQU5FX1dNX0JMT0NLU19NQVNLOwotCQkJYWN0aXZlLT50cmFuc193bS5jdXJz b3JfcmVzX2wgPQorCQkJYWN0aXZlLT50cmFuc193bS5wbGFuZV9yZXNfbFtQTEFORV9DVVJTT1Jd ID0KIAkJCQkJKHZhbCA+PiBQTEFORV9XTV9MSU5FU19TSElGVCkgJgogCQkJCQkJUExBTkVfV01f TElORVNfTUFTSzsKIAkJfQpAQCAtMzg2NSwxMiArMzg2OCwxMiBAQCBzdGF0aWMgdm9pZCBza2xf cGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlmb3IgKGkgPSAw OyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhpbnRlbF9jcnRjKTsgaSsrKQogCQkJaHctPnBsYW5lW3Bp cGVdW2ldW2xldmVsXSA9CiAJCQkJCUk5MTVfUkVBRChQTEFORV9XTShwaXBlLCBpLCBsZXZlbCkp OwotCQlody0+Y3Vyc29yW3BpcGVdW2xldmVsXSA9IEk5MTVfUkVBRChDVVJfV00ocGlwZSwgbGV2 ZWwpKTsKKwkJaHctPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2ZWxdID0gSTkxNV9SRUFE KENVUl9XTShwaXBlLCBsZXZlbCkpOwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBpbnRlbF9udW1f cGxhbmVzKGludGVsX2NydGMpOyBpKyspCiAJCWh3LT5wbGFuZV90cmFuc1twaXBlXVtpXSA9IEk5 MTVfUkVBRChQTEFORV9XTV9UUkFOUyhwaXBlLCBpKSk7Ci0JaHctPmN1cnNvcl90cmFuc1twaXBl XSA9IEk5MTVfUkVBRChDVVJfV01fVFJBTlMocGlwZSkpOworCWh3LT5wbGFuZV90cmFuc1twaXBl XVtQTEFORV9DVVJTT1JdID0gSTkxNV9SRUFEKENVUl9XTV9UUkFOUyhwaXBlKSk7CiAKIAlpZiAo IWludGVsX2NydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwpAQCAtMzg4NSw3ICszODg4LDcgQEAgc3Rh dGljIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK IAkJCXNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0ZSh0ZW1wLCBhY3RpdmUsIGZhbHNlLAogCQkJCQkJ ZmFsc2UsIGksIGxldmVsKTsKIAkJfQotCQl0ZW1wID0gaHctPmN1cnNvcltwaXBlXVtsZXZlbF07 CisJCXRlbXAgPSBody0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXVtsZXZlbF07CiAJCXNrbF9w aXBlX3dtX2FjdGl2ZV9zdGF0ZSh0ZW1wLCBhY3RpdmUsIGZhbHNlLCB0cnVlLCBpLCBsZXZlbCk7 CiAJfQogCkBAIC0zODk0LDcgKzM4OTcsNyBAQCBzdGF0aWMgdm9pZCBza2xfcGlwZV93bV9nZXRf aHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlza2xfcGlwZV93bV9hY3RpdmVfc3Rh dGUodGVtcCwgYWN0aXZlLCB0cnVlLCBmYWxzZSwgaSwgMCk7CiAJfQogCi0JdGVtcCA9IGh3LT5j dXJzb3JfdHJhbnNbcGlwZV07CisJdGVtcCA9IGh3LT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9D VVJTT1JdOwogCXNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0ZSh0ZW1wLCBhY3RpdmUsIHRydWUsIHRy dWUsIGksIDApOwogfQogCi0tIAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK