From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 02/15] drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2) Date: Thu, 24 Sep 2015 15:53:07 -0700 Message-ID: <1443135200-9870-3-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id DC8A16E10F for ; Thu, 24 Sep 2015 15:53:52 -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 SnVzdCBwdWxsIHRoZSBpbmZvIG91dCBvZiB0aGUgcGxhbmUgc3RhdGUgc3RydWN0dXJlIHJhdGhl ciB0aGFuIHN0YWdpbmcKaXQgaW4gYW4gYWRkaXRpb25hbCBzdHJ1Y3R1cmUuCgp2MjogQWRkICd2 aXNpYmxlJyBjb25kaXRpb24gdG8gc3ByaXRlc19zY2FsZWQgc28gdGhhdCB3ZSBkb24ndCBsaW1p dCB0aGUKICAgIFdNIGxldmVsIHdoZW4gdGhlIHNwcml0ZSBpc24ndCBlbmFibGVkLiAgKFZpbGxl KQoKU2lnbmVkLW9mZi1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4K UmV2aWV3ZWQtYnkodjEpOiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hv cnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j IHwgMTMzICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwppbmRleCBhYjVhYzVlLi5iZmVhNDQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK QEAgLTE3OTksOSArMTc5OSw2IEBAIHN0cnVjdCBpbGtfcGlwZV93bV9wYXJhbWV0ZXJzIHsKIAli b29sIGFjdGl2ZTsKIAl1aW50MzJfdCBwaXBlX2h0b3RhbDsKIAl1aW50MzJfdCBwaXhlbF9yYXRl OwotCXN0cnVjdCBpbnRlbF9wbGFuZV93bV9wYXJhbWV0ZXJzIHByaTsKLQlzdHJ1Y3QgaW50ZWxf cGxhbmVfd21fcGFyYW1ldGVycyBzcHI7Ci0Jc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRl cnMgY3VyOwogfTsKIAogc3RydWN0IGlsa193bV9tYXhpbXVtcyB7CkBAIC0xODIzLDI1ICsxODIw LDI1IEBAIHN0cnVjdCBpbnRlbF93bV9jb25maWcgewogICogbWVtX3ZhbHVlIG11c3QgYmUgaW4g MC4xdXMgdW5pdHMuCiAgKi8KIHN0YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9wcmlfd20oY29u c3Qgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgKnBhcmFtcywKKwkJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSwKIAkJCQkgICB1aW50MzJfdCBtZW1fdmFs dWUsCiAJCQkJICAgYm9vbCBpc19scCkKIHsKKwlpbnQgYnBwID0gcHN0YXRlLT5iYXNlLmZiID8g cHN0YXRlLT5iYXNlLmZiLT5iaXRzX3Blcl9waXhlbCAvIDggOiAwOwogCXVpbnQzMl90IG1ldGhv ZDEsIG1ldGhvZDI7CiAKLQlpZiAoIXBhcmFtcy0+YWN0aXZlIHx8ICFwYXJhbXMtPnByaS5lbmFi bGVkKQorCWlmICghcGFyYW1zLT5hY3RpdmUgfHwgIXBzdGF0ZS0+dmlzaWJsZSkKIAkJcmV0dXJu IDA7CiAKLQltZXRob2QxID0gaWxrX3dtX21ldGhvZDEocGFyYW1zLT5waXhlbF9yYXRlLAotCQkJ CSBwYXJhbXMtPnByaS5ieXRlc19wZXJfcGl4ZWwsCi0JCQkJIG1lbV92YWx1ZSk7CisJbWV0aG9k MSA9IGlsa193bV9tZXRob2QxKHBhcmFtcy0+cGl4ZWxfcmF0ZSwgYnBwLCBtZW1fdmFsdWUpOwog CiAJaWYgKCFpc19scCkKIAkJcmV0dXJuIG1ldGhvZDE7CiAKIAltZXRob2QyID0gaWxrX3dtX21l dGhvZDIocGFyYW1zLT5waXhlbF9yYXRlLAogCQkJCSBwYXJhbXMtPnBpcGVfaHRvdGFsLAotCQkJ CSBwYXJhbXMtPnByaS5ob3Jpel9waXhlbHMsCi0JCQkJIHBhcmFtcy0+cHJpLmJ5dGVzX3Blcl9w aXhlbCwKKwkJCQkgZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+ZHN0KSwKKwkJCQkgYnBwLAogCQkJ CSBtZW1fdmFsdWUpOwogCiAJcmV0dXJuIG1pbihtZXRob2QxLCBtZXRob2QyKTsKQEAgLTE4NTIs MjAgKzE4NDksMjAgQEAgc3RhdGljIHVpbnQzMl90IGlsa19jb21wdXRlX3ByaV93bShjb25zdCBz dHJ1Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcGFyYW1zLAogICogbWVtX3ZhbHVlIG11c3Qg YmUgaW4gMC4xdXMgdW5pdHMuCiAgKi8KIHN0YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9zcHJf d20oY29uc3Qgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgKnBhcmFtcywKKwkJCQkgICBj b25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzdGF0ZSwKIAkJCQkgICB1aW50MzJfdCBt ZW1fdmFsdWUpCiB7CisJaW50IGJwcCA9IHBzdGF0ZS0+YmFzZS5mYiA/IHBzdGF0ZS0+YmFzZS5m Yi0+Yml0c19wZXJfcGl4ZWwgLyA4IDogMDsKIAl1aW50MzJfdCBtZXRob2QxLCBtZXRob2QyOwog Ci0JaWYgKCFwYXJhbXMtPmFjdGl2ZSB8fCAhcGFyYW1zLT5zcHIuZW5hYmxlZCkKKwlpZiAoIXBh cmFtcy0+YWN0aXZlIHx8ICFwc3RhdGUtPnZpc2libGUpCiAJCXJldHVybiAwOwogCi0JbWV0aG9k MSA9IGlsa193bV9tZXRob2QxKHBhcmFtcy0+cGl4ZWxfcmF0ZSwKLQkJCQkgcGFyYW1zLT5zcHIu Ynl0ZXNfcGVyX3BpeGVsLAotCQkJCSBtZW1fdmFsdWUpOworCW1ldGhvZDEgPSBpbGtfd21fbWV0 aG9kMShwYXJhbXMtPnBpeGVsX3JhdGUsIGJwcCwgbWVtX3ZhbHVlKTsKIAltZXRob2QyID0gaWxr X3dtX21ldGhvZDIocGFyYW1zLT5waXhlbF9yYXRlLAogCQkJCSBwYXJhbXMtPnBpcGVfaHRvdGFs LAotCQkJCSBwYXJhbXMtPnNwci5ob3Jpel9waXhlbHMsCi0JCQkJIHBhcmFtcy0+c3ByLmJ5dGVz X3Blcl9waXhlbCwKKwkJCQkgZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+ZHN0KSwKKwkJCQkgYnBw LAogCQkJCSBtZW1fdmFsdWUpOwogCXJldHVybiBtaW4obWV0aG9kMSwgbWV0aG9kMik7CiB9CkBA IC0xODc1LDI4ICsxODcyLDMyIEBAIHN0YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9zcHJfd20o Y29uc3Qgc3RydWN0IGlsa19waXBlX3dtX3BhcmFtZXRlcnMgKnBhcmFtcywKICAqIG1lbV92YWx1 ZSBtdXN0IGJlIGluIDAuMXVzIHVuaXRzLgogICovCiBzdGF0aWMgdWludDMyX3QgaWxrX2NvbXB1 dGVfY3VyX3dtKGNvbnN0IHN0cnVjdCBpbGtfcGlwZV93bV9wYXJhbWV0ZXJzICpwYXJhbXMsCisJ CQkJICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwc3RhdGUsCiAJCQkJICAgdWlu dDMyX3QgbWVtX3ZhbHVlKQogewotCWlmICghcGFyYW1zLT5hY3RpdmUgfHwgIXBhcmFtcy0+Y3Vy LmVuYWJsZWQpCisJaW50IGJwcCA9IHBzdGF0ZS0+YmFzZS5mYiA/IHBzdGF0ZS0+YmFzZS5mYi0+ Yml0c19wZXJfcGl4ZWwgLyA4IDogMDsKKworCWlmICghcGFyYW1zLT5hY3RpdmUgfHwgIXBzdGF0 ZS0+dmlzaWJsZSkKIAkJcmV0dXJuIDA7CiAKIAlyZXR1cm4gaWxrX3dtX21ldGhvZDIocGFyYW1z LT5waXhlbF9yYXRlLAogCQkJICAgICAgcGFyYW1zLT5waXBlX2h0b3RhbCwKLQkJCSAgICAgIHBh cmFtcy0+Y3VyLmhvcml6X3BpeGVscywKLQkJCSAgICAgIHBhcmFtcy0+Y3VyLmJ5dGVzX3Blcl9w aXhlbCwKKwkJCSAgICAgIGRybV9yZWN0X3dpZHRoKCZwc3RhdGUtPmRzdCksCisJCQkgICAgICBi cHAsCiAJCQkgICAgICBtZW1fdmFsdWUpOwogfQogCiAvKiBPbmx5IGZvciBXTV9MUC4gKi8KIHN0 YXRpYyB1aW50MzJfdCBpbGtfY29tcHV0ZV9mYmNfd20oY29uc3Qgc3RydWN0IGlsa19waXBlX3dt X3BhcmFtZXRlcnMgKnBhcmFtcywKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBzdGF0ZSwKIAkJCQkgICB1aW50MzJfdCBwcmlfdmFsKQogewotCWlmICghcGFyYW1zLT5h Y3RpdmUgfHwgIXBhcmFtcy0+cHJpLmVuYWJsZWQpCisJaW50IGJwcCA9IHBzdGF0ZS0+YmFzZS5m YiA/IHBzdGF0ZS0+YmFzZS5mYi0+Yml0c19wZXJfcGl4ZWwgLyA4IDogMDsKKworCWlmICghcGFy YW1zLT5hY3RpdmUgfHwgIXBzdGF0ZS0+dmlzaWJsZSkKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4g aWxrX3dtX2ZiYyhwcmlfdmFsLAotCQkJICBwYXJhbXMtPnByaS5ob3Jpel9waXhlbHMsCi0JCQkg IHBhcmFtcy0+cHJpLmJ5dGVzX3Blcl9waXhlbCk7CisJcmV0dXJuIGlsa193bV9mYmMocHJpX3Zh bCwgZHJtX3JlY3Rfd2lkdGgoJnBzdGF0ZS0+ZHN0KSwgYnBwKTsKIH0KIAogc3RhdGljIHVuc2ln bmVkIGludCBpbGtfZGlzcGxheV9maWZvX3NpemUoY29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRl dikKQEAgLTIwNjEsMTAgKzIwNjIsMTIgQEAgc3RhdGljIGJvb2wgaWxrX3ZhbGlkYXRlX3dtX2xl dmVsKGludCBsZXZlbCwKIH0KIAogc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fbGV2ZWwoY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCQkgaW50IGxldmVsLAogCQkJCSBjb25zdCBzdHJ1 Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcCwKIAkJCQkgc3RydWN0IGludGVsX3dtX2xldmVs ICpyZXN1bHQpCiB7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKIAl1aW50MTZf dCBwcmlfbGF0ZW5jeSA9IGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF07CiAJdWludDE2 X3Qgc3ByX2xhdGVuY3kgPSBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3lbbGV2ZWxdOwogCXVpbnQx Nl90IGN1cl9sYXRlbmN5ID0gZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5W2xldmVsXTsKQEAgLTIw NzYsMTAgKzIwNzksMjkgQEAgc3RhdGljIHZvaWQgaWxrX2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQljdXJfbGF0ZW5jeSAqPSA1Owog CX0KIAotCXJlc3VsdC0+cHJpX3ZhbCA9IGlsa19jb21wdXRlX3ByaV93bShwLCBwcmlfbGF0ZW5j eSwgbGV2ZWwpOwotCXJlc3VsdC0+c3ByX3ZhbCA9IGlsa19jb21wdXRlX3Nwcl93bShwLCBzcHJf bGF0ZW5jeSk7Ci0JcmVzdWx0LT5jdXJfdmFsID0gaWxrX2NvbXB1dGVfY3VyX3dtKHAsIGN1cl9s YXRlbmN5KTsKLQlyZXN1bHQtPmZiY192YWwgPSBpbGtfY29tcHV0ZV9mYmNfd20ocCwgcmVzdWx0 LT5wcmlfdmFsKTsKKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldl9wcml2LT5kZXYs IGludGVsX2NydGMsIGludGVsX3BsYW5lKSB7CisJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq cHN0YXRlID0KKwkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGludGVsX3BsYW5lLT5iYXNlLnN0YXRl KTsKKworCQlzd2l0Y2ggKGludGVsX3BsYW5lLT5iYXNlLnR5cGUpIHsKKwkJY2FzZSBEUk1fUExB TkVfVFlQRV9QUklNQVJZOgorCQkJcmVzdWx0LT5wcmlfdmFsID0gaWxrX2NvbXB1dGVfcHJpX3dt KHAsIHBzdGF0ZSwKKwkJCQkJCQkgICAgIHByaV9sYXRlbmN5LAorCQkJCQkJCSAgICAgbGV2ZWwp OworCQkJcmVzdWx0LT5mYmNfdmFsID0gaWxrX2NvbXB1dGVfZmJjX3dtKHAsIHBzdGF0ZSwKKwkJ CQkJCQkgICAgIHJlc3VsdC0+cHJpX3ZhbCk7CisJCQlicmVhazsKKwkJY2FzZSBEUk1fUExBTkVf VFlQRV9PVkVSTEFZOgorCQkJcmVzdWx0LT5zcHJfdmFsID0gaWxrX2NvbXB1dGVfc3ByX3dtKHAs IHBzdGF0ZSwKKwkJCQkJCQkgICAgIHNwcl9sYXRlbmN5KTsKKwkJCWJyZWFrOworCQljYXNlIERS TV9QTEFORV9UWVBFX0NVUlNPUjoKKwkJCXJlc3VsdC0+Y3VyX3ZhbCA9IGlsa19jb21wdXRlX2N1 cl93bShwLCBwc3RhdGUsCisJCQkJCQkJICAgICBjdXJfbGF0ZW5jeSk7CisJCQlicmVhazsKKwkJ fQorCX0KKwogCXJlc3VsdC0+ZW5hYmxlID0gdHJ1ZTsKIH0KIApAQCAtMjM0MSwxMCArMjM2Myw3 IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiBzdGF0aWMgdm9pZCBpbGtfY29tcHV0ZV93bV9wYXJhbWV0ZXJzKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAkJCQkgICAgICBzdHJ1Y3QgaWxrX3BpcGVfd21fcGFyYW1ldGVycyAqcCkKIHsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQllbnVtIHBpcGUgcGlwZSA9IGlu dGVsX2NydGMtPnBpcGU7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAKIAlpZiAoIWludGVs X2NydGMtPmFjdGl2ZSkKIAkJcmV0dXJuOwpAQCAtMjM1MiwzMiArMjM3MSw2IEBAIHN0YXRpYyB2 b2lkIGlsa19jb21wdXRlX3dtX3BhcmFtZXRlcnMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXAt PmFjdGl2ZSA9IHRydWU7CiAJcC0+cGlwZV9odG90YWwgPSBpbnRlbF9jcnRjLT5jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKIAlwLT5waXhlbF9yYXRlID0gaWxrX3BpcGVf cGl4ZWxfcmF0ZShpbnRlbF9jcnRjLT5jb25maWcpOwotCi0JaWYgKGNydGMtPnByaW1hcnktPnN0 YXRlLT5mYikKLQkJcC0+cHJpLmJ5dGVzX3Blcl9waXhlbCA9Ci0JCQljcnRjLT5wcmltYXJ5LT5z dGF0ZS0+ZmItPmJpdHNfcGVyX3BpeGVsIC8gODsKLQllbHNlCi0JCXAtPnByaS5ieXRlc19wZXJf cGl4ZWwgPSA0OwotCi0JcC0+Y3VyLmJ5dGVzX3Blcl9waXhlbCA9IDQ7Ci0JLyoKLQkgKiBUT0RP OiBmb3Igbm93LCBhc3N1bWUgcHJpbWFyeSBhbmQgY3Vyc29yIHBsYW5lcyBhcmUgYWx3YXlzIGVu YWJsZWQuCi0JICogU2V0dGluZyB0aGVtIHRvIGZhbHNlIG1ha2VzIHRoZSBzY3JlZW4gZmxpY2tl ci4KLQkgKi8KLQlwLT5wcmkuZW5hYmxlZCA9IHRydWU7Ci0JcC0+Y3VyLmVuYWJsZWQgPSB0cnVl OwotCi0JcC0+cHJpLmhvcml6X3BpeGVscyA9IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9zcmNf dzsKLQlwLT5jdXIuaG9yaXpfcGl4ZWxzID0gaW50ZWxfY3J0Yy0+YmFzZS5jdXJzb3ItPnN0YXRl LT5jcnRjX3c7Ci0KLQlkcm1fZm9yX2VhY2hfbGVnYWN5X3BsYW5lKHBsYW5lLCBkZXYpIHsKLQkJ c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsK LQotCQlpZiAoaW50ZWxfcGxhbmUtPnBpcGUgPT0gcGlwZSkgewotCQkJcC0+c3ByID0gaW50ZWxf cGxhbmUtPndtOwotCQkJYnJlYWs7Ci0JCX0KLQl9CiB9CiAKIHN0YXRpYyB2b2lkIGlsa19jb21w dXRlX3dtX2NvbmZpZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LApAQCAtMjQwNSwyOCArMjM5OCw0 MiBAQCBzdGF0aWMgYm9vbCBpbnRlbF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGRybV9jcnRjICpj cnRjLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJY29uc3Qgc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJc3RydWN0 IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnNw cnN0YXRlID0gTlVMTDsKIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwo ZGV2KTsKIAkvKiBMUDAgd2F0ZXJtYXJrIG1heGltdW1zIGRlcGVuZCBvbiB0aGlzIHBpcGUgYWxv bmUgKi8KIAlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIGNvbmZpZyA9IHsKIAkJLm51bV9waXBlc19h Y3RpdmUgPSAxLAotCQkuc3ByaXRlc19lbmFibGVkID0gcGFyYW1zLT5zcHIuZW5hYmxlZCwKLQkJ LnNwcml0ZXNfc2NhbGVkID0gcGFyYW1zLT5zcHIuc2NhbGVkLAogCX07CiAJc3RydWN0IGlsa193 bV9tYXhpbXVtcyBtYXg7CiAKKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgaW50 ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKKwkJaWYgKGludGVsX3BsYW5lLT5iYXNlLnR5cGUgPT0g RFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkgeworCQkJc3Byc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9z dGF0ZShpbnRlbF9wbGFuZS0+YmFzZS5zdGF0ZSk7CisJCQlicmVhazsKKwkJfQorCX0KKworCWNv bmZpZy5zcHJpdGVzX2VuYWJsZWQgPSBzcHJzdGF0ZS0+dmlzaWJsZTsKKwljb25maWcuc3ByaXRl c19zY2FsZWQgPSBzcHJzdGF0ZS0+dmlzaWJsZSAmJgorCQkoZHJtX3JlY3Rfd2lkdGgoJnNwcnN0 YXRlLT5kc3QpICE9IGRybV9yZWN0X3dpZHRoKCZzcHJzdGF0ZS0+c3JjKSA+PiAxNiB8fAorCQlk cm1fcmVjdF9oZWlnaHQoJnNwcnN0YXRlLT5kc3QpICE9IGRybV9yZWN0X2hlaWdodCgmc3Byc3Rh dGUtPnNyYykgPj4gMTYpOworCisKIAlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBwYXJhbXMtPmFj dGl2ZTsKLQlwaXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQgPSBwYXJhbXMtPnNwci5lbmFibGVkOwot CXBpcGVfd20tPnNwcml0ZXNfc2NhbGVkID0gcGFyYW1zLT5zcHIuc2NhbGVkOworCXBpcGVfd20t PnNwcml0ZXNfZW5hYmxlZCA9IHNwcnN0YXRlLT52aXNpYmxlOworCXBpcGVfd20tPnNwcml0ZXNf c2NhbGVkID0gY29uZmlnLnNwcml0ZXNfc2NhbGVkOwogCiAJLyogSUxLL1NOQjogTFAyKyB3YXRl cm1hcmtzIG9ubHkgdy9vIHNwcml0ZXMgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0g NiAmJiBwYXJhbXMtPnNwci5lbmFibGVkKQorCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA2 ICYmIHNwcnN0YXRlLT52aXNpYmxlKQogCQltYXhfbGV2ZWwgPSAxOwogCiAJLyogSUxLL1NOQi9J VkI6IExQMSsgd2F0ZXJtYXJrcyBvbmx5IHcvbyBzY2FsaW5nICovCi0JaWYgKHBhcmFtcy0+c3By LnNjYWxlZCkKKwlpZiAoY29uZmlnLnNwcml0ZXNfc2NhbGVkKQogCQltYXhfbGV2ZWwgPSAwOwog Ci0JaWxrX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIDAsIHBhcmFtcywgJnBpcGVfd20tPndt WzBdKTsKKwlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgMCwgcGFy YW1zLCAmcGlwZV93bS0+d21bMF0pOwogCiAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9B RFdFTEwoZGV2KSkKIAkJcGlwZV93bS0+bGluZXRpbWUgPSBoc3dfY29tcHV0ZV9saW5ldGltZV93 bShkZXYsIGNydGMpOwpAQCAtMjQ0Myw3ICsyNDUwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfY29t cHV0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlmb3IgKGxldmVsID0gMTsgbGV2 ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7CiAJCXN0cnVjdCBpbnRlbF93bV9sZXZlbCB3bSA9 IHt9OwogCi0JCWlsa19jb21wdXRlX3dtX2xldmVsKGRldl9wcml2LCBsZXZlbCwgcGFyYW1zLCAm d20pOworCQlpbGtfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJpdiwgaW50ZWxfY3J0YywgbGV2ZWws IHBhcmFtcywgJndtKTsKIAogCQkvKgogCQkgKiBEaXNhYmxlIGFueSB3YXRlcm1hcmsgbGV2ZWwg dGhhdCBleGNlZWRzIHRoZQotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==