From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 02/14] drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2) Date: Mon, 14 Sep 2015 19:19:18 -0700 Message-ID: <1442283570-26824-3-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id A048E6E97F 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 SnVzdCBwdWxsIHRoZSBpbmZvIG91dCBvZiB0aGUgcGxhbmUgc3RhdGUgc3RydWN0dXJlIHJhdGhl ciB0aGFuIHN0YWdpbmcKaXQgaW4gYW4gYWRkaXRpb25hbCBzdHJ1Y3R1cmUuCgp2MjogQWRkICd2 aXNpYmxlJyBjb25kaXRpb24gdG8gc3ByaXRlc19zY2FsZWQgc28gdGhhdCB3ZSBkb24ndCBsaW1p dCB0aGUKICAgIFdNIGxldmVsIHdoZW4gdGhlIHNwcml0ZSBpc24ndCBlbmFibGVkLiAgKFZpbGxl KQoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4K UmV2aWV3ZWQtYnkodjEpOiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJA Z21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgfCAxMzMgKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcw IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmlu ZGV4IDYyZGU5N2UuLjQ0MmExZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMTc5OSw5 ICsxNzk5LDYgQEAgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgewogCWJvb2wgYWN0aXZl OwogCXVpbnQzMl90IHBpcGVfaHRvdGFsOwogCXVpbnQzMl90IHBpeGVsX3JhdGU7Ci0Jc3RydWN0 IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgcHJpOwotCXN0cnVjdCBpbnRlbF9wbGFuZV93bV9w YXJhbWV0ZXJzIHNwcjsKLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyBjdXI7CiB9 OwogCiBzdHJ1Y3QgaWxrX3dtX21heGltdW1zIHsKQEAgLTE4MjMsMjUgKzE4MjAsMjUgQEAgc3Ry dWN0IGludGVsX3dtX2NvbmZpZyB7CiAgKiBtZW1fdmFsdWUgbXVzdCBiZSBpbiAwLjF1cyB1bml0 cy4KICAqLwogc3RhdGljIHVpbnQzMl90IGlsa19jb21wdXRlX3ByaV93bShjb25zdCBzdHJ1Y3Qg aWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcGFyYW1zLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqcHN0YXRlLAogCQkJCSAgIHVpbnQzMl90IG1lbV92YWx1ZSwKIAkJCQkg ICBib29sIGlzX2xwKQogeworCWludCBicHAgPSBwc3RhdGUtPmJhc2UuZmIgPyBwc3RhdGUtPmJh c2UuZmItPmJpdHNfcGVyX3BpeGVsIC8gOCA6IDA7CiAJdWludDMyX3QgbWV0aG9kMSwgbWV0aG9k MjsKIAotCWlmICghcGFyYW1zLT5hY3RpdmUgfHwgIXBhcmFtcy0+cHJpLmVuYWJsZWQpCisJaWYg KCFwYXJhbXMtPmFjdGl2ZSB8fCAhcHN0YXRlLT52aXNpYmxlKQogCQlyZXR1cm4gMDsKIAotCW1l dGhvZDEgPSBpbGtfd21fbWV0aG9kMShwYXJhbXMtPnBpeGVsX3JhdGUsCi0JCQkJIHBhcmFtcy0+ cHJpLmJ5dGVzX3Blcl9waXhlbCwKLQkJCQkgbWVtX3ZhbHVlKTsKKwltZXRob2QxID0gaWxrX3dt X21ldGhvZDEocGFyYW1zLT5waXhlbF9yYXRlLCBicHAsIG1lbV92YWx1ZSk7CiAKIAlpZiAoIWlz X2xwKQogCQlyZXR1cm4gbWV0aG9kMTsKIAogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihwYXJh bXMtPnBpeGVsX3JhdGUsCiAJCQkJIHBhcmFtcy0+cGlwZV9odG90YWwsCi0JCQkJIHBhcmFtcy0+ cHJpLmhvcml6X3BpeGVscywKLQkJCQkgcGFyYW1zLT5wcmkuYnl0ZXNfcGVyX3BpeGVsLAorCQkJ CSBkcm1fcmVjdF93aWR0aCgmcHN0YXRlLT5kc3QpLAorCQkJCSBicHAsCiAJCQkJIG1lbV92YWx1 ZSk7CiAKIAlyZXR1cm4gbWluKG1ldGhvZDEsIG1ldGhvZDIpOwpAQCAtMTg1MiwyMCArMTg0OSwy MCBAQCBzdGF0aWMgdWludDMyX3QgaWxrX2NvbXB1dGVfcHJpX3dtKGNvbnN0IHN0cnVjdCBpbGtf cGlwZV93bV9wYXJhbWV0ZXJzICpwYXJhbXMsCiAgKiBtZW1fdmFsdWUgbXVzdCBiZSBpbiAwLjF1 cyB1bml0cy4KICAqLwogc3RhdGljIHVpbnQzMl90IGlsa19jb21wdXRlX3Nwcl93bShjb25zdCBz dHJ1Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcGFyYW1zLAorCQkJCSAgIGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRlLAogCQkJCSAgIHVpbnQzMl90IG1lbV92YWx1ZSkK IHsKKwlpbnQgYnBwID0gcHN0YXRlLT5iYXNlLmZiID8gcHN0YXRlLT5iYXNlLmZiLT5iaXRzX3Bl cl9waXhlbCAvIDggOiAwOwogCXVpbnQzMl90IG1ldGhvZDEsIG1ldGhvZDI7CiAKLQlpZiAoIXBh cmFtcy0+YWN0aXZlIHx8ICFwYXJhbXMtPnNwci5lbmFibGVkKQorCWlmICghcGFyYW1zLT5hY3Rp dmUgfHwgIXBzdGF0ZS0+dmlzaWJsZSkKIAkJcmV0dXJuIDA7CiAKLQltZXRob2QxID0gaWxrX3dt X21ldGhvZDEocGFyYW1zLT5waXhlbF9yYXRlLAotCQkJCSBwYXJhbXMtPnNwci5ieXRlc19wZXJf cGl4ZWwsCi0JCQkJIG1lbV92YWx1ZSk7CisJbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKHBhcmFt cy0+cGl4ZWxfcmF0ZSwgYnBwLCBtZW1fdmFsdWUpOwogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9k MihwYXJhbXMtPnBpeGVsX3JhdGUsCiAJCQkJIHBhcmFtcy0+cGlwZV9odG90YWwsCi0JCQkJIHBh cmFtcy0+c3ByLmhvcml6X3BpeGVscywKLQkJCQkgcGFyYW1zLT5zcHIuYnl0ZXNfcGVyX3BpeGVs LAorCQkJCSBkcm1fcmVjdF93aWR0aCgmcHN0YXRlLT5kc3QpLAorCQkJCSBicHAsCiAJCQkJIG1l bV92YWx1ZSk7CiAJcmV0dXJuIG1pbihtZXRob2QxLCBtZXRob2QyKTsKIH0KQEAgLTE4NzUsMjgg KzE4NzIsMzIgQEAgc3RhdGljIHVpbnQzMl90IGlsa19jb21wdXRlX3Nwcl93bShjb25zdCBzdHJ1 Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcGFyYW1zLAogICogbWVtX3ZhbHVlIG11c3QgYmUg aW4gMC4xdXMgdW5pdHMuCiAgKi8KIHN0YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9jdXJfd20o Y29uc3Qgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgKnBhcmFtcywKKwkJCQkgICBjb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSwKIAkJCQkgICB1aW50MzJfdCBtZW1f dmFsdWUpCiB7Ci0JaWYgKCFwYXJhbXMtPmFjdGl2ZSB8fCAhcGFyYW1zLT5jdXIuZW5hYmxlZCkK KwlpbnQgYnBwID0gcHN0YXRlLT5iYXNlLmZiID8gcHN0YXRlLT5iYXNlLmZiLT5iaXRzX3Blcl9w aXhlbCAvIDggOiAwOworCisJaWYgKCFwYXJhbXMtPmFjdGl2ZSB8fCAhcHN0YXRlLT52aXNpYmxl KQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBpbGtfd21fbWV0aG9kMihwYXJhbXMtPnBpeGVsX3Jh dGUsCiAJCQkgICAgICBwYXJhbXMtPnBpcGVfaHRvdGFsLAotCQkJICAgICAgcGFyYW1zLT5jdXIu aG9yaXpfcGl4ZWxzLAotCQkJICAgICAgcGFyYW1zLT5jdXIuYnl0ZXNfcGVyX3BpeGVsLAorCQkJ ICAgICAgZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+ZHN0KSwKKwkJCSAgICAgIGJwcCwKIAkJCSAg ICAgIG1lbV92YWx1ZSk7CiB9CiAKIC8qIE9ubHkgZm9yIFdNX0xQLiAqLwogc3RhdGljIHVpbnQz Ml90IGlsa19jb21wdXRlX2ZiY193bShjb25zdCBzdHJ1Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVy cyAqcGFyYW1zLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHN0YXRl LAogCQkJCSAgIHVpbnQzMl90IHByaV92YWwpCiB7Ci0JaWYgKCFwYXJhbXMtPmFjdGl2ZSB8fCAh cGFyYW1zLT5wcmkuZW5hYmxlZCkKKwlpbnQgYnBwID0gcHN0YXRlLT5iYXNlLmZiID8gcHN0YXRl LT5iYXNlLmZiLT5iaXRzX3Blcl9waXhlbCAvIDggOiAwOworCisJaWYgKCFwYXJhbXMtPmFjdGl2 ZSB8fCAhcHN0YXRlLT52aXNpYmxlKQogCQlyZXR1cm4gMDsKIAotCXJldHVybiBpbGtfd21fZmJj KHByaV92YWwsCi0JCQkgIHBhcmFtcy0+cHJpLmhvcml6X3BpeGVscywKLQkJCSAgcGFyYW1zLT5w cmkuYnl0ZXNfcGVyX3BpeGVsKTsKKwlyZXR1cm4gaWxrX3dtX2ZiYyhwcmlfdmFsLCBkcm1fcmVj dF93aWR0aCgmcHN0YXRlLT5kc3QpLCBicHApOwogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IGls a19kaXNwbGF5X2ZpZm9fc2l6ZShjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMjA2 MSwxMCArMjA2MiwxMiBAQCBzdGF0aWMgYm9vbCBpbGtfdmFsaWRhdGVfd21fbGV2ZWwoaW50IGxl dmVsLAogfQogCiBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjLAogCQkJCSBpbnQgbGV2ZWwsCiAJCQkJIGNvbnN0IHN0cnVjdCBpbGtfcGlw ZV93bV9wYXJhbWV0ZXJzICpwLAogCQkJCSBzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgKnJlc3VsdCkK IHsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lOwogCXVpbnQxNl90IHByaV9sYXRl bmN5ID0gZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5W2xldmVsXTsKIAl1aW50MTZfdCBzcHJfbGF0 ZW5jeSA9IGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVtsZXZlbF07CiAJdWludDE2X3QgY3VyX2xh dGVuY3kgPSBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3lbbGV2ZWxdOwpAQCAtMjA3NiwxMCArMjA3 OSwyOSBAQCBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWN1cl9sYXRlbmN5ICo9IDU7CiAJfQogCi0JcmVz dWx0LT5wcmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dtKHAsIHByaV9sYXRlbmN5LCBsZXZlbCk7 Ci0JcmVzdWx0LT5zcHJfdmFsID0gaWxrX2NvbXB1dGVfc3ByX3dtKHAsIHNwcl9sYXRlbmN5KTsK LQlyZXN1bHQtPmN1cl92YWwgPSBpbGtfY29tcHV0ZV9jdXJfd20ocCwgY3VyX2xhdGVuY3kpOwot CXJlc3VsdC0+ZmJjX3ZhbCA9IGlsa19jb21wdXRlX2ZiY193bShwLCByZXN1bHQtPnByaV92YWwp OworCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2X3ByaXYtPmRldiwgaW50ZWxfY3J0 YywgaW50ZWxfcGxhbmUpIHsKKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUgPQor CQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoaW50ZWxfcGxhbmUtPmJhc2Uuc3RhdGUpOworCisJCXN3 aXRjaCAoaW50ZWxfcGxhbmUtPmJhc2UudHlwZSkgeworCQljYXNlIERSTV9QTEFORV9UWVBFX1BS SU1BUlk6CisJCQlyZXN1bHQtPnByaV92YWwgPSBpbGtfY29tcHV0ZV9wcmlfd20ocCwgcHN0YXRl LAorCQkJCQkJCSAgICAgcHJpX2xhdGVuY3ksCisJCQkJCQkJICAgICBsZXZlbCk7CisJCQlyZXN1 bHQtPmZiY192YWwgPSBpbGtfY29tcHV0ZV9mYmNfd20ocCwgcHN0YXRlLAorCQkJCQkJCSAgICAg cmVzdWx0LT5wcmlfdmFsKTsKKwkJCWJyZWFrOworCQljYXNlIERSTV9QTEFORV9UWVBFX09WRVJM QVk6CisJCQlyZXN1bHQtPnNwcl92YWwgPSBpbGtfY29tcHV0ZV9zcHJfd20ocCwgcHN0YXRlLAor CQkJCQkJCSAgICAgc3ByX2xhdGVuY3kpOworCQkJYnJlYWs7CisJCWNhc2UgRFJNX1BMQU5FX1RZ UEVfQ1VSU09SOgorCQkJcmVzdWx0LT5jdXJfdmFsID0gaWxrX2NvbXB1dGVfY3VyX3dtKHAsIHBz dGF0ZSwKKwkJCQkJCQkgICAgIGN1cl9sYXRlbmN5KTsKKwkJCWJyZWFrOworCQl9CisJfQorCiAJ cmVzdWx0LT5lbmFibGUgPSB0cnVlOwogfQogCkBAIC0yMzQxLDEwICsyMzYzLDcgQEAgc3RhdGlj IHZvaWQgc2tsX3NldHVwX3dtX2xhdGVuY3koc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHN0YXRp YyB2b2lkIGlsa19jb21wdXRlX3dtX3BhcmFtZXRlcnMoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQkJCSAgICAgIHN0cnVjdCBpbGtfcGlwZV93bV9wYXJhbWV0ZXJzICpwKQogewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKLQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAogCWlmICghaW50ZWxfY3J0Yy0+YWN0 aXZlKQogCQlyZXR1cm47CkBAIC0yMzUyLDMyICsyMzcxLDYgQEAgc3RhdGljIHZvaWQgaWxrX2Nv bXB1dGVfd21fcGFyYW1ldGVycyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJcC0+YWN0aXZlID0g dHJ1ZTsKIAlwLT5waXBlX2h0b3RhbCA9IGludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfaHRvdGFsOwogCXAtPnBpeGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRl KGludGVsX2NydGMtPmNvbmZpZyk7Ci0KLQlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiKQot CQlwLT5wcmkuYnl0ZXNfcGVyX3BpeGVsID0KLQkJCWNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+ Yml0c19wZXJfcGl4ZWwgLyA4OwotCWVsc2UKLQkJcC0+cHJpLmJ5dGVzX3Blcl9waXhlbCA9IDQ7 Ci0KLQlwLT5jdXIuYnl0ZXNfcGVyX3BpeGVsID0gNDsKLQkvKgotCSAqIFRPRE86IGZvciBub3cs IGFzc3VtZSBwcmltYXJ5IGFuZCBjdXJzb3IgcGxhbmVzIGFyZSBhbHdheXMgZW5hYmxlZC4KLQkg KiBTZXR0aW5nIHRoZW0gdG8gZmFsc2UgbWFrZXMgdGhlIHNjcmVlbiBmbGlja2VyLgotCSAqLwot CXAtPnByaS5lbmFibGVkID0gdHJ1ZTsKLQlwLT5jdXIuZW5hYmxlZCA9IHRydWU7Ci0KLQlwLT5w cmkuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY193OwotCXAtPmN1 ci5ob3Jpel9waXhlbHMgPSBpbnRlbF9jcnRjLT5iYXNlLmN1cnNvci0+c3RhdGUtPmNydGNfdzsK LQotCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxhbmUocGxhbmUsIGRldikgewotCQlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwotCi0JCWlmIChp bnRlbF9wbGFuZS0+cGlwZSA9PSBwaXBlKSB7Ci0JCQlwLT5zcHIgPSBpbnRlbF9wbGFuZS0+d207 Ci0JCQlicmVhazsKLQkJfQotCX0KIH0KIAogc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fY29u ZmlnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCkBAIC0yNDA1LDI4ICsyMzk4LDQyIEBAIHN0YXRp YyBib29sIGludGVsX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAljb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfcGxh bmUgKmludGVsX3BsYW5lOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Byc3RhdGUgPSBO VUxMOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwogCS8q IExQMCB3YXRlcm1hcmsgbWF4aW11bXMgZGVwZW5kIG9uIHRoaXMgcGlwZSBhbG9uZSAqLwogCXN0 cnVjdCBpbnRlbF93bV9jb25maWcgY29uZmlnID0gewogCQkubnVtX3BpcGVzX2FjdGl2ZSA9IDEs Ci0JCS5zcHJpdGVzX2VuYWJsZWQgPSBwYXJhbXMtPnNwci5lbmFibGVkLAotCQkuc3ByaXRlc19z Y2FsZWQgPSBwYXJhbXMtPnNwci5zY2FsZWQsCiAJfTsKIAlzdHJ1Y3QgaWxrX3dtX21heGltdW1z IG1heDsKIAorCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBpbnRlbF9jcnRjLCBp bnRlbF9wbGFuZSkgeworCQlpZiAoaW50ZWxfcGxhbmUtPmJhc2UudHlwZSA9PSBEUk1fUExBTkVf VFlQRV9PVkVSTEFZKSB7CisJCQlzcHJzdGF0ZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGludGVs X3BsYW5lLT5iYXNlLnN0YXRlKTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJY29uZmlnLnNwcml0 ZXNfZW5hYmxlZCA9IHNwcnN0YXRlLT52aXNpYmxlOworCWNvbmZpZy5zcHJpdGVzX3NjYWxlZCA9 IHNwcnN0YXRlLT52aXNpYmxlICYmCisJCShkcm1fcmVjdF93aWR0aCgmc3Byc3RhdGUtPmRzdCkg IT0gZHJtX3JlY3Rfd2lkdGgoJnNwcnN0YXRlLT5zcmMpID4+IDE2IHx8CisJCWRybV9yZWN0X2hl aWdodCgmc3Byc3RhdGUtPmRzdCkgIT0gZHJtX3JlY3RfaGVpZ2h0KCZzcHJzdGF0ZS0+c3JjKSA+ PiAxNik7CisKKwogCXBpcGVfd20tPnBpcGVfZW5hYmxlZCA9IHBhcmFtcy0+YWN0aXZlOwotCXBp cGVfd20tPnNwcml0ZXNfZW5hYmxlZCA9IHBhcmFtcy0+c3ByLmVuYWJsZWQ7Ci0JcGlwZV93bS0+ c3ByaXRlc19zY2FsZWQgPSBwYXJhbXMtPnNwci5zY2FsZWQ7CisJcGlwZV93bS0+c3ByaXRlc19l bmFibGVkID0gc3Byc3RhdGUtPnZpc2libGU7CisJcGlwZV93bS0+c3ByaXRlc19zY2FsZWQgPSBj b25maWcuc3ByaXRlc19zY2FsZWQ7CiAKIAkvKiBJTEsvU05COiBMUDIrIHdhdGVybWFya3Mgb25s eSB3L28gc3ByaXRlcyAqLwotCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA2ICYmIHBhcmFt cy0+c3ByLmVuYWJsZWQpCisJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDw9IDYgJiYgc3Byc3Rh dGUtPnZpc2libGUpCiAJCW1heF9sZXZlbCA9IDE7CiAKIAkvKiBJTEsvU05CL0lWQjogTFAxKyB3 YXRlcm1hcmtzIG9ubHkgdy9vIHNjYWxpbmcgKi8KLQlpZiAocGFyYW1zLT5zcHIuc2NhbGVkKQor CWlmIChjb25maWcuc3ByaXRlc19zY2FsZWQpCiAJCW1heF9sZXZlbCA9IDA7CiAKLQlpbGtfY29t cHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgMCwgcGFyYW1zLCAmcGlwZV93bS0+d21bMF0pOworCWls a19jb21wdXRlX3dtX2xldmVsKGRldl9wcml2LCBpbnRlbF9jcnRjLCAwLCBwYXJhbXMsICZwaXBl X3dtLT53bVswXSk7CiAKIAlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYp KQogCQlwaXBlX3dtLT5saW5ldGltZSA9IGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGRldiwgY3J0 Yyk7CkBAIC0yNDQzLDcgKzI0NTAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9jb21wdXRlX3BpcGVf d20oc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWZvciAobGV2ZWwgPSAxOyBsZXZlbCA8PSBtYXhf bGV2ZWw7IGxldmVsKyspIHsKIAkJc3RydWN0IGludGVsX3dtX2xldmVsIHdtID0ge307CiAKLQkJ aWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGxldmVsLCBwYXJhbXMsICZ3bSk7CisJCWls a19jb21wdXRlX3dtX2xldmVsKGRldl9wcml2LCBpbnRlbF9jcnRjLCBsZXZlbCwgcGFyYW1zLCAm d20pOwogCiAJCS8qCiAJCSAqIERpc2FibGUgYW55IHdhdGVybWFyayBsZXZlbCB0aGF0IGV4Y2Vl ZHMgdGhlCi0tIAoyLjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK