From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH v8 3/6] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Fri, 5 Aug 2016 20:07:09 -0400 Message-ID: <1470442033-21388-4-git-send-email-cpaul@redhat.com> References: <1470442033-21388-1-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470442033-21388-1-git-send-email-cpaul@redhat.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, =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Maarten Lankhorst , Matt Roper Cc: David Airlie , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hans de Goede , stable@vger.kernel.org, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VGhhbmtzIHRvIFZpbGxlIGZvciBzdWdnZXN0aW5nIHRoaXMgYXMgYSBwb3RlbnRpYWwgc29sdXRp b24gdG8gcGlwZQp1bmRlcnJ1bnMgb24gU2t5bGFrZS4KCk9uIFNreWxha2UgYWxsIG9mIHRoZSBy ZWdpc3RlcnMgZm9yIGNvbmZpZ3VyaW5nIHBsYW5lcywgaW5jbHVkaW5nIHRoZQpyZWdpc3RlcnMg Zm9yIGNvbmZpZ3VyaW5nIHRoZWlyIHdhdGVybWFya3MsIGFyZSBkb3VibGUgYnVmZmVyZWQuIE5l dwp2YWx1ZXMgd3JpdHRlbiB0byB0aGVtIHdvbid0IHRha2UgZWZmZWN0IHVudGlsIHNhaWQgcmVn aXN0ZXJzIGFyZQoiYXJtZWQiLCB3aGljaCBpcyBkb25lIGJ5IHdyaXRpbmcgdG8gdGhlIFBMQU5F X1NVUkYgKG9yIGluIHRoZSBjYXNlIG9mCmN1cnNvciBwbGFuZXMsIHRoZSBDVVJCQVNFIHJlZ2lz dGVyKSByZWdpc3Rlci4KCldpdGggdGhpcyBpbiBtaW5kLCB1cCB1bnRpbCBub3cgd2UndmUgYmVl biB1cGRhdGluZyB3YXRlcm1hcmtzIG9uIHNrbApsaWtlIHRoaXM6CgogIG5vbi1tb2Rlc2V0IHsK ICAgLSBjYWxjdWxhdGUgKGR1cmluZyBhdG9taWMgY2hlY2sgcGhhc2UpCiAgIC0gZmluaXNoX2F0 b21pY19jb21taXQ6CiAgICAgLSBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlOgogICAgICAgIC0gaW50 ZWxfdXBkYXRlX3dhdGVybWFya3MoKQogICAgIC0ge3ZibGFuayBoYXBwZW5zOyBuZXcgd2F0ZXJt YXJrcyArIG9sZCBwbGFuZSB2YWx1ZXMgPT4gdW5kZXJydW4gfQogICAgIC0gZHJtX2F0b21pY19o ZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjOgogICAgICAgIC0gc3RhcnQgdmJsYW5rIGV2YXNp b24KICAgICAgICAtIHdyaXRlIG5ldyBwbGFuZSByZWdpc3RlcnMKICAgICAgICAtIGVuZCB2Ymxh bmsgZXZhc2lvbgogIH0KCiAgb3IKCiAgbW9kZXNldCB7CiAgIC0gY2FsY3VsYXRlIChkdXJpbmcg YXRvbWljIGNoZWNrIHBoYXNlKQogICAtIGZpbmlzaF9hdG9taWNfY29tbWl0OgogICAgIC0gY3J0 Y19lbmFibGU6CiAgICAgICAgLSBpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcygpCiAgICAgLSB7dmJs YW5rIGhhcHBlbnM7IG5ldyB3YXRlcm1hcmtzICsgb2xkIHBsYW5lIHZhbHVlcyA9PiB1bmRlcnJ1 biB9CiAgICAgLSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGM6CiAgICAg ICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgogICAgICAgIC0gd3JpdGUgbmV3IHBsYW5lIHJlZ2lz dGVycwogICAgICAgIC0gZW5kIHZibGFuayBldmFzaW9uCiAgfQoKTm93IHdlIHVwZGF0ZSB3YXRl cm1hcmtzIGF0b21pY2FsbHkgbGlrZSB0aGlzOgoKICBub24tbW9kZXNldCB7CiAgIC0gY2FsY3Vs YXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQogICAtIGZpbmlzaF9hdG9taWNfY29tbWl0 OgogICAgIC0gaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZToKICAgICAgICAtIGludGVsX3VwZGF0ZV93 YXRlcm1hcmtzKCkgKHdtIHZhbHVlcyBhcmVuJ3Qgd3JpdHRlbiB5ZXQpCiAgICAgLSBkcm1fYXRv bWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGM6CiAgICAgICAgLSBzdGFydCB2Ymxhbmsg ZXZhc2lvbgogICAgICAgIC0gd3JpdGUgbmV3IHBsYW5lIHJlZ2lzdGVycwogICAgICAgIC0gd3Jp dGUgbmV3IHdtIHZhbHVlcwogICAgICAgIC0gZW5kIHZibGFuayBldmFzaW9uCiAgfQoKICBtb2Rl c2V0IHsKICAgLSBjYWxjdWxhdGUgKGR1cmluZyBhdG9taWMgY2hlY2sgcGhhc2UpCiAgIC0gZmlu aXNoX2F0b21pY19jb21taXQ6CiAgICAgLSBjcnRjX2VuYWJsZToKICAgICAgICAtIGludGVsX3Vw ZGF0ZV93YXRlcm1hcmtzKCkgKGFjdHVhbCB3bSB2YWx1ZXMgYXJlbid0IHdyaXR0ZW4KICAgICAg ICAgIHlldCkKICAgICAtIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YzoK ICAgICAgICAtIHN0YXJ0IHZibGFuayBldmFzaW9uCiAgICAgICAgLSB3cml0ZSBuZXcgcGxhbmUg cmVnaXN0ZXJzCgktIHdyaXRlIG5ldyB3bSB2YWx1ZXMKICAgICAgICAtIGVuZCB2YmxhbmsgZXZh c2lvbgogIH0KClNvIHRoaXMgcGF0Y2ggbW92ZXMgYWxsIG9mIHRoZSB3YXRlcm1hcmsgd3JpdGVz IGludG8gdGhlIHJpZ2h0IHBsYWNlOwppbnNpZGUgb2YgdGhlIHZibGFuayBldmFzaW9uIHdoZXJl IHdlIHVwZGF0ZSBhbGwgb2YgdGhlIHJlZ2lzdGVycyBmb3IKZWFjaCBwbGFuZS4gV2hpbGUgdGhp cyBwYXRjaCBkb2Vzbid0IGZpeCBldmVyeXRoaW5nLCBpdCBkb2VzIGFsbG93IHVzIHRvCnVwZGF0 ZSB0aGUgd2F0ZXJtYXJrIHZhbHVlcyBpbiB0aGUgd2F5IHRoZSBoYXJkd2FyZSBleHBlY3RzIHVz IHRvLgoKQ2hhbmdlcyBzaW5jZSBvcmlnaW5hbCBwYXRjaCBzZXJpZXM6CiAtIFJlbW92ZSBtdXRl eF9sb2NrL211dGV4X3VubG9jayBzaW5jZSB0aGV5IGRvbid0IGRvIGFueXRoaW5nIGFuZCB3ZSdy ZQogICBub3QgdG91Y2hpbmcgZ2xvYmFsIHN0YXRlCiAtIE1vdmUgc2tsX3dyaXRlX2N1cnNvcl93 bS9za2xfd3JpdGVfcGxhbmVfd20gZnVuY3Rpb25zIGludG8KICAgaW50ZWxfcG0uYywgbWFrZSBl eHRlcm5hbGx5IHZpc2libGUKIC0gQWRkIHNrbF93cml0ZV9wbGFuZV93bSBjYWxscyB0byBza2xf dXBkYXRlX3BsYW5lCiAtIEZpeCBjb25kaXRpb25hbCBmb3IgZm9yIGxvb3AgaW4gc2tsX3dyaXRl X3BsYW5lX3dtIChsZXZlbCA8IG1heF9sZXZlbAogICBzaG91bGQgYmUgbGV2ZWwgPD0gbWF4X2xl dmVsKQogLSBNYWtlIGRpYWdyYW0gaW4gY29tbWl0IG1vcmUgYWNjdXJhdGUgdG8gd2hhdCdzIGFj dHVhbGx5IGhhcHBlbmluZwogLSBBZGQgRml4ZXM6CgpDaGFuZ2VzIHNpbmNlIHYxOgogLSBVc2Ug SVNfR0VOOSgpIGluc3RlYWQgb2YgSVNfU0tZTEFLRSgpIHNpbmNlIHRoZXNlIGZpeGVzIGFwcGx5 IHRvIG1vcmUKICAgdGhlbiBqdXN0IFNreWxha2UKIC0gVXBkYXRlIGRlc2NyaXB0aW9uIHRvIG1h a2UgaXQgY2xlYXIgdGhpcyBwYXRjaCBkb2Vzbid0IGZpeCBldmVyeXRoaW5nCiAtIENoZWNrIGlm IHBpcGVzIHdlcmUgYWN0dWFsbHkgY2hhbmdlZCBiZWZvcmUgd3JpdGluZyB3YXRlcm1hcmtzCgpD aGFuZ2VzIHNpbmNlIHYyOgogLSBXcml0ZSBQSVBFX1dNX0xJTkVUSU1FIGR1cmluZyB2Ymxhbmsg ZXZhc2lvbgoKQ2hhbmdlcyBzaW5jZSB2MzoKIC0gUmViYXNlIGFnYWluc3QgbmV3IFNBR1YgcGF0 Y2ggY2hhbmdlcwoKQ2hhbmdlcyBzaW5jZSB2NDoKIC0gQWRkIGEgcGFyYW1ldGVyIHRvIGNob29z ZSB3aGF0IHNrbF93bV92YWx1ZXMgc3RydWN0IHRvIHVzZSB3aGVuCiAgIHdyaXRpbmcgbmV3IHBs YW5lIHdhdGVybWFya3MKCkNoYW5nZXMgc2luY2UgdjU6CiAtIFJlbW92ZSBjdXJzb3IgZGRiIGVu dHJ5IHdyaXRlIGluIHNrbF93cml0ZV9jdXJzb3Jfd20oKSwgZGVmZXIgdW50aWwKICAgcGF0Y2gg NgogLSBXcml0ZSBXTV9MSU5FVElNRSBpbiBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdCgpCgpDaGFu Z2VzIHNpbmNlIHY2OgogLSBSZW1vdmUgcmVkdW5kYW50IGRpcnR5X3BpcGVzIGNoZWNrIGluIHNr bF93cml0ZV9wbGFuZV93bSAod2UgY2hlY2sKICAgdGhpcyBpbiBhbGwgcGxhY2VzIHdoZXJlIHdl IGNhbGwgdGhpcyBmdW5jdGlvbiwgYW5kIGl0IHdhcyBzdXBwb3NlZAogICB0byBoYXZlIGJlZW4g cmVtb3ZlZCBlYXJsaWVyIGFueXdheSkKIC0gSW4gaTl4eF91cGRhdGVfY3Vyc29yKCksIHVzZSBk ZXZfcHJpdi0+aW5mby5nZW4gPj0gOSBpbnN0ZWFkIG9mCiAgIElTX0dFTjkoZGV2X3ByaXYpLiBX ZSBkbyB0aGlzIGV2ZXJ5d2hlcmUgZWxzZSBhbmQgSSdkIGltYWdpbmUgdGhpcwogICBuZWVkcyB0 byBiZSBkb25lIGZvciBnZW4xMCBhcyB3ZWxsCgpGaXhlczogMmQ0MWMwYjU5YWZjICgiZHJtL2k5 MTUvc2tsOiBTS0wgV2F0ZXJtYXJrIENvbXB1dGF0aW9uIikKU2lnbmVkLW9mZi1ieTogTHl1ZGUg PGNwYXVsQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9w ZXJAaW50ZWwuY29tPgpDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwpDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzogUmFkaGFrcmlzaG5hIFNyaXBhZGEgPHJhZGhha3Jp c2huYS5zcmlwYWRhQGludGVsLmNvbT4KQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhh dC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTYgKysr KysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNSArKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCA1MCArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jICB8ICA2ICsrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDE3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA4MTRkMDdk Li43NDRlZWI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yOTgwLDYg KzI5ODAsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0g JmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 CiAJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwogCXUzMiB0aWxlX2hlaWdodCwg cGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwpAQCAtMzAzMSw2ICszMDMyLDkgQEAgc3RhdGljIHZv aWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAlpbnRlbF9jcnRjLT5hZGp1c3RlZF94ID0geF9vZmZzZXQ7CiAJaW50ZWxfY3J0Yy0+YWRqdXN0 ZWRfeSA9IHlfb2Zmc2V0OwogCisJaWYgKHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2so JmludGVsX2NydGMtPmJhc2UpKQorCSAgICBza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywg d20sIDApOworCiAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7CiAJ STkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgMCksIHBsYW5lX29mZnNldCk7CiAJSTkxNV9X UklURShQTEFORV9TSVpFKHBpcGUsIDApLCBwbGFuZV9zaXplKTsKQEAgLTEwMjMwLDkgKzEwMjM0 LDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIHUzMiBiYXNlLAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3Qgc2ts X3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwogCWludCBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKIAl1aW50MzJfdCBjbnRsID0gMDsKIAorCWlmIChkZXZfcHJpdi0+ aW5mby5nZW4gPj0gOSAmJiB3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMpKQor CQlza2xfd3JpdGVfY3Vyc29yX3dtKGludGVsX2NydGMsIHdtKTsKKwogCWlmIChwbGFuZV9zdGF0 ZSAmJiBwbGFuZV9zdGF0ZS0+dmlzaWJsZSkgewogCQljbnRsID0gTUNVUlNPUl9HQU1NQV9FTkFC TEU7CiAJCXN3aXRjaCAocGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193KSB7CkBAIC0xNDE1MywxMCAr MTQxNjEsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KIAkJdG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0 Y19zdGF0ZSk7CiAJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSk7CisJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJLyogUGVyZm9ybSB2Ymxhbmsg ZXZhc2lvbiBhcm91bmQgY29tbWl0IG9wZXJhdGlvbiAqLwogCWludGVsX3BpcGVfdXBkYXRlX3N0 YXJ0KGludGVsX2NydGMpOwpAQCAtMTQxNzEsOCArMTQxODEsMTIgQEAgc3RhdGljIHZvaWQgaW50 ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJaWYgKHRvX2lu dGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZSkKIAkJaW50ZWxfdXBkYXRl X3BpcGVfY29uZmlnKGludGVsX2NydGMsIG9sZF9pbnRlbF9zdGF0ZSk7Ci0JZWxzZSBpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKKwllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA5KSB7CiAJCXNrbF9kZXRhY2hfc2NhbGVycyhpbnRlbF9jcnRjKTsKKworCQlJOTE1X1dSSVRF KFBJUEVfV01fTElORVRJTUUocGlwZSksCisJCQkgICBkZXZfcHJpdi0+d20uc2tsX2h3LndtX2xp bmV0aW1lW3BpcGVdKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2Nv bW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4 IDIyMWNiZTAuLjFhZWRkOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNzAyLDYg KzE3MDIsMTEgQEAgdm9pZCBza2xfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAvKiBv dXQgKi8pOwogaW50IHNrbF9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwogaW50IHNrbF9kaXNhYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKK3ZvaWQgc2tsX3dyaXRlX2N1cnNvcl93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKKwkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20pOwordm9pZCBza2xf d3JpdGVfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCisJCQljb25zdCBz dHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20sCisJCQlpbnQgcGxhbmUpOwogdWludDMyX3QgaWxrX3Bp cGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp OwogYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBz YW5pdGl6ZV9yYzZfb3B0aW9uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50 IGVuYWJsZV9yYzYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggY2IxY2FiMC4uZTUzOWE0 MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0zODAwLDYgKzM4MDAsMzkgQEAgc3RhdGlj IHZvaWQgc2tsX2RkYl9lbnRyeV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCUk5MTVfV1JJVEUocmVnLCAwKTsKIH0KIAordm9pZCBza2xfd3JpdGVfcGxhbmVfd20o c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCisJCQljb25zdCBzdHJ1Y3Qgc2tsX3dtX3Zh bHVlcyAqd20sCisJCQlpbnQgcGxhbmUpCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJmlu dGVsX2NydGMtPmJhc2U7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJaW50IGxl dmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7CisJZW51bSBwaXBlIHBpcGUg PSBpbnRlbF9jcnRjLT5waXBlOworCisJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZl bDsgbGV2ZWwrKykgeworCQlJOTE1X1dSSVRFKFBMQU5FX1dNKHBpcGUsIHBsYW5lLCBsZXZlbCks CisJCQkgICB3bS0+cGxhbmVbcGlwZV1bcGxhbmVdW2xldmVsXSk7CisJfQorCUk5MTVfV1JJVEUo UExBTkVfV01fVFJBTlMocGlwZSwgcGxhbmUpLCB3bS0+cGxhbmVfdHJhbnNbcGlwZV1bcGxhbmVd KTsKK30KKwordm9pZCBza2xfd3JpdGVfY3Vyc29yX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjLAorCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSkKK3sKKwlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKKwlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2 KTsKKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisKKwlmb3IgKGxldmVsID0g MDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7CisJCUk5MTVfV1JJVEUoQ1VSX1dNKHBp cGUsIGxldmVsKSwKKwkJCSAgIHdtLT5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdW2xldmVsXSk7 CisJfQorCUk5MTVfV1JJVEUoQ1VSX1dNX1RSQU5TKHBpcGUpLCB3bS0+cGxhbmVfdHJhbnNbcGlw ZV1bUExBTkVfQ1VSU09SXSk7Cit9CisKIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCWNvbnN0IHN0cnVjdCBza2xf d21fdmFsdWVzICpuZXcpCiB7CkBAIC0zODA3LDcgKzM4NDAsNyBAQCBzdGF0aWMgdm9pZCBza2xf d3JpdGVfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAogCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7 Ci0JCWludCBpLCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCQlp bnQgaTsKIAkJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCiAJCWlmICgobmV3LT5kaXJ0 eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpKSA9PSAwKQpAQCAtMzgxNSwyMSAr Mzg0OCw2IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQlpZiAoIWNydGMtPmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwog Ci0JCUk5MTVfV1JJVEUoUElQRV9XTV9MSU5FVElNRShwaXBlKSwgbmV3LT53bV9saW5ldGltZVtw aXBlXSk7Ci0KLQkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykg ewotCQkJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoY3J0Yyk7IGkrKykKLQkJCQlJ OTE1X1dSSVRFKFBMQU5FX1dNKHBpcGUsIGksIGxldmVsKSwKLQkJCQkJICAgbmV3LT5wbGFuZVtw aXBlXVtpXVtsZXZlbF0pOwotCQkJSTkxNV9XUklURShDVVJfV00ocGlwZSwgbGV2ZWwpLAotCQkJ CSAgIG5ldy0+cGxhbmVbcGlwZV1bUExBTkVfQ1VSU09SXVtsZXZlbF0pOwotCQl9Ci0JCWZvciAo aSA9IDA7IGkgPCBpbnRlbF9udW1fcGxhbmVzKGNydGMpOyBpKyspCi0JCQlJOTE1X1dSSVRFKFBM QU5FX1dNX1RSQU5TKHBpcGUsIGkpLAotCQkJCSAgIG5ldy0+cGxhbmVfdHJhbnNbcGlwZV1baV0p OwotCQlJOTE1X1dSSVRFKENVUl9XTV9UUkFOUyhwaXBlKSwKLQkJCSAgIG5ldy0+cGxhbmVfdHJh bnNbcGlwZV1bUExBTkVfQ1VSU09SXSk7Ci0KIAkJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9w bGFuZXMoY3J0Yyk7IGkrKykgewogCQkJc2tsX2RkYl9lbnRyeV93cml0ZShkZXZfcHJpdiwKIAkJ CQkJICAgIFBMQU5FX0JVRl9DRkcocGlwZSwgaSksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCmluZGV4IDViZWFmZDQuLjZjMWYwMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCkBAIC0yMDQsNiArMjA0LDkgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpkcm1fcGxhbmUsCiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVs X3BsYW5lKGRybV9wbGFuZSk7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9z dGF0ZS0+YmFzZS5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxf ZmJfb2JqKGZiKTsKKwlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnNr bF9yZXN1bHRzOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0 YzsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 CiAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKIAljb25zdCBpbnQgcGxhbmUg PSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwogCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9kaXYsIHN0 cmlkZTsKQEAgLTIzOSw2ICsyNDIsOSBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKmRybV9wbGFuZSwKIAljcnRjX3ctLTsKIAljcnRjX2gtLTsKIAorCWlmICh3bS0+ZGlydHlf cGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMpKQorCSAgICBza2xfd3JpdGVfcGxhbmVfd20oaW50 ZWxfY3J0Yywgd20sIHBsYW5lKTsKKwogCWlmIChrZXktPmZsYWdzKSB7CiAJCUk5MTVfV1JJVEUo UExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lKSwga2V5LT5taW5fdmFsdWUpOwogCQlJOTE1X1dSSVRF KFBMQU5FX0tFWU1BWChwaXBlLCBwbGFuZSksIGtleS0+bWF4X3ZhbHVlKTsKLS0gCjIuNy40Cgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK