From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH REBASED v10 3/6] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Wed, 10 Aug 2016 10:27:50 -0400 Message-ID: <1470839281-19639-4-git-send-email-cpaul@redhat.com> References: <1470839281-19639-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: <1470839281-19639-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: intel-gfx@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 YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAzMDJjYjFm Li40Mjk4MTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yOTgwLDYg KzI5ODAsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0g JmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 CiAJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRlOwogCXUzMiB0aWxlX2hlaWdodCwg cGxhbmVfb2Zmc2V0LCBwbGFuZV9zaXplOwpAQCAtMzAzMSw2ICszMDMyLDkgQEAgc3RhdGljIHZv aWQgc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAlpbnRlbF9jcnRjLT5hZGp1c3RlZF94ID0geF9vZmZzZXQ7CiAJaW50ZWxfY3J0Yy0+YWRqdXN0 ZWRfeSA9IHlfb2Zmc2V0OwogCisJaWYgKHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2so JmludGVsX2NydGMtPmJhc2UpKQorCSAgICBza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywg d20sIDApOworCiAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7CiAJ STkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgMCksIHBsYW5lX29mZnNldCk7CiAJSTkxNV9X UklURShQTEFORV9TSVpFKHBpcGUsIDApLCBwbGFuZV9zaXplKTsKQEAgLTEwMzEwLDkgKzEwMzE0 LDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIHUzMiBiYXNlLAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3Qgc2ts X3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYtPndtLnNrbF9yZXN1bHRzOwogCWludCBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKIAl1aW50MzJfdCBjbnRsID0gMDsKIAorCWlmIChkZXZfcHJpdi0+ aW5mby5nZW4gPj0gOSAmJiB3bS0+ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMpKQor CQlza2xfd3JpdGVfY3Vyc29yX3dtKGludGVsX2NydGMsIHdtKTsKKwogCWlmIChwbGFuZV9zdGF0 ZSAmJiBwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKSB7CiAJCWNudGwgPSBNQ1VSU09SX0dBTU1B X0VOQUJMRTsKIAkJc3dpdGNoIChwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjX3cpIHsKQEAgLTE0MjIy LDEwICsxNDIzMCwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQogCQl0b19pbnRlbF9jcnRjX3N0YXRlKG9s ZF9jcnRjX3N0YXRlKTsKIAlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRl KTsKKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAkvKiBQZXJmb3JtIHZi bGFuayBldmFzaW9uIGFyb3VuZCBjb21taXQgb3BlcmF0aW9uICovCiAJaW50ZWxfcGlwZV91cGRh dGVfc3RhcnQoaW50ZWxfY3J0Yyk7CkBAIC0xNDI0MCw4ICsxNDI1MCwxMiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlpZiAo dG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSktPnVwZGF0ZV9waXBlKQogCQlpbnRlbF91 cGRhdGVfcGlwZV9jb25maWcoaW50ZWxfY3J0Yywgb2xkX2ludGVsX3N0YXRlKTsKLQllbHNlIGlm IChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KQorCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDkpIHsKIAkJc2tsX2RldGFjaF9zY2FsZXJzKGludGVsX2NydGMpOworCisJCUk5MTVf V1JJVEUoUElQRV9XTV9MSU5FVElNRShwaXBlKSwKKwkJCSAgIGRldl9wcml2LT53bS5za2xfaHcu d21fbGluZXRpbWVbcGlwZV0pOworCX0KIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2Ny dGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggZTM1Nzk5ZC4uMzhkNThhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTE3 MDAsNiArMTcwMCwxMSBAQCB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRi IC8qIG91dCAqLyk7CiBpbnQgc2tsX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CiBpbnQgc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwordm9pZCBza2xfd3JpdGVfY3Vyc29yX3dtKHN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjLAorCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSk7Cit2b2lk IHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJCWNv bnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSwKKwkJCWludCBwbGFuZSk7CiB1aW50MzJfdCBp bGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZyk7CiBib29sIGlsa19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwog aW50IHNhbml0aXplX3JjNl9vcHRpb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBpbnQgZW5hYmxlX3JjNik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBlZTY1OTBkLi5k ZjBmYWI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTM4MDAsNiArMzgwMCwzOSBAQCBz dGF0aWMgdm9pZCBza2xfZGRiX2VudHJ5X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJSTkxNV9XUklURShyZWcsIDApOwogfQogCit2b2lkIHNrbF93cml0ZV9wbGFu ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJCWNvbnN0IHN0cnVjdCBza2xf d21fdmFsdWVzICp3bSwKKwkJCWludCBwbGFuZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSAmaW50ZWxfY3J0Yy0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2 OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlp bnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKKwllbnVtIHBpcGUg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisKKwlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4 X2xldmVsOyBsZXZlbCsrKSB7CisJCUk5MTVfV1JJVEUoUExBTkVfV00ocGlwZSwgcGxhbmUsIGxl dmVsKSwKKwkJCSAgIHdtLT5wbGFuZVtwaXBlXVtwbGFuZV1bbGV2ZWxdKTsKKwl9CisJSTkxNV9X UklURShQTEFORV9XTV9UUkFOUyhwaXBlLCBwbGFuZSksIHdtLT5wbGFuZV90cmFuc1twaXBlXVtw bGFuZV0pOworfQorCit2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMsCisJCQkgY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtKQoreworCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOworCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZl bChkZXYpOworCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKworCWZvciAobGV2 ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKKwkJSTkxNV9XUklURShDVVJf V00ocGlwZSwgbGV2ZWwpLAorCQkJICAgd20tPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2 ZWxdKTsKKwl9CisJSTkxNV9XUklURShDVVJfV01fVFJBTlMocGlwZSksIHdtLT5wbGFuZV90cmFu c1twaXBlXVtQTEFORV9DVVJTT1JdKTsKK30KKwogc3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX3Zh bHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJY29uc3Qgc3RydWN0 IHNrbF93bV92YWx1ZXMgKm5ldykKIHsKQEAgLTM4MDcsNyArMzg0MCw3IEBAIHN0YXRpYyB2b2lk IHNrbF93cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCiAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNy dGMpIHsKLQkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7 CisJCWludCBpOwogCQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKIAkJaWYgKChuZXct PmRpcnR5X3BpcGVzICYgZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSkpID09IDApCkBAIC0zODE1 LDIxICszODQ4LDYgQEAgc3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWlmICghY3J0Yy0+YWN0aXZlKQogCQkJY29udGlu dWU7CiAKLQkJSTkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBuZXctPndtX2xpbmV0 aW1lW3BpcGVdKTsKLQotCQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZl bCsrKSB7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKQot CQkJCUk5MTVfV1JJVEUoUExBTkVfV00ocGlwZSwgaSwgbGV2ZWwpLAotCQkJCQkgICBuZXctPnBs YW5lW3BpcGVdW2ldW2xldmVsXSk7Ci0JCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBsZXZlbCks Ci0JCQkJICAgbmV3LT5wbGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdW2xldmVsXSk7Ci0JCX0KLQkJ Zm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoY3J0Yyk7IGkrKykKLQkJCUk5MTVfV1JJ VEUoUExBTkVfV01fVFJBTlMocGlwZSwgaSksCi0JCQkJICAgbmV3LT5wbGFuZV90cmFuc1twaXBl XVtpXSk7Ci0JCUk5MTVfV1JJVEUoQ1VSX1dNX1RSQU5TKHBpcGUpLAotCQkJICAgbmV3LT5wbGFu ZV90cmFuc1twaXBlXVtQTEFORV9DVVJTT1JdKTsKLQogCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxf bnVtX3BsYW5lcyhjcnRjKTsgaSsrKSB7CiAJCQlza2xfZGRiX2VudHJ5X3dyaXRlKGRldl9wcml2 LAogCQkJCQkgICAgUExBTkVfQlVGX0NGRyhwaXBlLCBpKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMKaW5kZXggY2JkY2E3ZTQuLjFjN2U3MDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCkBAIC0yMDQsNiArMjA0LDkgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpkcm1fcGxhbmUsCiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKGRybV9wbGFuZSk7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBw bGFuZV9zdGF0ZS0+YmFzZS5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0g aW50ZWxfZmJfb2JqKGZiKTsKKwlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqd20gPSAmZGV2X3ByaXYt PndtLnNrbF9yZXN1bHRzOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmJh c2UuY3J0YzsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7CiAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlwZTsKIAljb25zdCBpbnQg cGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwogCXUzMiBwbGFuZV9jdGwsIHN0cmlkZV9k aXYsIHN0cmlkZTsKQEAgLTIzOSw2ICsyNDIsOSBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKmRybV9wbGFuZSwKIAljcnRjX3ctLTsKIAljcnRjX2gtLTsKIAorCWlmICh3bS0+ ZGlydHlfcGlwZXMgJiBkcm1fY3J0Y19tYXNrKGNydGMpKQorCSAgICBza2xfd3JpdGVfcGxhbmVf d20oaW50ZWxfY3J0Yywgd20sIHBsYW5lKTsKKwogCWlmIChrZXktPmZsYWdzKSB7CiAJCUk5MTVf V1JJVEUoUExBTkVfS0VZVkFMKHBpcGUsIHBsYW5lKSwga2V5LT5taW5fdmFsdWUpOwogCQlJOTE1 X1dSSVRFKFBMQU5FX0tFWU1BWChwaXBlLCBwbGFuZSksIGtleS0+bWF4X3ZhbHVlKTsKLS0gCjIu Ny40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK