From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v3 08/18] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() Date: Wed, 20 Jan 2016 21:05:29 +0200 Message-ID: <1453316739-13296-9-git-send-email-ville.syrjala@linux.intel.com> References: <1453316739-13296-1-git-send-email-ville.syrjala@linux.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 BCAFE6E18C for ; Wed, 20 Jan 2016 11:06:05 -0800 (PST) In-Reply-To: <1453316739-13296-1-git-send-email-ville.syrjala@linux.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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBwYWdlIGFsaWduZWQgc3VyZmFjZSBhZGRyZXNzIGNhbGN1bGF0aW9uIG5lZWRzIHRvIGtub3cg d2hpY2ggd2F5CnRoaW5ncyBhcmUgcm90YXRlZC4gVGhlIGNvbnRyYWN0IG5vdyBzYXlzIHRoYXQg dGhlIGNhbGxlciBtdXN0IHBhc3MgdGhlCnJvdGF0ZSB4L3kgY29vcmRpbmF0ZXMsIGFzIHdlbGwg YXMgdGhlIHRpbGVfaGVpZ2h0IGFsaWduZWQgc3RyaWRlIGluCnRoZSB0aWxlX2hlaWdodCBkaXJl Y3Rpb24uIFRoaXMgd2lsbCBtYWtlIGl0IGZhaXJseSBzaW1wbGUgdG8gZGVhbCB3aXRoCjkwLzI3 MCBkZWdyZWUgcm90YXRpb24gb24gU0tMKyB3aGVyZSB3ZSBoYXZlIHRvIGRlYWwgd2l0aCB0aGUg cm90YXRlZAp2aWV3IGludG8gdGhlIEdUVC4KCnYyOiBQYXNzIHJvdGF0aW9uIGluc3RlYWQgb2Yg Ym9vbCBldmVuIHRob3VnaHdlIG9ubHkgY2FyZSBhYm91dCAwLzE4MCB2cy4gOTAvMjcwCnYzOiBJ bnRyb2R1Y2UgaW50ZWxfdGlsZV9kaW1zKCksIGFuZCBkb24ndCBtaXggdXAgZGlmZmVyZW50IHVu aXRzIHNvIG11Y2gKClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPiAodjIpCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfc3ByaXRlLmMgIHwgMTggKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNl cnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKaW5kZXggY2ZkNTJlYTY4ZTM0Li5iZGEzMjI0MDIxYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKQEAgLTIyNjksNiArMjI2OSwxOCBAQCB1bnNpZ25lZCBpbnQgaW50ZWxf dGlsZV9oZWlnaHQoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ aW50ZWxfdGlsZV93aWR0aChkZXZfcHJpdiwgZmJfbW9kaWZpZXIsIGNwcCk7CiB9CiAKKy8qIFJl dHVybiB0aGUgdGlsZSBkaW1lbnNpb25zIGluIHBpeGVsIHVuaXRzICovCitzdGF0aWMgdm9pZCBp bnRlbF90aWxlX2RpbXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor CQkJICAgIHVuc2lnbmVkIGludCAqdGlsZV93aWR0aCwKKwkJCSAgICB1bnNpZ25lZCBpbnQgKnRp bGVfaGVpZ2h0LAorCQkJICAgIHVpbnQ2NF90IGZiX21vZGlmaWVyLAorCQkJICAgIHVuc2lnbmVk IGludCBjcHApCit7CisJKnRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoKGRldl9wcml2LCBm Yl9tb2RpZmllciwgY3BwKTsKKwkqdGlsZV9oZWlnaHQgPSBpbnRlbF90aWxlX3NpemUoZGV2X3By aXYpIC8gKnRpbGVfd2lkdGg7CisJKnRpbGVfd2lkdGggLz0gY3BwOworfQorCiB1bnNpZ25lZCBp bnQKIGludGVsX2ZiX2FsaWduX2hlaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25l ZCBpbnQgaGVpZ2h0LAogCQkgICAgICB1aW50MzJfdCBwaXhlbF9mb3JtYXQsIHVpbnQ2NF90IGZi X21vZGlmaWVyKQpAQCAtMjMwNiwxOSArMjMxOCwxOSBAQCBpbnRlbF9maWxsX2ZiX2dndHRfdmll dyhzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi LAogCXRpbGVfc2l6ZSA9IGludGVsX3RpbGVfc2l6ZShkZXZfcHJpdik7CiAKIAljcHAgPSBkcm1f Zm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQl0aWxlX3dpZHRoID0gaW50 ZWxfdGlsZV93aWR0aChkZXZfcHJpdiwgZmItPm1vZGlmaWVyWzBdLCBjcHApOwotCXRpbGVfaGVp Z2h0ID0gdGlsZV9zaXplIC8gdGlsZV93aWR0aDsKKwlpbnRlbF90aWxlX2RpbXMoZGV2X3ByaXYs ICZ0aWxlX3dpZHRoLCAmdGlsZV9oZWlnaHQsCisJCQlmYi0+bW9kaWZpZXJbMF0sIGNwcCk7CiAK LQlpbmZvLT53aWR0aF9wYWdlcyA9IERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1swXSwgdGlsZV93 aWR0aCk7CisJaW5mby0+d2lkdGhfcGFnZXMgPSBESVZfUk9VTkRfVVAoZmItPnBpdGNoZXNbMF0s IHRpbGVfd2lkdGggKiBjcHApOwogCWluZm8tPmhlaWdodF9wYWdlcyA9IERJVl9ST1VORF9VUChm Yi0+aGVpZ2h0LCB0aWxlX2hlaWdodCk7CiAJaW5mby0+c2l6ZSA9IGluZm8tPndpZHRoX3BhZ2Vz ICogaW5mby0+aGVpZ2h0X3BhZ2VzICogdGlsZV9zaXplOwogCiAJaWYgKGluZm8tPnBpeGVsX2Zv cm1hdCA9PSBEUk1fRk9STUFUX05WMTIpIHsKIAkJY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAo ZmItPnBpeGVsX2Zvcm1hdCwgMSk7Ci0JCXRpbGVfd2lkdGggPSBpbnRlbF90aWxlX3dpZHRoKGRl dl9wcml2LCBmYi0+bW9kaWZpZXJbMV0sIGNwcCk7Ci0JCXRpbGVfaGVpZ2h0ID0gdGlsZV9zaXpl IC8gdGlsZV93aWR0aDsKKwkJaW50ZWxfdGlsZV9kaW1zKGRldl9wcml2LCAmdGlsZV93aWR0aCwg JnRpbGVfaGVpZ2h0LAorCQkJCWZiLT5tb2RpZmllclsxXSwgY3BwKTsKIAotCQlpbmZvLT53aWR0 aF9wYWdlc191diA9IERJVl9ST1VORF9VUChmYi0+cGl0Y2hlc1sxXSwgdGlsZV93aWR0aCk7CisJ CWluZm8tPndpZHRoX3BhZ2VzX3V2ID0gRElWX1JPVU5EX1VQKGZiLT5waXRjaGVzWzFdLCB0aWxl X3dpZHRoICogY3BwKTsKIAkJaW5mby0+aGVpZ2h0X3BhZ2VzX3V2ID0gRElWX1JPVU5EX1VQKGZi LT5oZWlnaHQgLyAyLCB0aWxlX2hlaWdodCk7CiAJCWluZm8tPnNpemVfdXYgPSBpbmZvLT53aWR0 aF9wYWdlc191diAqIGluZm8tPmhlaWdodF9wYWdlc191diAqIHRpbGVfc2l6ZTsKIAl9CkBAIC0y NDQ2LDI5ICsyNDU4LDQzIEBAIHN0YXRpYyB2b2lkIGludGVsX3VucGluX2ZiX29iaihzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAlpOTE1X2dlbV9vYmplY3RfdW5waW5fZnJvbV9kaXNwbGF5 X3BsYW5lKG9iaiwgJnZpZXcpOwogfQogCi0vKiBDb21wdXRlcyB0aGUgbGluZWFyIG9mZnNldCB0 byB0aGUgYmFzZSB0aWxlIGFuZCBhZGp1c3RzIHgsIHkuIGJ5dGVzIHBlciBwaXhlbAotICogaXMg YXNzdW1lZCB0byBiZSBhIHBvd2VyLW9mLXR3by4gKi8KKy8qCisgKiBDb21wdXRlcyB0aGUgbGlu ZWFyIG9mZnNldCB0byB0aGUgYmFzZSB0aWxlIGFuZCBhZGp1c3RzCisgKiB4LCB5LiBieXRlcyBw ZXIgcGl4ZWwgaXMgYXNzdW1lZCB0byBiZSBhIHBvd2VyLW9mLXR3by4KKyAqCisgKiBJbiB0aGUg OTAvMjcwIHJvdGF0ZWQgY2FzZSwgeCBhbmQgeSBhcmUgYXNzdW1lZAorICogdG8gYmUgYWxyZWFk eSByb3RhdGVkIHRvIG1hdGNoIHRoZSByb3RhdGVkIEdUVCB2aWV3LCBhbmQKKyAqIHBpdGNoIGlz IHRoZSB0aWxlX2hlaWdodCBhbGlnbmVkIGZyYW1lYnVmZmVyIGhlaWdodC4KKyAqLwogdTMyIGlu dGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQkJICAgICAgaW50ICp4LCBpbnQgKnksCiAJCQkgICAgICB1aW50NjRfdCBmYl9tb2RpZmll ciwKIAkJCSAgICAgIHVuc2lnbmVkIGludCBjcHAsCi0JCQkgICAgICB1bnNpZ25lZCBpbnQgcGl0 Y2gpCisJCQkgICAgICB1bnNpZ25lZCBpbnQgcGl0Y2gsCisJCQkgICAgICB1bnNpZ25lZCBpbnQg cm90YXRpb24pCiB7CiAJaWYgKGZiX21vZGlmaWVyICE9IERSTV9GT1JNQVRfTU9EX05PTkUpIHsK IAkJdW5zaWduZWQgaW50IHRpbGVfc2l6ZSwgdGlsZV93aWR0aCwgdGlsZV9oZWlnaHQ7Ci0JCXVu c2lnbmVkIGludCB0aWxlX3Jvd3MsIHRpbGVzOworCQl1bnNpZ25lZCBpbnQgdGlsZV9yb3dzLCB0 aWxlcywgcGl0Y2hfdGlsZXM7CiAKIAkJdGlsZV9zaXplID0gaW50ZWxfdGlsZV9zaXplKGRldl9w cml2KTsKLQkJdGlsZV93aWR0aCA9IGludGVsX3RpbGVfd2lkdGgoZGV2X3ByaXYsIGZiX21vZGlm aWVyLCBjcHApOwotCQl0aWxlX2hlaWdodCA9IHRpbGVfc2l6ZSAvIHRpbGVfd2lkdGg7CisJCWlu dGVsX3RpbGVfZGltcyhkZXZfcHJpdiwgJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCwKKwkJCQlm Yl9tb2RpZmllciwgY3BwKTsKKworCQlpZiAoaW50ZWxfcm90YXRpb25fOTBfb3JfMjcwKHJvdGF0 aW9uKSkgeworCQkJcGl0Y2hfdGlsZXMgPSBwaXRjaCAvIHRpbGVfaGVpZ2h0OworCQkJc3dhcCh0 aWxlX3dpZHRoLCB0aWxlX2hlaWdodCk7CisJCX0gZWxzZSB7CisJCQlwaXRjaF90aWxlcyA9IHBp dGNoIC8gKHRpbGVfd2lkdGggKiBjcHApOworCQl9CiAKIAkJdGlsZV9yb3dzID0gKnkgLyB0aWxl X2hlaWdodDsKIAkJKnkgJT0gdGlsZV9oZWlnaHQ7CiAKLQkJdGlsZXMgPSAqeCAvICh0aWxlX3dp ZHRoL2NwcCk7Ci0JCSp4ICU9IHRpbGVfd2lkdGgvY3BwOworCQl0aWxlcyA9ICp4IC8gdGlsZV93 aWR0aDsKKwkJKnggJT0gdGlsZV93aWR0aDsKIAotCQlyZXR1cm4gdGlsZV9yb3dzICogcGl0Y2gg KiB0aWxlX2hlaWdodCArIHRpbGVzICogdGlsZV9zaXplOworCQlyZXR1cm4gKHRpbGVfcm93cyAq IHBpdGNoX3RpbGVzICsgdGlsZXMpICogdGlsZV9zaXplOwogCX0gZWxzZSB7CiAJCXVuc2lnbmVk IGludCBhbGlnbm1lbnQgPSBpbnRlbF9saW5lYXJfYWxpZ25tZW50KGRldl9wcml2KSAtIDE7CiAJ CXVuc2lnbmVkIGludCBvZmZzZXQ7CkBAIC0yNzA5LDYgKzI3MzUsNyBAQCBzdGF0aWMgdm9pZCBp OXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCiAJdTMy IGxpbmVhcl9vZmZzZXQ7CiAJdTMyIGRzcGNudHI7CiAJaTkxNV9yZWdfdCByZWcgPSBEU1BDTlRS KHBsYW5lKTsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3Rh dGlvbjsKIAlpbnQgY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwg MCk7CiAJaW50IHggPSBwbGFuZV9zdGF0ZS0+c3JjLngxID4+IDE2OwogCWludCB5ID0gcGxhbmVf c3RhdGUtPnNyYy55MSA+PiAxNjsKQEAgLTI3NzUsMTMgKzI4MDIsMTMgQEAgc3RhdGljIHZvaWQg aTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAogCQlp bnRlbF9jcnRjLT5kc3BhZGRyX29mZnNldCA9CiAJCQlpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0 KGRldl9wcml2LCAmeCwgJnksCiAJCQkJCQkgIGZiLT5tb2RpZmllclswXSwgY3BwLAotCQkJCQkJ ICBmYi0+cGl0Y2hlc1swXSk7CisJCQkJCQkgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7CiAJ CWxpbmVhcl9vZmZzZXQgLT0gaW50ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQ7CiAJfSBlbHNlIHsK IAkJaW50ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQgPSBsaW5lYXJfb2Zmc2V0OwogCX0KIAotCWlm IChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7CisJ aWYgKHJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKIAkJZHNwY250ciB8PSBESVNQ UExBTkVfUk9UQVRFXzE4MDsKIAogCQl4ICs9IChjcnRjX3N0YXRlLT5waXBlX3NyY193IC0gMSk7 CkBAIC0yODM5LDYgKzI4NjYsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFy eV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAogCXUzMiBsaW5lYXJfb2Zmc2V0Owog CXUzMiBkc3BjbnRyOwogCWk5MTVfcmVnX3QgcmVnID0gRFNQQ05UUihwbGFuZSk7CisJdW5zaWdu ZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CiAJaW50IGNwcCA9 IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwogCWludCB4ID0gcGxh bmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKIAlpbnQgeSA9IHBsYW5lX3N0YXRlLT5zcmMueTEgPj4g MTY7CkBAIC0yODgyLDkgKzI5MTAsOSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJp bWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAogCWludGVsX2NydGMtPmRzcGFk ZHJfb2Zmc2V0ID0KIAkJaW50ZWxfY29tcHV0ZV90aWxlX29mZnNldChkZXZfcHJpdiwgJngsICZ5 LAogCQkJCQkgIGZiLT5tb2RpZmllclswXSwgY3BwLAotCQkJCQkgIGZiLT5waXRjaGVzWzBdKTsK KwkJCQkJICBmYi0+cGl0Y2hlc1swXSwgcm90YXRpb24pOwogCWxpbmVhcl9vZmZzZXQgLT0gaW50 ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQ7Ci0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9u ID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKKwlpZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RB VEVfMTgwKSkgewogCQlkc3BjbnRyIHw9IERJU1BQTEFORV9ST1RBVEVfMTgwOwogCiAJCWlmICgh SVNfSEFTV0VMTChkZXYpICYmICFJU19CUk9BRFdFTEwoZGV2KSkgewpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAppbmRleCBmNjIwMDIzZWQxMzQuLjIyMzY5M2RiZmU3YyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKQEAgLTExNzYsNyArMTE3Niw4IEBAIHUzMiBpbnRlbF9jb21wdXRlX3RpbGVf b2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGludCAq eCwgaW50ICp5LAogCQkJICAgICAgdWludDY0X3QgZmJfbW9kaWZpZXIsCiAJCQkgICAgICB1bnNp Z25lZCBpbnQgY3BwLAotCQkJICAgICAgdW5zaWduZWQgaW50IHBpdGNoKTsKKwkJCSAgICAgIHVu c2lnbmVkIGludCBwaXRjaCwKKwkJCSAgICAgIHVuc2lnbmVkIGludCByb3RhdGlvbik7CiB2b2lk IGludGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGludGVs X2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaHN3X2VuYWJsZV9w Yzgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc3ByaXRlLmMKaW5kZXggYTI1ODJjNDU1YjM2Li43ZGMyYjhiMmE0YWMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC0xOTMsNyArMTkzLDcgQEAgc2tsX3VwZGF0ZV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsCiAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9z cHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKIAl1MzIgc3VyZl9hZGRy OwogCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwotCXVuc2lnbmVk IGludCByb3RhdGlvbjsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFz ZS5yb3RhdGlvbjsKIAlpbnQgeF9vZmZzZXQsIHlfb2Zmc2V0OwogCWludCBjcnRjX3ggPSBwbGFu ZV9zdGF0ZS0+ZHN0LngxOwogCWludCBjcnRjX3kgPSBwbGFuZV9zdGF0ZS0+ZHN0LnkxOwpAQCAt MjEzLDcgKzIxMyw2IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3Bs YW5lLAogCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+cGl4ZWxfZm9ybWF0 KTsKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF90aWxpbmcoZmItPm1vZGlmaWVyWzBdKTsK IAotCXJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247CiAJcGxhbmVfY3RsIHw9 IHNrbF9wbGFuZV9jdGxfcm90YXRpb24ocm90YXRpb24pOwogCiAJc3RyaWRlX2RpdiA9IGludGVs X2ZiX3N0cmlkZV9hbGlnbm1lbnQoZGV2X3ByaXYsIGZiLT5tb2RpZmllclswXSwKQEAgLTM1MSw2 ICszNTAsNyBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKIAlp bnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmU7CiAJdTMyIHNwcmN0bDsKIAl1MzIgc3Byc3Vy Zl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CisJdW5zaWduZWQgaW50IHJvdGF0aW9uID0gZHBsYW5l LT5zdGF0ZS0+cm90YXRpb247CiAJaW50IGNwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5w aXhlbF9mb3JtYXQsIDApOwogCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5 ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CiAJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5k c3QueDE7CkBAIC00MjUsMTAgKzQyNSwxMCBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1f cGxhbmUgKmRwbGFuZSwKIAlsaW5lYXJfb2Zmc2V0ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAq IGNwcDsKIAlzcHJzdXJmX29mZnNldCA9IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoZGV2X3By aXYsICZ4LCAmeSwKIAkJCQkJCSAgIGZiLT5tb2RpZmllclswXSwgY3BwLAotCQkJCQkJICAgZmIt PnBpdGNoZXNbMF0pOworCQkJCQkJICAgZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsKIAlsaW5l YXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0OwogCi0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJv dGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpIHsKKwlpZiAocm90YXRpb24gPT0gQklUKERS TV9ST1RBVEVfMTgwKSkgewogCQlzcHJjdGwgfD0gU1BfUk9UQVRFXzE4MDsKIAogCQl4ICs9IHNy Y193OwpAQCAtNDkzLDYgKzQ5Myw3IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKIAl1MzIgc3By Y3RsLCBzcHJzY2FsZSA9IDA7CiAJdTMyIHNwcnN1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0Owor CXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwogCWlu dCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKIAljb25z dCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBsYW5lX3N0YXRlLT5j a2V5OwogCWludCBjcnRjX3ggPSBwbGFuZV9zdGF0ZS0+ZHN0LngxOwpAQCAtNTU4LDEwICs1NTks MTAgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlsaW5lYXJf b2Zmc2V0ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIGNwcDsKIAlzcHJzdXJmX29mZnNldCA9 IGludGVsX2NvbXB1dGVfdGlsZV9vZmZzZXQoZGV2X3ByaXYsICZ4LCAmeSwKIAkJCQkJCSAgIGZi LT5tb2RpZmllclswXSwgY3BwLAotCQkJCQkJICAgZmItPnBpdGNoZXNbMF0pOworCQkJCQkJICAg ZmItPnBpdGNoZXNbMF0sIHJvdGF0aW9uKTsKIAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zm c2V0OwogCi0JaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRF XzE4MCkpIHsKKwlpZiAocm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgewogCQlzcHJj dGwgfD0gU1BSSVRFX1JPVEFURV8xODA7CiAKIAkJLyogSFNXIGFuZCBCRFcgZG9lcyB0aGlzIGF1 dG9tYWdpY2FsbHkgaW4gaGFyZHdhcmUgKi8KQEAgLTYzNCw2ICs2MzUsNyBAQCBpbGtfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWludCBwaXBlID0gaW50ZWxfcGxhbmUt PnBpcGU7CiAJdTMyIGR2c2NudHIsIGR2c3NjYWxlOwogCXUzMiBkdnNzdXJmX29mZnNldCwgbGlu ZWFyX29mZnNldDsKKwl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5y b3RhdGlvbjsKIAlpbnQgY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1h dCwgMCk7CiAJY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZw bGFuZV9zdGF0ZS0+Y2tleTsKIAlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKQEAg LTY5NSwxMCArNjk3LDEwIEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJbGluZWFyX29mZnNldCA9IHkgKiBmYi0+cGl0Y2hlc1swXSArIHggKiBjcHA7CiAJZHZz c3VyZl9vZmZzZXQgPSBpbnRlbF9jb21wdXRlX3RpbGVfb2Zmc2V0KGRldl9wcml2LCAmeCwgJnks CiAJCQkJCQkgICBmYi0+bW9kaWZpZXJbMF0sIGNwcCwKLQkJCQkJCSAgIGZiLT5waXRjaGVzWzBd KTsKKwkJCQkJCSAgIGZiLT5waXRjaGVzWzBdLCByb3RhdGlvbik7CiAJbGluZWFyX29mZnNldCAt PSBkdnNzdXJmX29mZnNldDsKIAotCWlmIChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBC SVQoRFJNX1JPVEFURV8xODApKSB7CisJaWYgKHJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRFXzE4 MCkpIHsKIAkJZHZzY250ciB8PSBEVlNfUk9UQVRFXzE4MDsKIAogCQl4ICs9IHNyY193OwotLSAK Mi40LjEwCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=