From mboxrd@z Thu Jan 1 00:00:00 1970 From: sonika.jindal@intel.com Subject: [PATCH 2/3] drm/i915: Add 180 degree primary plane rotation support Date: Tue, 24 Jun 2014 17:38:27 +0530 Message-ID: <1403611708-7559-3-git-send-email-sonika.jindal@intel.com> References: <20140619082148.GR5821@phenom.ffwll.local> <1403611708-7559-1-git-send-email-sonika.jindal@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id CBE8F6E042 for ; Tue, 24 Jun 2014 05:12:05 -0700 (PDT) In-Reply-To: <1403611708-7559-1-git-send-email-sonika.jindal@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 RnJvbTogU29uaWthIEppbmRhbCA8c29uaWthLmppbmRhbEBpbnRlbC5jb20+CgpQcmltYXJ5IHBs YW5lcyBzdXBwb3J0IDE4MCBkZWdyZWUgcm90YXRpb24uIEV4cG9zZSB0aGUgZmVhdHVyZQp0aHJv dWdoIHJvdGF0aW9uIGRybSBwcm9wZXJ0eS4KCnYyOiBDYWxjdWxhdGluZyBsaW5lYXIvdGlsZWQg b2Zmc2V0cyBiYXNlZCBvbiBwaXBlIHNvdXJjZSB3aWR0aCBhbmQKaGVpZ2h0LiBBZGRlZCAxODAg ZGVncmVlIHJvdGF0aW9uIHN1cHBvcnQgaW4gaXJvbmxha2VfdXBkYXRlX3BsYW5lLgoKdjM6IENo ZWNraW5nIGlmIENSVEMgaXMgYWN0aXZlIGJlZm9yZSBpc3N1ZWluZyB1cGRhdGVfcGxhbmUuIEFk ZGVkCndhaXQgZm9yIHZibGFuayB0byBtYWtlIHN1cmUgd2UgZG9udCBvdmVydGFrZSBwYWdlIGZs aXBzLiBEaXNhYmxpbmcKRkJDIHNpbmNlIGl0IGRvZXMgbm90IHdvcmsgd2l0aCByb3RhdGVkIHBs YW5lcy4KCnY0OiBVcGRhdGVkIHJvdGF0aW9uIGNoZWNrcyBmb3IgcGVuZGluZyBmbGlwcywgZmJj IGRpc2FibGUuIENyZWF0aW5nCnJvdGF0aW9uIHByb3BlcnR5IG9ubHkgZm9yIEdlbjQgb253YXJk cy4gUHJvcGVydHkgcmVzZXR0aW5nIGFzIHBhcnQKb2YgbGFzdGNsb3NlLgoKdjU6IFJlc2V0dGlu ZyBwcm9wZXJ0eSBpbiBpOTE1X2RyaXZlcl9sYXN0Y2xvc2UgcHJvcGVybHkgZm9yIHBsYW5lcwph bmQgY3J0Y3MuIEZpeGVkIGxpbmVhciBvZmZzZXQgY2FsY3VsYXRpb24gdGhhdCB3YXMgb2ZmIGJ5 IDEgdy5yLnQKd2lkdGggaW4gaTl4eF91cGRhdGVfcGxhbmUgYW5kIGlyb25sYWtlX3VwZGF0ZV9w bGFuZS4gUmVtb3ZlZCB0YWIKYmFzZWQgaW5kZW50YXRpb24gYW5kIHVubmVjZXNzYXJ5IGJyYWNl cyBpbiBpbnRlbF9jcnRjX3NldF9wcm9wZXJ0eQphbmQgaW50ZWxfdXBkYXRlX2ZiYy4gRkJDIGFu ZCBmbGlwIHJlbGF0ZWQgY2hlY2tzIHNob3VsZCBiZSBkb25lIG9ubHkKZm9yIHZhbGlkIGNydGNz LgoKdjY6IE1pbm9yIG5pdHMgaW4gRkJDIGRpc2FibGUgY2hlY2tzIGZvciBjb21tZW50cyBpbiBp bnRlbF9jcnRjX3NldF9wcm9wZXJ0eQphbmQgcG9zaXRpb25pbmcgdGhlIGRpc2FibGUgY29kZSBp biBpbnRlbF91cGRhdGVfZmJjLgoKdjc6IEluIGNhc2Ugcm90YXRpb24gcHJvcGVydHkgb24gaW5h Y3RpdmUgY3J0YyBpcyB1cGRhdGVkLCB3ZSByZXR1cm4Kc3VjY2Vzc2Z1bGx5IHByaW50aW5nIGRl YnVnIGxvZyBhcyBjcnRjIGlzIGluYWN0aXZlIGFuZCBvbmx5IHByb3BlcnR5IGNoYW5nZQppcyBw cmVzZXJ2ZWQuCgp2ODogdXBkYXRlX3BsYW5lIGlzIGNoYW5nZWQgdG8gdXBkYXRlX3ByaW1hcnlf cGxhbmUsIGNydGMtPmZiIGlzIGNoYW5nZWQgdG8KY3J0Yy0+cHJpbWFyeS0+ZmIgIGFuZCByZXR1 cm4gdmFsdWUgb2YgdXBkYXRlX3ByaW1hcnlfcGxhbmUgaXMgaWdub3JlZC4KCnY5OiBhZGRlZCBy b3RhdGlvbiBwcm9wZXJ0eSB0byBwcmltYXJ5IHBsYW5lIGluc3RlYWQgb2YgY3J0Yy4gUmVtb3Zp bmcgcmVzZXQKb2Ygcm90YXRpb24gcHJvcGVydHkgZnJvbSBsYXN0Y2xvc2UuIHJvdGF0aW9uX3By b3BlcnR5IGlzIG1vdmVkIHRvIGRybV9wbGFuZSxzbwpkcm0gbGF5ZXIgd2lsbCB0YWtlIGNhcmUg b2YgcmVzZXR0aW5nLgoKVGVzdGNhc2U6IGlndC9rbXNfcm90YXRpb25fY3JjCgpDYzogRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5p a3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn CkNjOiB2aWpheS5hLnB1cnVzaG90aGFtYW5AaW50ZWwuY29tClNpZ25lZC1vZmYtYnk6IFVtYSBT aGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZ2FyIEthbWJs ZSA8c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oICAgICAgfCAgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8ICAgOTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgICAgNyArKysKIDMgZmlsZXMgY2hhbmdl ZCwgOTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAppbmRleCBjNzBjODA0Li5jNjAwZDNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTQw ODcsNiArNDA4Nyw3IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7CiAjZGVmaW5lICAgRElTUFBM QU5FX05PX0xJTkVfRE9VQkxFCQkwCiAjZGVmaW5lICAgRElTUFBMQU5FX1NURVJFT19QT0xBUklU WV9GSVJTVAkwCiAjZGVmaW5lICAgRElTUFBMQU5FX1NURVJFT19QT0xBUklUWV9TRUNPTkQJKDE8 PDE4KQorI2RlZmluZSAgIERJU1BQTEFORV9ST1RBVEVfMTgwICAgICAgICAgKDE8PDE1KQogI2Rl ZmluZSAgIERJU1BQTEFORV9UUklDS0xFX0ZFRURfRElTQUJMRQkoMTw8MTQpIC8qIElyb25sYWtl ICovCiAjZGVmaW5lICAgRElTUFBMQU5FX1RJTEVECQkJKDE8PDEwKQogI2RlZmluZSBfRFNQQUFE RFIJCQkJMHg3MDE4NApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDVlOGU3 MTEuLjZkODdlM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTI0MTQs NyArMjQxNCw5IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCXVuc2lnbmVkIGxvbmcgbGluZWFyX29mZnNldDsKIAl1MzIgZHNw Y250cjsKIAl1MzIgcmVnOworCWludCBwaXhlbF9zaXplOwogCisJcGl4ZWxfc2l6ZSA9IGRybV9m b3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwogCWludGVsX2ZiID0gdG9faW50 ZWxfZnJhbWVidWZmZXIoZmIpOwogCW9iaiA9IGludGVsX2ZiLT5vYmo7CiAKQEAgLTI0MjIsNiAr MjQyNCw4IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCWRzcGNudHIgPSBJOTE1X1JFQUQocmVnKTsKIAkvKiBNYXNrIG91dCBw aXhlbCBmb3JtYXQgYml0cyBpbiBjYXNlIHdlIGNoYW5nZSBpdCAqLwogCWRzcGNudHIgJj0gfkRJ U1BQTEFORV9QSVhGT1JNQVRfTUFTSzsKKwlkc3BjbnRyICY9IH5ESVNQUExBTkVfUk9UQVRFXzE4 MDsKKwogCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoK IAkJZHNwY250ciB8PSBESVNQUExBTkVfOEJQUDsKQEAgLTI0NjMsOCArMjQ2Nyw2IEBAIHN0YXRp YyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CWlmIChJU19HNFgoZGV2KSkKIAkJZHNwY250ciB8PSBESVNQUExBTkVfVFJJQ0tMRV9GRUVEX0RJ U0FCTEU7CiAKLQlJOTE1X1dSSVRFKHJlZywgZHNwY250cik7Ci0KIAlsaW5lYXJfb2Zmc2V0ID0g eSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIChmYi0+Yml0c19wZXJfcGl4ZWwgLyA4KTsKIAogCWlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA0KSB7CkBAIC0yNDc3LDYgKzI0NzksMTggQEAgc3Rh dGljIHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0gbGluZWFyX29mZnNldDsKIAl9CiAKKwlp ZiAodG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSktPnJvdGF0aW9uID09IEJJVChEUk1fUk9U QVRFXzE4MCkpIHsKKwkJZHNwY250ciB8PSBESVNQUExBTkVfUk9UQVRFXzE4MDsKKworCQl4ICs9 IChpbnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpOworCQl5ICs9IChpbnRlbF9jcnRj LT5jb25maWcucGlwZV9zcmNfaCAtIDEpOworCQlsaW5lYXJfb2Zmc2V0ICs9IChpbnRlbF9jcnRj LT5jb25maWcucGlwZV9zcmNfaCAtIDEpICoKKwkJCWZiLT5waXRjaGVzWzBdICsKKwkJCShpbnRl bF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpICogcGl4ZWxfc2l6ZTsKKwl9CisKKwlJOTE1 X1dSSVRFKHJlZywgZHNwY250cik7CisKIAlEUk1fREVCVUdfS01TKCJXcml0aW5nIGJhc2UgJTA4 bFggJTA4bFggJWQgJWQgJWRcbiIsCiAJCSAgICAgIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChv YmopLCBsaW5lYXJfb2Zmc2V0LCB4LCB5LAogCQkgICAgICBmYi0+cGl0Y2hlc1swXSk7CkBAIC0y NDg3LDcgKzI1MDEsOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJSTkxNV9XUklURShEU1BUSUxFT0ZGKHBsYW5lKSwgKHkg PDwgMTYpIHwgeCk7CiAJCUk5MTVfV1JJVEUoRFNQTElOT0ZGKHBsYW5lKSwgbGluZWFyX29mZnNl dCk7CiAJfSBlbHNlCi0JCUk5MTVfV1JJVEUoRFNQQUREUihwbGFuZSksIGk5MTVfZ2VtX29ial9n Z3R0X29mZnNldChvYmopICsgbGluZWFyX29mZnNldCk7CisJCUk5MTVfV1JJVEUoRFNQQUREUihw bGFuZSksIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsKKwkJCQlsaW5lYXJfb2Zmc2V0 KTsKIAlQT1NUSU5HX1JFQUQocmVnKTsKIH0KIApAQCAtMjUwNCw3ICsyNTE5LDkgQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCXVuc2lnbmVkIGxvbmcgbGluZWFyX29mZnNldDsKIAl1MzIgZHNwY250cjsKIAl1MzIgcmVn OworCWludCBwaXhlbF9zaXplOwogCisJcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3Bw KGZiLT5waXhlbF9mb3JtYXQsIDApOwogCWludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIo ZmIpOwogCW9iaiA9IGludGVsX2ZiLT5vYmo7CiAKQEAgLTI1MTIsNiArMjUyOSw4IEBAIHN0YXRp YyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAlkc3BjbnRyID0gSTkxNV9SRUFEKHJlZyk7CiAJLyogTWFzayBvdXQgcGl4ZWwgZm9ybWF0 IGJpdHMgaW4gY2FzZSB3ZSBjaGFuZ2UgaXQgKi8KIAlkc3BjbnRyICY9IH5ESVNQUExBTkVfUElY Rk9STUFUX01BU0s7CisJZHNwY250ciAmPSB+RElTUFBMQU5FX1JPVEFURV8xODA7CisKIAlzd2l0 Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJCWRzcGNudHIg fD0gRElTUFBMQU5FXzhCUFA7CkBAIC0yNTQ5LDggKzI1NjgsNiBAQCBzdGF0aWMgdm9pZCBpcm9u bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJZWxzZQog CQlkc3BjbnRyIHw9IERJU1BQTEFORV9UUklDS0xFX0ZFRURfRElTQUJMRTsKIAotCUk5MTVfV1JJ VEUocmVnLCBkc3BjbnRyKTsKLQogCWxpbmVhcl9vZmZzZXQgPSB5ICogZmItPnBpdGNoZXNbMF0g KyB4ICogKGZiLT5iaXRzX3Blcl9waXhlbCAvIDgpOwogCWludGVsX2NydGMtPmRzcGFkZHJfb2Zm c2V0ID0KIAkJaW50ZWxfZ2VuNF9jb21wdXRlX3BhZ2Vfb2Zmc2V0KCZ4LCAmeSwgb2JqLT50aWxp bmdfbW9kZSwKQEAgLTI1NTgsNiArMjU3NSwyMSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRh dGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCSAgICAgICBmYi0+ cGl0Y2hlc1swXSk7CiAJbGluZWFyX29mZnNldCAtPSBpbnRlbF9jcnRjLT5kc3BhZGRyX29mZnNl dDsKIAorCWlmICh0b19pbnRlbF9wbGFuZShjcnRjLT5wcmltYXJ5KS0+cm90YXRpb24gPT0gQklU KERSTV9ST1RBVEVfMTgwKSkgeworCQlkc3BjbnRyIHw9IERJU1BQTEFORV9ST1RBVEVfMTgwOwor CisJCWlmICghSVNfSEFTV0VMTChkZXYpICYmICFJU19CUk9BRFdFTEwoZGV2KSkgeworCQkJeCAr PSAoaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX3cgLSAxKTsKKwkJCXkgKz0gKGludGVsX2Ny dGMtPmNvbmZpZy5waXBlX3NyY19oIC0gMSk7CisJCQlsaW5lYXJfb2Zmc2V0ICs9CisJCQkoaW50 ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX2ggLSAxKSAqCisJCQlmYi0+cGl0Y2hlc1swXSArIChp bnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpICoKKwkJCXBpeGVsX3NpemU7CisJCX0K Kwl9CisKKwlJOTE1X1dSSVRFKHJlZywgZHNwY250cik7CisKIAlEUk1fREVCVUdfS01TKCJXcml0 aW5nIGJhc2UgJTA4bFggJTA4bFggJWQgJWQgJWRcbiIsCiAJCSAgICAgIGk5MTVfZ2VtX29ial9n Z3R0X29mZnNldChvYmopLCBsaW5lYXJfb2Zmc2V0LCB4LCB5LAogCQkgICAgICBmYi0+cGl0Y2hl c1swXSk7CkBAIC0xMTMyNCwxMCArMTEzNTYsNDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVf ZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlrZnJlZShpbnRlbF9wbGFuZSk7CiB9 CiAKK3N0YXRpYyBpbnQgaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3AsCisJCQkJ ICAgIHVpbnQ2NF90IHZhbCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRl djsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZSk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBsYW5l LT5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKKwor CWlmIChwcm9wID09IHBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eSkgeworCQkvKiBleGFjdGx5IG9u ZSByb3RhdGlvbiBhbmdsZSBwbGVhc2UgKi8KKwkJaWYgKGh3ZWlnaHQzMih2YWwgJiAweGYpICE9 IDEpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpbnRlbF9wbGFuZS0+cm90YXRpb24gPSB2YWw7 CisKKwkJaWYgKGludGVsX2NydGMtPmFjdGl2ZSAmJiBpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJs ZWQpIHsKKwkJCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhjcnRjKTsKKworCQkv KiBGQkMgZG9lcyBub3Qgd29yayBvbiBzb21lIHBsYXRmb3JtcyBmb3Igcm90YXRlZCBwbGFuZXMg Ki8KKwkJCWlmIChkZXZfcHJpdi0+ZmJjLnBsYW5lID09IGludGVsX2NydGMtPnBsYW5lICYmCisJ CQkgICAgSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYKKwkJCSAg ICBpbnRlbF9wbGFuZS0+cm90YXRpb24gIT0gQklUKERSTV9ST1RBVEVfMCkpCisJCQkJaW50ZWxf ZGlzYWJsZV9mYmMoZGV2KTsKKworCQkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1hcnlf cGxhbmUoY3J0YywKKwkJCQljcnRjLT5wcmltYXJ5LT5mYiwgMCwgMCk7CisKKwkJfSBlbHNlIHsK KwkJCURSTV9ERUJVR19LTVMoIltDUlRDOiVkXSBpcyBub3QgYWN0aXZlLiBPbmx5IHJvdGF0aW9u IgorCQkJCSJwcm9wZXJ0eSBpcyB1cGRhdGVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKKwkJfQorCX0K KworCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBp bnRlbF9wcmltYXJ5X3BsYW5lX2Z1bmNzID0gewogCS51cGRhdGVfcGxhbmUgPSBpbnRlbF9wcmlt YXJ5X3BsYW5lX3NldHBsYW5lLAogCS5kaXNhYmxlX3BsYW5lID0gaW50ZWxfcHJpbWFyeV9wbGFu ZV9kaXNhYmxlLAogCS5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVzdHJveSwKKwkuc2V0X3Byb3Bl cnR5ID0gaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRfcHJvcGVydHkKIH07CiAKIHN0YXRpYyBzdHJ1 Y3QgZHJtX3BsYW5lICppbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LApAQCAtMTEzNDUsNiArMTE0MTYsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAq aW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlwcmlt YXJ5LT5tYXhfZG93bnNjYWxlID0gMTsKIAlwcmltYXJ5LT5waXBlID0gcGlwZTsKIAlwcmltYXJ5 LT5wbGFuZSA9IHBpcGU7CisJcHJpbWFyeS0+cm90YXRpb24gPSBCSVQoRFJNX1JPVEFURV8wKTsK IAlpZiAoSEFTX0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkKIAkJcHJpbWFy eS0+cGxhbmUgPSAhcGlwZTsKIApAQCAtMTEzNjAsNiArMTE0MzIsMTggQEAgc3RhdGljIHN0cnVj dCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCQkJICZpbnRlbF9wcmltYXJ5X3BsYW5lX2Z1bmNzLAogCQkJCSBpbnRlbF9wcmlt YXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAogCQkJCSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsK KwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkgeworCQlpZiAoIXByaW1hcnktPmJhc2Uu cm90YXRpb25fcHJvcGVydHkpCisJCQlwcmltYXJ5LT5iYXNlLnJvdGF0aW9uX3Byb3BlcnR5ID0K KwkJCQlkcm1fbW9kZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHkoZGV2LAorCQkJCQkJCUJJVChE Uk1fUk9UQVRFXzApIHwKKwkJCQkJCQlCSVQoRFJNX1JPVEFURV8xODApKTsKKwkJaWYgKHByaW1h cnktPmJhc2Uucm90YXRpb25fcHJvcGVydHkpCisJCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgmcHJpbWFyeS0+YmFzZS5iYXNlLAorCQkJCQkJcHJpbWFyeS0+YmFzZS5yb3RhdGlvbl9wcm9w ZXJ0eSwKKwkJCQkJCXByaW1hcnktPnJvdGF0aW9uKTsKKwl9CisKIAlyZXR1cm4gJnByaW1hcnkt PmJhc2U7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDIwNDNjNGIuLmJkNmFmOTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNTYyLDYgKzU2MiwxMyBAQCB2b2lkIGludGVs X3VwZGF0ZV9mYmMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJZ290byBvdXRfZGlzYWJsZTsK IAl9CiAKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYK KwkgICAgdG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSktPnJvdGF0aW9uICE9IEJJVChEUk1f Uk9UQVRFXzApKSB7CisJCWlmIChzZXRfbm9fZmJjX3JlYXNvbihkZXZfcHJpdiwgRkJDX1VOU1VQ UE9SVEVEX01PREUpKQorCQkJRFJNX0RFQlVHX0tNUygiUm90YXRpb24gdW5zdXBwb3J0ZWQsIGRp c2FibGluZ1xuIik7CisJCWdvdG8gb3V0X2Rpc2FibGU7CisJfQorCiAJLyogSWYgdGhlIGtlcm5l bCBkZWJ1Z2dlciBpcyBhY3RpdmUsIGFsd2F5cyBkaXNhYmxlIGNvbXByZXNzaW9uICovCiAJaWYg KGluX2RiZ19tYXN0ZXIoKSkKIAkJZ290byBvdXRfZGlzYWJsZTsKLS0gCjEuNy4xMC40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=