From mboxrd@z Thu Jan 1 00:00:00 1970 From: sonika.jindal@intel.com Subject: [v3 10/13] drm/i915: Add 180 degree primary plane rotation support Date: Tue, 8 Jul 2014 10:32:00 +0530 Message-ID: <1404795723-9630-11-git-send-email-sonika.jindal@intel.com> References: <1404795723-9630-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: In-Reply-To: <1404795723-9630-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 Cc: Sagar Kamble , dri-devel@lists.freedesktop.org List-Id: dri-devel@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 b2YgcmVzZXR0aW5nLgoKdjEwOiBhZGRpbmcgdXBkYXRpb24gb2YgZmJjIHdoZW4gcm90YXRpb24g aXMgc2V0IHRvIDAuCgp2MTE6IGFkZGluZyBtdXRleCBsb2NrcyBmb3IgdXBkYXRlX2ZiYy4gQWxs b3dpbmcgcm90YXRpb24gb25seSBpZiB2YWx1ZSBpcwpkaWZmZXJlbnQgdGhhbiBvbGQgb25lLiBP dGhlciBtaW5vciBjbGVhbnVwcy4KClRlc3RjYXNlOiBpZ3Qva21zX3JvdGF0aW9uX2NyYwoKQ2M6 IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5r YXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogU2FnYXIgS2FtYmxlIDxz YWdhci5hLmthbWJsZUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgICB8ICAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgIDEwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAgICA3ICsrKwogMyBmaWxlcyBjaGFuZ2VkLCAx MTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApp bmRleCBjNzBjODA0Li5jNjAwZDNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTQwODcs NiArNDA4Nyw3IEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7CiAjZGVmaW5lICAgRElTUFBMQU5F X05PX0xJTkVfRE9VQkxFCQkwCiAjZGVmaW5lICAgRElTUFBMQU5FX1NURVJFT19QT0xBUklUWV9G SVJTVAkwCiAjZGVmaW5lICAgRElTUFBMQU5FX1NURVJFT19QT0xBUklUWV9TRUNPTkQJKDE8PDE4 KQorI2RlZmluZSAgIERJU1BQTEFORV9ST1RBVEVfMTgwICAgICAgICAgKDE8PDE1KQogI2RlZmlu ZSAgIERJU1BQTEFORV9UUklDS0xFX0ZFRURfRElTQUJMRQkoMTw8MTQpIC8qIElyb25sYWtlICov CiAjZGVmaW5lICAgRElTUFBMQU5FX1RJTEVECQkJKDE8PDEwKQogI2RlZmluZSBfRFNQQUFERFIJ CQkJMHg3MDE4NApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDVlOGU3MTEu LjQ3ZWYxYzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTI0MTQsNyAr MjQxNCw5IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCXVuc2lnbmVkIGxvbmcgbGluZWFyX29mZnNldDsKIAl1MzIgZHNwY250 cjsKIAl1MzIgcmVnOworCWludCBwaXhlbF9zaXplOwogCisJcGl4ZWxfc2l6ZSA9IGRybV9mb3Jt YXRfcGxhbmVfY3BwKGZiLT5waXhlbF9mb3JtYXQsIDApOwogCWludGVsX2ZiID0gdG9faW50ZWxf ZnJhbWVidWZmZXIoZmIpOwogCW9iaiA9IGludGVsX2ZiLT5vYmo7CiAKQEAgLTI0MjIsNiArMjQy NCw4IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9j cnRjICpjcnRjLAogCWRzcGNudHIgPSBJOTE1X1JFQUQocmVnKTsKIAkvKiBNYXNrIG91dCBwaXhl bCBmb3JtYXQgYml0cyBpbiBjYXNlIHdlIGNoYW5nZSBpdCAqLwogCWRzcGNudHIgJj0gfkRJU1BQ TEFORV9QSVhGT1JNQVRfTUFTSzsKKwlkc3BjbnRyICY9IH5ESVNQUExBTkVfUk9UQVRFXzE4MDsK KwogCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgewogCWNhc2UgRFJNX0ZPUk1BVF9DODoKIAkJ ZHNwY250ciB8PSBESVNQUExBTkVfOEJQUDsKQEAgLTI0NjMsOCArMjQ2Nyw2IEBAIHN0YXRpYyB2 b2lkIGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlm IChJU19HNFgoZGV2KSkKIAkJZHNwY250ciB8PSBESVNQUExBTkVfVFJJQ0tMRV9GRUVEX0RJU0FC TEU7CiAKLQlJOTE1X1dSSVRFKHJlZywgZHNwY250cik7Ci0KIAlsaW5lYXJfb2Zmc2V0ID0geSAq IGZiLT5waXRjaGVzWzBdICsgeCAqIChmYi0+Yml0c19wZXJfcGl4ZWwgLyA4KTsKIAogCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA0KSB7CkBAIC0yNDc3LDYgKzI0NzksMTggQEAgc3RhdGlj IHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ CWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0ID0gbGluZWFyX29mZnNldDsKIAl9CiAKKwlpZiAo dG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSktPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRF XzE4MCkpIHsKKwkJZHNwY250ciB8PSBESVNQUExBTkVfUk9UQVRFXzE4MDsKKworCQl4ICs9IChp bnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpOworCQl5ICs9IChpbnRlbF9jcnRjLT5j b25maWcucGlwZV9zcmNfaCAtIDEpOworCQlsaW5lYXJfb2Zmc2V0ICs9IChpbnRlbF9jcnRjLT5j b25maWcucGlwZV9zcmNfaCAtIDEpICoKKwkJCWZiLT5waXRjaGVzWzBdICsKKwkJCShpbnRlbF9j cnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpICogcGl4ZWxfc2l6ZTsKKwl9CisKKwlJOTE1X1dS SVRFKHJlZywgZHNwY250cik7CisKIAlEUk1fREVCVUdfS01TKCJXcml0aW5nIGJhc2UgJTA4bFgg JTA4bFggJWQgJWQgJWRcbiIsCiAJCSAgICAgIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmop LCBsaW5lYXJfb2Zmc2V0LCB4LCB5LAogCQkgICAgICBmYi0+cGl0Y2hlc1swXSk7CkBAIC0yNDg3 LDcgKzI1MDEsOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAkJSTkxNV9XUklURShEU1BUSUxFT0ZGKHBsYW5lKSwgKHkgPDwg MTYpIHwgeCk7CiAJCUk5MTVfV1JJVEUoRFNQTElOT0ZGKHBsYW5lKSwgbGluZWFyX29mZnNldCk7 CiAJfSBlbHNlCi0JCUk5MTVfV1JJVEUoRFNQQUREUihwbGFuZSksIGk5MTVfZ2VtX29ial9nZ3R0 X29mZnNldChvYmopICsgbGluZWFyX29mZnNldCk7CisJCUk5MTVfV1JJVEUoRFNQQUREUihwbGFu ZSksIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsKKwkJCQlsaW5lYXJfb2Zmc2V0KTsK IAlQT1NUSU5HX1JFQUQocmVnKTsKIH0KIApAQCAtMjUwNCw3ICsyNTE5LDkgQEAgc3RhdGljIHZv aWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CXVuc2lnbmVkIGxvbmcgbGluZWFyX29mZnNldDsKIAl1MzIgZHNwY250cjsKIAl1MzIgcmVnOwor CWludCBwaXhlbF9zaXplOwogCisJcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZi LT5waXhlbF9mb3JtYXQsIDApOwogCWludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIp OwogCW9iaiA9IGludGVsX2ZiLT5vYmo7CiAKQEAgLTI1MTIsNiArMjUyOSw4IEBAIHN0YXRpYyB2 b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAlkc3BjbnRyID0gSTkxNV9SRUFEKHJlZyk7CiAJLyogTWFzayBvdXQgcGl4ZWwgZm9ybWF0IGJp dHMgaW4gY2FzZSB3ZSBjaGFuZ2UgaXQgKi8KIAlkc3BjbnRyICY9IH5ESVNQUExBTkVfUElYRk9S TUFUX01BU0s7CisJZHNwY250ciAmPSB+RElTUFBMQU5FX1JPVEFURV8xODA7CisKIAlzd2l0Y2gg KGZiLT5waXhlbF9mb3JtYXQpIHsKIAljYXNlIERSTV9GT1JNQVRfQzg6CiAJCWRzcGNudHIgfD0g RElTUFBMQU5FXzhCUFA7CkBAIC0yNTQ5LDggKzI1NjgsNiBAQCBzdGF0aWMgdm9pZCBpcm9ubGFr ZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJZWxzZQogCQlk c3BjbnRyIHw9IERJU1BQTEFORV9UUklDS0xFX0ZFRURfRElTQUJMRTsKIAotCUk5MTVfV1JJVEUo cmVnLCBkc3BjbnRyKTsKLQogCWxpbmVhcl9vZmZzZXQgPSB5ICogZmItPnBpdGNoZXNbMF0gKyB4 ICogKGZiLT5iaXRzX3Blcl9waXhlbCAvIDgpOwogCWludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0 ID0KIAkJaW50ZWxfZ2VuNF9jb21wdXRlX3BhZ2Vfb2Zmc2V0KCZ4LCAmeSwgb2JqLT50aWxpbmdf bW9kZSwKQEAgLTI1NTgsNiArMjU3NSwyMSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVf cHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCSAgICAgICBmYi0+cGl0 Y2hlc1swXSk7CiAJbGluZWFyX29mZnNldCAtPSBpbnRlbF9jcnRjLT5kc3BhZGRyX29mZnNldDsK IAorCWlmICh0b19pbnRlbF9wbGFuZShjcnRjLT5wcmltYXJ5KS0+cm90YXRpb24gPT0gQklUKERS TV9ST1RBVEVfMTgwKSkgeworCQlkc3BjbnRyIHw9IERJU1BQTEFORV9ST1RBVEVfMTgwOworCisJ CWlmICghSVNfSEFTV0VMTChkZXYpICYmICFJU19CUk9BRFdFTEwoZGV2KSkgeworCQkJeCArPSAo aW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX3cgLSAxKTsKKwkJCXkgKz0gKGludGVsX2NydGMt PmNvbmZpZy5waXBlX3NyY19oIC0gMSk7CisJCQlsaW5lYXJfb2Zmc2V0ICs9CisJCQkoaW50ZWxf Y3J0Yy0+Y29uZmlnLnBpcGVfc3JjX2ggLSAxKSAqCisJCQlmYi0+cGl0Y2hlc1swXSArIChpbnRl bF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpICoKKwkJCXBpeGVsX3NpemU7CisJCX0KKwl9 CisKKwlJOTE1X1dSSVRFKHJlZywgZHNwY250cik7CisKIAlEUk1fREVCVUdfS01TKCJXcml0aW5n IGJhc2UgJTA4bFggJTA4bFggJWQgJWQgJWRcbiIsCiAJCSAgICAgIGk5MTVfZ2VtX29ial9nZ3R0 X29mZnNldChvYmopLCBsaW5lYXJfb2Zmc2V0LCB4LCB5LAogCQkgICAgICBmYi0+cGl0Y2hlc1sw XSk7CkBAIC0xMTMyNCwxMCArMTEzNTYsNjQgQEAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVfZGVz dHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlrZnJlZShpbnRlbF9wbGFuZSk7CiB9CiAK K3N0YXRpYyBpbnQgaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3AsCisJCQkJICAg IHVpbnQ2NF90IHZhbCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwor CXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGxhbmUtPmNydGM7CisJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGM7CisJdWludDY0X3Qgb2xkX3ZhbDsKKworCWlmIChwcm9wID09IHBsYW5l LT5yb3RhdGlvbl9wcm9wZXJ0eSkgeworCQkvKiBleGFjdGx5IG9uZSByb3RhdGlvbiBhbmdsZSBw bGVhc2UgKi8KKwkJaWYgKGh3ZWlnaHQzMih2YWwgJiAweGYpICE9IDEpCisJCQlyZXR1cm4gLUVJ TlZBTDsKKworCQlvbGRfdmFsID0gaW50ZWxfcGxhbmUtPnJvdGF0aW9uOworCQlpbnRlbF9wbGFu ZS0+cm90YXRpb24gPSB2YWw7CisKKwkJaWYgKG9sZF92YWwgPT0gaW50ZWxfcGxhbmUtPnJvdGF0 aW9uKQorCQkJcmV0dXJuIDA7CisKKwkJaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGxhbmUt PmNydGMpOworCisJCWlmIChpbnRlbF9jcnRjICYmIGludGVsX2NydGMtPmFjdGl2ZSAmJiBpbnRl bF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpIHsKKwkJCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGlu Z19mbGlwcyhjcnRjKTsKKworCQkvKiBGQkMgZG9lcyBub3Qgd29yayBvbiBzb21lIHBsYXRmb3Jt cyBmb3Igcm90YXRlZCBwbGFuZXMgKi8KKwkJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA0 ICYmICFJU19HNFgoZGV2KSkgeworCQkJCWlmIChkZXZfcHJpdi0+ZmJjLnBsYW5lID09IGludGVs X2NydGMtPnBsYW5lICYmCisJCQkJCWludGVsX3BsYW5lLT5yb3RhdGlvbiAhPSBCSVQoRFJNX1JP VEFURV8wKSkKKwkJCQkJaW50ZWxfZGlzYWJsZV9mYmMoZGV2KTsKKwkJCQkvKiBJZiByb3RhdGlv biB3YXMgc2V0IGVhcmxpZXIgYW5kIG5ldyByb3RhdGlvbiBpcyAwLCB3ZSBtaWdodAorCQkJCSAq IGhhdmUgZGlzYWJsZWQgZmJjIGVhcmxpZXIuIFNvIHVwZGF0ZSBpdCBub3cgKi8KKwkJCQllbHNl IGlmIChpbnRlbF9wbGFuZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMCkgJiYKKwkJCQkJ b2xkX3ZhbCAhPSBCSVQoRFJNX1JPVEFURV8wKSkgeworCQkJCQltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisJCQkJCWludGVsX3VwZGF0ZV9mYmMoZGV2KTsKKwkJCQkJbXV0ZXhfdW5s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCQkJfQorCQkJfQorCisJCQlkZXZfcHJpdi0+ZGlz cGxheS51cGRhdGVfcHJpbWFyeV9wbGFuZShjcnRjLAorCQkJCWNydGMtPnByaW1hcnktPmZiLCAw LCAwKTsKKworCQl9IGVsc2UgeworCQkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWRdIGlzIG5vdCBh Y3RpdmUuIE9ubHkgcm90YXRpb24iCisJCQkJInByb3BlcnR5IGlzIHVwZGF0ZWRcbiIsIGNydGMt PmJhc2UuaWQpOworCQl9CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wcmltYXJ5X3BsYW5lX2Z1bmNzID0gewogCS51cGRhdGVf cGxhbmUgPSBpbnRlbF9wcmltYXJ5X3BsYW5lX3NldHBsYW5lLAogCS5kaXNhYmxlX3BsYW5lID0g aW50ZWxfcHJpbWFyeV9wbGFuZV9kaXNhYmxlLAogCS5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVz dHJveSwKKwkuc2V0X3Byb3BlcnR5ID0gaW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRfcHJvcGVydHkK IH07CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICppbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LApAQCAtMTEzNDUsNiArMTE0MzEsNyBAQCBzdGF0aWMg c3RydWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAlwcmltYXJ5LT5tYXhfZG93bnNjYWxlID0gMTsKIAlwcmltYXJ5LT5waXBl ID0gcGlwZTsKIAlwcmltYXJ5LT5wbGFuZSA9IHBpcGU7CisJcHJpbWFyeS0+cm90YXRpb24gPSBC SVQoRFJNX1JPVEFURV8wKTsKIAlpZiAoSEFTX0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2KS0+ Z2VuIDwgNCkKIAkJcHJpbWFyeS0+cGxhbmUgPSAhcGlwZTsKIApAQCAtMTEzNjAsNiArMTE0NDcs MTggQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICZpbnRlbF9wcmltYXJ5X3BsYW5lX2Z1bmNz LAogCQkJCSBpbnRlbF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAogCQkJCSBEUk1fUExB TkVfVFlQRV9QUklNQVJZKTsKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkgeworCQlp ZiAoIXByaW1hcnktPmJhc2Uucm90YXRpb25fcHJvcGVydHkpCisJCQlwcmltYXJ5LT5iYXNlLnJv dGF0aW9uX3Byb3BlcnR5ID0KKwkJCQlkcm1fbW9kZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHko ZGV2LAorCQkJCQkJCUJJVChEUk1fUk9UQVRFXzApIHwKKwkJCQkJCQlCSVQoRFJNX1JPVEFURV8x ODApKTsKKwkJaWYgKHByaW1hcnktPmJhc2Uucm90YXRpb25fcHJvcGVydHkpCisJCQlkcm1fb2Jq ZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcHJpbWFyeS0+YmFzZS5iYXNlLAorCQkJCQkJcHJpbWFyeS0+ YmFzZS5yb3RhdGlvbl9wcm9wZXJ0eSwKKwkJCQkJCXByaW1hcnktPnJvdGF0aW9uKTsKKwl9CisK IAlyZXR1cm4gJnByaW1hcnktPmJhc2U7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4 IDIwNDNjNGIuLmJkNmFmOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNTYyLDYgKzU2 MiwxMyBAQCB2b2lkIGludGVsX3VwZGF0ZV9mYmMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJ Z290byBvdXRfZGlzYWJsZTsKIAl9CiAKKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAm JiAhSVNfRzRYKGRldikgJiYKKwkgICAgdG9faW50ZWxfcGxhbmUoY3J0Yy0+cHJpbWFyeSktPnJv dGF0aW9uICE9IEJJVChEUk1fUk9UQVRFXzApKSB7CisJCWlmIChzZXRfbm9fZmJjX3JlYXNvbihk ZXZfcHJpdiwgRkJDX1VOU1VQUE9SVEVEX01PREUpKQorCQkJRFJNX0RFQlVHX0tNUygiUm90YXRp b24gdW5zdXBwb3J0ZWQsIGRpc2FibGluZ1xuIik7CisJCWdvdG8gb3V0X2Rpc2FibGU7CisJfQor CiAJLyogSWYgdGhlIGtlcm5lbCBkZWJ1Z2dlciBpcyBhY3RpdmUsIGFsd2F5cyBkaXNhYmxlIGNv bXByZXNzaW9uICovCiAJaWYgKGluX2RiZ19tYXN0ZXIoKSkKIAkJZ290byBvdXRfZGlzYWJsZTsK LS0gCjEuNy4xMC40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=