From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH 1/5] drm/i915/skl: Update plane watermarks atomically during plane updates Date: Wed, 26 Oct 2016 15:36:33 -0400 Message-ID: <1477510599-14843-2-git-send-email-lyude@redhat.com> References: <1477510599-14843-1-git-send-email-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1477510599-14843-1-git-send-email-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: stable@vger.kernel.org Cc: Lyude , David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hans de Goede , dri-devel@lists.freedesktop.org, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org Y29tbWl0IGMxNDVkM2JlMWMzMTMxODRiZTcxZDI2MjlmZDU3NTU2MWI3ZTM4ZDQgdXBzdHJlYW0K ClRoYW5rcyB0byBWaWxsZSBmb3Igc3VnZ2VzdGluZyB0aGlzIGFzIGEgcG90ZW50aWFsIHNvbHV0 aW9uIHRvIHBpcGUKdW5kZXJydW5zIG9uIFNreWxha2UuCgpPbiBTa3lsYWtlIGFsbCBvZiB0aGUg cmVnaXN0ZXJzIGZvciBjb25maWd1cmluZyBwbGFuZXMsIGluY2x1ZGluZyB0aGUKcmVnaXN0ZXJz IGZvciBjb25maWd1cmluZyB0aGVpciB3YXRlcm1hcmtzLCBhcmUgZG91YmxlIGJ1ZmZlcmVkLiBO ZXcKdmFsdWVzIHdyaXR0ZW4gdG8gdGhlbSB3b24ndCB0YWtlIGVmZmVjdCB1bnRpbCBzYWlkIHJl Z2lzdGVycyBhcmUKImFybWVkIiwgd2hpY2ggaXMgZG9uZSBieSB3cml0aW5nIHRvIHRoZSBQTEFO RV9TVVJGIChvciBpbiB0aGUgY2FzZSBvZgpjdXJzb3IgcGxhbmVzLCB0aGUgQ1VSQkFTRSByZWdp c3RlcikgcmVnaXN0ZXIuCgpXaXRoIHRoaXMgaW4gbWluZCwgdXAgdW50aWwgbm93IHdlJ3ZlIGJl ZW4gdXBkYXRpbmcgd2F0ZXJtYXJrcyBvbiBza2wKbGlrZSB0aGlzOgoKICBub24tbW9kZXNldCB7 CiAgIC0gY2FsY3VsYXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQogICAtIGZpbmlzaF9h dG9taWNfY29tbWl0OgogICAgIC0gaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZToKICAgICAgICAtIGlu dGVsX3VwZGF0ZV93YXRlcm1hcmtzKCkKICAgICAtIHt2YmxhbmsgaGFwcGVuczsgbmV3IHdhdGVy bWFya3MgKyBvbGQgcGxhbmUgdmFsdWVzID0+IHVuZGVycnVuIH0KICAgICAtIGRybV9hdG9taWNf aGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YzoKICAgICAgICAtIHN0YXJ0IHZibGFuayBldmFz aW9uCiAgICAgICAgLSB3cml0ZSBuZXcgcGxhbmUgcmVnaXN0ZXJzCiAgICAgICAgLSBlbmQgdmJs YW5rIGV2YXNpb24KICB9CgogIG9yCgogIG1vZGVzZXQgewogICAtIGNhbGN1bGF0ZSAoZHVyaW5n IGF0b21pYyBjaGVjayBwaGFzZSkKICAgLSBmaW5pc2hfYXRvbWljX2NvbW1pdDoKICAgICAtIGNy dGNfZW5hYmxlOgogICAgICAgIC0gaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoKQogICAgIC0ge3Zi bGFuayBoYXBwZW5zOyBuZXcgd2F0ZXJtYXJrcyArIG9sZCBwbGFuZSB2YWx1ZXMgPT4gdW5kZXJy dW4gfQogICAgIC0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjOgogICAg ICAgIC0gc3RhcnQgdmJsYW5rIGV2YXNpb24KICAgICAgICAtIHdyaXRlIG5ldyBwbGFuZSByZWdp c3RlcnMKICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgogIH0KCk5vdyB3ZSB1cGRhdGUgd2F0 ZXJtYXJrcyBhdG9taWNhbGx5IGxpa2UgdGhpczoKCiAgbm9uLW1vZGVzZXQgewogICAtIGNhbGN1 bGF0ZSAoZHVyaW5nIGF0b21pYyBjaGVjayBwaGFzZSkKICAgLSBmaW5pc2hfYXRvbWljX2NvbW1p dDoKICAgICAtIGludGVsX3ByZV9wbGFuZV91cGRhdGU6CiAgICAgICAgLSBpbnRlbF91cGRhdGVf d2F0ZXJtYXJrcygpICh3bSB2YWx1ZXMgYXJlbid0IHdyaXR0ZW4geWV0KQogICAgIC0gZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0X3BsYW5lc19vbl9jcnRjOgogICAgICAgIC0gc3RhcnQgdmJsYW5r IGV2YXNpb24KICAgICAgICAtIHdyaXRlIG5ldyBwbGFuZSByZWdpc3RlcnMKICAgICAgICAtIHdy aXRlIG5ldyB3bSB2YWx1ZXMKICAgICAgICAtIGVuZCB2YmxhbmsgZXZhc2lvbgogIH0KCiAgbW9k ZXNldCB7CiAgIC0gY2FsY3VsYXRlIChkdXJpbmcgYXRvbWljIGNoZWNrIHBoYXNlKQogICAtIGZp bmlzaF9hdG9taWNfY29tbWl0OgogICAgIC0gY3J0Y19lbmFibGU6CiAgICAgICAgLSBpbnRlbF91 cGRhdGVfd2F0ZXJtYXJrcygpIChhY3R1YWwgd20gdmFsdWVzIGFyZW4ndCB3cml0dGVuCiAgICAg ICAgICB5ZXQpCiAgICAgLSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfcGxhbmVzX29uX2NydGM6 CiAgICAgICAgLSBzdGFydCB2YmxhbmsgZXZhc2lvbgogICAgICAgIC0gd3JpdGUgbmV3IHBsYW5l IHJlZ2lzdGVycwoJLSB3cml0ZSBuZXcgd20gdmFsdWVzCiAgICAgICAgLSBlbmQgdmJsYW5rIGV2 YXNpb24KICB9CgpTbyB0aGlzIHBhdGNoIG1vdmVzIGFsbCBvZiB0aGUgd2F0ZXJtYXJrIHdyaXRl cyBpbnRvIHRoZSByaWdodCBwbGFjZTsKaW5zaWRlIG9mIHRoZSB2YmxhbmsgZXZhc2lvbiB3aGVy ZSB3ZSB1cGRhdGUgYWxsIG9mIHRoZSByZWdpc3RlcnMgZm9yCmVhY2ggcGxhbmUuIFdoaWxlIHRo aXMgcGF0Y2ggZG9lc24ndCBmaXggZXZlcnl0aGluZywgaXQgZG9lcyBhbGxvdyB1cyB0bwp1cGRh dGUgdGhlIHdhdGVybWFyayB2YWx1ZXMgaW4gdGhlIHdheSB0aGUgaGFyZHdhcmUgZXhwZWN0cyB1 cyB0by4KCkNoYW5nZXMgc2luY2Ugb3JpZ2luYWwgcGF0Y2ggc2VyaWVzOgogLSBSZW1vdmUgbXV0 ZXhfbG9jay9tdXRleF91bmxvY2sgc2luY2UgdGhleSBkb24ndCBkbyBhbnl0aGluZyBhbmQgd2Un cmUKICAgbm90IHRvdWNoaW5nIGdsb2JhbCBzdGF0ZQogLSBNb3ZlIHNrbF93cml0ZV9jdXJzb3Jf d20vc2tsX3dyaXRlX3BsYW5lX3dtIGZ1bmN0aW9ucyBpbnRvCiAgIGludGVsX3BtLmMsIG1ha2Ug ZXh0ZXJuYWxseSB2aXNpYmxlCiAtIEFkZCBza2xfd3JpdGVfcGxhbmVfd20gY2FsbHMgdG8gc2ts X3VwZGF0ZV9wbGFuZQogLSBGaXggY29uZGl0aW9uYWwgZm9yIGZvciBsb29wIGluIHNrbF93cml0 ZV9wbGFuZV93bSAobGV2ZWwgPCBtYXhfbGV2ZWwKICAgc2hvdWxkIGJlIGxldmVsIDw9IG1heF9s ZXZlbCkKIC0gTWFrZSBkaWFncmFtIGluIGNvbW1pdCBtb3JlIGFjY3VyYXRlIHRvIHdoYXQncyBh Y3R1YWxseSBoYXBwZW5pbmcKIC0gQWRkIEZpeGVzOgoKQ2hhbmdlcyBzaW5jZSB2MToKIC0gVXNl IElTX0dFTjkoKSBpbnN0ZWFkIG9mIElTX1NLWUxBS0UoKSBzaW5jZSB0aGVzZSBmaXhlcyBhcHBs eSB0byBtb3JlCiAgIHRoZW4ganVzdCBTa3lsYWtlCiAtIFVwZGF0ZSBkZXNjcmlwdGlvbiB0byBt YWtlIGl0IGNsZWFyIHRoaXMgcGF0Y2ggZG9lc24ndCBmaXggZXZlcnl0aGluZwogLSBDaGVjayBp ZiBwaXBlcyB3ZXJlIGFjdHVhbGx5IGNoYW5nZWQgYmVmb3JlIHdyaXRpbmcgd2F0ZXJtYXJrcwoK Q2hhbmdlcyBzaW5jZSB2MjoKIC0gV3JpdGUgUElQRV9XTV9MSU5FVElNRSBkdXJpbmcgdmJsYW5r IGV2YXNpb24KCkNoYW5nZXMgc2luY2UgdjM6CiAtIFJlYmFzZSBhZ2FpbnN0IG5ldyBTQUdWIHBh dGNoIGNoYW5nZXMKCkNoYW5nZXMgc2luY2UgdjQ6CiAtIEFkZCBhIHBhcmFtZXRlciB0byBjaG9v c2Ugd2hhdCBza2xfd21fdmFsdWVzIHN0cnVjdCB0byB1c2Ugd2hlbgogICB3cml0aW5nIG5ldyBw bGFuZSB3YXRlcm1hcmtzCgpDaGFuZ2VzIHNpbmNlIHY1OgogLSBSZW1vdmUgY3Vyc29yIGRkYiBl bnRyeSB3cml0ZSBpbiBza2xfd3JpdGVfY3Vyc29yX3dtKCksIGRlZmVyIHVudGlsCiAgIHBhdGNo IDYKIC0gV3JpdGUgV01fTElORVRJTUUgaW4gaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoKQoKQ2hh bmdlcyBzaW5jZSB2NjoKIC0gUmVtb3ZlIHJlZHVuZGFudCBkaXJ0eV9waXBlcyBjaGVjayBpbiBz a2xfd3JpdGVfcGxhbmVfd20gKHdlIGNoZWNrCiAgIHRoaXMgaW4gYWxsIHBsYWNlcyB3aGVyZSB3 ZSBjYWxsIHRoaXMgZnVuY3Rpb24sIGFuZCBpdCB3YXMgc3VwcG9zZWQKICAgdG8gaGF2ZSBiZWVu IHJlbW92ZWQgZWFybGllciBhbnl3YXkpCiAtIEluIGk5eHhfdXBkYXRlX2N1cnNvcigpLCB1c2Ug ZGV2X3ByaXYtPmluZm8uZ2VuID49IDkgaW5zdGVhZCBvZgogICBJU19HRU45KGRldl9wcml2KS4g V2UgZG8gdGhpcyBldmVyeXdoZXJlIGVsc2UgYW5kIEknZCBpbWFnaW5lIHRoaXMKICAgbmVlZHMg dG8gYmUgZG9uZSBmb3IgZ2VuMTAgYXMgd2VsbAoKQ2hhbmdlcyBzaW5jZSB2NzoKIC0gRml4IHJl YmFzZSBmYWlsICh1bnVzZWQgdmFyaWFibGUgb2JqKQogLSBNYWtlIHN0cnVjdCBza2xfd21fdmFs dWVzICp3bSBjb25zdAogLSBGaXggaW5kZW50aW5nCiAtIFVzZSBJTlRFTF9HRU4oKSBpbnN0ZWFk IG9mIGRldl9wcml2LT5pbmZvLmdlbgoKQ2hhbmdlcyBzaW5jZSB2ODoKIC0gRG9uJ3QgZm9yZ2V0 IGNhbGxzIHRvIHNrbF93cml0ZV9wbGFuZV93bSgpIHdoZW4gZGlzYWJsaW5nIHBsYW5lcwogLSBV c2UgSU5URUxfR0VOKCksIG5vdCBJTlRFTF9JTkZPKCktPmdlbiBpbiBpbnRlbF9iZWdpbl9jcnRj X2NvbW1pdCgpCgpGaXhlczogMmQ0MWMwYjU5YWZjICgiZHJtL2k5MTUvc2tsOiBTS0wgV2F0ZXJt YXJrIENvbXB1dGF0aW9uIikKU2lnbmVkLW9mZi1ieTogTHl1ZGUgPGx5dWRlQHJlZGhhdC5jb20+ ClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgpDYzog c3RhYmxlQHZnZXIua2VybmVsLm9yZwpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgpDYzogUmFkaGFrcmlzaG5hIFNyaXBhZGEgPHJhZGhha3Jpc2huYS5zcmlwYWRhQGludGVs LmNvbT4KQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ Ckxpbms6IGh0dHA6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lkLzE0NzE4 ODQ2MDgtMTA2NzEtMS1naXQtc2VuZC1lbWFpbC1jcGF1bEByZWRoYXQuY29tCkxpbms6IGh0dHA6 Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoL21zZ2lkLzE0NzE4ODQ2MDgtMTA2NzEt MS1naXQtc2VuZC1lbWFpbC1jcGF1bEByZWRoYXQuY29tCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIHwgMjEgKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNSArKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICA2ICsrKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxNzU1OTVmLi4xYWU1ODdmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0yOTgwLDYgKzI5ODAsNyBAQCBzdGF0aWMgdm9pZCBza3ls YWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2Uu ZmI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7 CisJY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRldl9wcml2LT53bS5za2xfcmVz dWx0czsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdTMyIHBsYW5lX2N0bCwgc3Ry aWRlX2Rpdiwgc3RyaWRlOwogCXUzMiB0aWxlX2hlaWdodCwgcGxhbmVfb2Zmc2V0LCBwbGFuZV9z aXplOwpAQCAtMzAzMSw2ICszMDMyLDkgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJp bWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpbnRlbF9jcnRjLT5hZGp1c3Rl ZF94ID0geF9vZmZzZXQ7CiAJaW50ZWxfY3J0Yy0+YWRqdXN0ZWRfeSA9IHlfb2Zmc2V0OwogCisJ aWYgKHdtLT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmludGVsX2NydGMtPmJhc2UpKQor CQlza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIDApOworCiAJSTkxNV9XUklURShQ TEFORV9DVEwocGlwZSwgMCksIHBsYW5lX2N0bCk7CiAJSTkxNV9XUklURShQTEFORV9PRkZTRVQo cGlwZSwgMCksIHBsYW5lX29mZnNldCk7CiAJSTkxNV9XUklURShQTEFORV9TSVpFKHBpcGUsIDAp LCBwbGFuZV9zaXplKTsKQEAgLTMwNjEsNyArMzA2NSwxMCBAQCBzdGF0aWMgdm9pZCBza3lsYWtl X2Rpc2FibGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAogewogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCWludCBwaXBlID0gdG9faW50ZWxfY3J0Yyhj cnRjKS0+cGlwZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Yyk7CisJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCisJc2tsX3dyaXRlX3Bs YW5lX3dtKGludGVsX2NydGMsICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHMsIDApOwogCiAJSTkx NV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIDApOwogCUk5MTVfV1JJVEUoUExBTkVfU1VSRihw aXBlLCAwKSwgMCk7CkBAIC0xMDMwNiw5ICsxMDMxMywxMyBAQCBzdGF0aWMgdm9pZCBpOXh4X3Vw ZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSwKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7CisJY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtID0gJmRl dl9wcml2LT53bS5za2xfcmVzdWx0czsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJ dWludDMyX3QgY250bCA9IDA7CiAKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIHdt LT5kaXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soY3J0YykpCisJCXNrbF93cml0ZV9jdXJzb3Jf d20oaW50ZWxfY3J0Yywgd20pOworCiAJaWYgKHBsYW5lX3N0YXRlICYmIHBsYW5lX3N0YXRlLT52 aXNpYmxlKSB7CiAJCWNudGwgPSBNQ1VSU09SX0dBTU1BX0VOQUJMRTsKIAkJc3dpdGNoIChwbGFu ZV9zdGF0ZS0+YmFzZS5jcnRjX3cpIHsKQEAgLTE0MjIxLDEwICsxNDIzMiwxMiBAQCBzdGF0aWMg dm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJ ICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfaW50ZWxf c3RhdGUgPQogCQl0b19pbnRlbF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsKIAlib29sIG1v ZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKTsKKwllbnVtIHBpcGUgcGlwZSA9IGlu dGVsX2NydGMtPnBpcGU7CiAKIAkvKiBQZXJmb3JtIHZibGFuayBldmFzaW9uIGFyb3VuZCBjb21t aXQgb3BlcmF0aW9uICovCiAJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0Yyk7CkBA IC0xNDIzOSw4ICsxNDI1MiwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlpZiAodG9faW50ZWxfY3J0Y19zdGF0ZShjcnRj LT5zdGF0ZSktPnVwZGF0ZV9waXBlKQogCQlpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoaW50ZWxf Y3J0Yywgb2xkX2ludGVsX3N0YXRlKTsKLQllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA5KQorCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewogCQlza2xfZGV0YWNo X3NjYWxlcnMoaW50ZWxfY3J0Yyk7CisKKwkJSTkxNV9XUklURShQSVBFX1dNX0xJTkVUSU1FKHBp cGUpLAorCQkJICAgZGV2X3ByaXYtPndtLnNrbF9ody53bV9saW5ldGltZVtwaXBlXSk7CisJfQog fQogCiBzdGF0aWMgdm9pZCBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBmZjM5OWI5Li41OGE4MTUyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTcxOSw2ICsxNzE5LDExIEBAIHZvaWQgc2ts X2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogYm9v bCBza2xfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CiBp bnQgc2tsX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiBp bnQgc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwor dm9pZCBza2xfd3JpdGVfY3Vyc29yX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAor CQkJIGNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSk7Cit2b2lkIHNrbF93cml0ZV9wbGFu ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJCWNvbnN0IHN0cnVjdCBza2xf d21fdmFsdWVzICp3bSwKKwkJCWludCBwbGFuZSk7CiB1aW50MzJfdCBpbGtfcGlwZV9waXhlbF9y YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7CiBib29sIGls a19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IHNhbml0aXplX3Jj Nl9vcHRpb24oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgZW5hYmxlX3Jj Nik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCAyZDI0ODEzLi4yOWJlZDc3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKQEAgLTM4MjgsNiArMzgyOCwzOSBAQCBzdGF0aWMgdm9pZCBza2xf ZGRiX2VudHJ5X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJSTkx NV9XUklURShyZWcsIDApOwogfQogCit2b2lkIHNrbF93cml0ZV9wbGFuZV93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YywKKwkJCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSwK KwkJCWludCBwbGFuZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmaW50ZWxfY3J0Yy0+ YmFzZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlpbnQgbGV2ZWwsIG1heF9s ZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX2Ny dGMtPnBpcGU7CisKKwlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsr KSB7CisJCUk5MTVfV1JJVEUoUExBTkVfV00ocGlwZSwgcGxhbmUsIGxldmVsKSwKKwkJCSAgIHdt LT5wbGFuZVtwaXBlXVtwbGFuZV1bbGV2ZWxdKTsKKwl9CisJSTkxNV9XUklURShQTEFORV9XTV9U UkFOUyhwaXBlLCBwbGFuZSksIHdtLT5wbGFuZV90cmFuc1twaXBlXVtwbGFuZV0pOworfQorCit2 b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCisJ CQkgY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtKQoreworCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OworCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWVudW0g cGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKKworCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8 PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKKwkJSTkxNV9XUklURShDVVJfV00ocGlwZSwgbGV2ZWwp LAorCQkJICAgd20tPnBsYW5lW3BpcGVdW1BMQU5FX0NVUlNPUl1bbGV2ZWxdKTsKKwl9CisJSTkx NV9XUklURShDVVJfV01fVFJBTlMocGlwZSksIHdtLT5wbGFuZV90cmFuc1twaXBlXVtQTEFORV9D VVJTT1JdKTsKK30KKwogc3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMg Km5ldykKIHsKQEAgLTM4MzUsNyArMzg2OCw3IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92 YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjOwogCiAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKLQkJaW50IGks IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7CisJCWludCBpOwogCQll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKIAkJaWYgKChuZXctPmRpcnR5X3BpcGVzICYg ZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSkpID09IDApCkBAIC0zODQzLDIxICszODc2LDYgQEAg c3RhdGljIHZvaWQgc2tsX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCWlmICghY3J0Yy0+YWN0aXZlKQogCQkJY29udGludWU7CiAKLQkJSTkxNV9X UklURShQSVBFX1dNX0xJTkVUSU1FKHBpcGUpLCBuZXctPndtX2xpbmV0aW1lW3BpcGVdKTsKLQot CQlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7Ci0JCQlmb3Ig KGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKQotCQkJCUk5MTVfV1JJVEUo UExBTkVfV00ocGlwZSwgaSwgbGV2ZWwpLAotCQkJCQkgICBuZXctPnBsYW5lW3BpcGVdW2ldW2xl dmVsXSk7Ci0JCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBsZXZlbCksCi0JCQkJICAgbmV3LT5w bGFuZVtwaXBlXVtQTEFORV9DVVJTT1JdW2xldmVsXSk7Ci0JCX0KLQkJZm9yIChpID0gMDsgaSA8 IGludGVsX251bV9wbGFuZXMoY3J0Yyk7IGkrKykKLQkJCUk5MTVfV1JJVEUoUExBTkVfV01fVFJB TlMocGlwZSwgaSksCi0JCQkJICAgbmV3LT5wbGFuZV90cmFuc1twaXBlXVtpXSk7Ci0JCUk5MTVf V1JJVEUoQ1VSX1dNX1RSQU5TKHBpcGUpLAotCQkJICAgbmV3LT5wbGFuZV90cmFuc1twaXBlXVtQ TEFORV9DVVJTT1JdKTsKLQogCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhjcnRj KTsgaSsrKSB7CiAJCQlza2xfZGRiX2VudHJ5X3dyaXRlKGRldl9wcml2LAogCQkJCQkgICAgUExB TkVfQlVGX0NGRyhwaXBlLCBpKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXgg N2MwOGU0Zi4uZDhiZmZmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTIw Myw2ICsyMDMsOSBAQCBza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFu ZSwKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUoZHJt X3BsYW5lKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIp OworCWNvbnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0+d20uc2tsX3Jl c3VsdHM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOwor CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlj b25zdCBpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwogCWNvbnN0IGludCBwbGFuZSA9IGlu dGVsX3BsYW5lLT5wbGFuZSArIDE7CiAJdTMyIHBsYW5lX2N0bCwgc3RyaWRlX2Rpdiwgc3RyaWRl OwpAQCAtMjM4LDYgKzI0MSw5IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAq ZHJtX3BsYW5lLAogCWNydGNfdy0tOwogCWNydGNfaC0tOwogCisJaWYgKHdtLT5kaXJ0eV9waXBl cyAmIGRybV9jcnRjX21hc2soY3J0YykpCisJCXNrbF93cml0ZV9wbGFuZV93bShpbnRlbF9jcnRj LCB3bSwgcGxhbmUpOworCiAJaWYgKGtleS0+ZmxhZ3MpIHsKIAkJSTkxNV9XUklURShQTEFORV9L RVlWQUwocGlwZSwgcGxhbmUpLCBrZXktPm1pbl92YWx1ZSk7CiAJCUk5MTVfV1JJVEUoUExBTkVf S0VZTUFYKHBpcGUsIHBsYW5lKSwga2V5LT5tYXhfdmFsdWUpOwotLSAKMi43LjQKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=