From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 5/6] drm/i915: Make updating pipe without modeset atomic. Date: Tue, 21 Jul 2015 16:14:22 +0200 Message-ID: <20150721141422.GP16722@phenom.ffwll.local> References: <1437478142-416-1-git-send-email-maarten.lankhorst@linux.intel.com> <1437478142-416-6-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTPS id 38AB3720B3 for ; Tue, 21 Jul 2015 07:11:44 -0700 (PDT) Received: by wicgb10 with SMTP id gb10so56977759wic.1 for ; Tue, 21 Jul 2015 07:11:42 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1437478142-416-6-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMjEsIDIwMTUgYXQgMDE6Mjk6MDFQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gSW5zdGVhZCBvZiBkb2luZyBhIGhhY2sgZHVyaW5nIHByaW1hcnkgcGxhbmUg Y29tbWl0IHRoZSBzdGF0ZQo+IGlzIHVwZGF0ZWQgZHVyaW5nIGF0b21pYyBldmFzaW9uLiBJdCBo YW5kbGVzIGRpZmZlcmVuY2VzIGluCj4gcGlwZSBzaXplIGFuZCB0aGUgcGFuZWwgZml0dGVyLgo+ IAo+IFRoaXMgaXMgY29udGludWluZyBvbiB0b3Agb2YgRGFuaWVsJ3Mgd29yayB0byBtYWtlIGZh c3Rlcgo+IG1vZGVzZXRzIGF0b21pYywgYW5kIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0Lgo+ IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Yy5jICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDkz ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0 aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj LmMKPiBpbmRleCAwOWEwYWQ2MTEwMDIuLjU4ZDYyZmJlOTYxYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pYy5jCj4gQEAgLTk4LDggKzk4LDggQEAgaW50ZWxfY3J0Y19kdXBsaWNh dGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJCXJldHVybiBOVUxMOwo+ICAKPiAg CV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0YywgJmNydGNfc3Rh dGUtPmJhc2UpOwo+IC0KPiAgCWNydGNfc3RhdGUtPmJhc2UuY3J0YyA9IGNydGM7Cj4gKwljcnRj X3N0YXRlLT51cGRhdGVfcGlwZSA9IGZhbHNlOwo+ICAKPiAgCXJldHVybiAmY3J0Y19zdGF0ZS0+ YmFzZTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA0NDMz MjgwMzM5ODEuLjQ4MGIyMzM2YzdiYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBAQCAtMTA4LDYgKzEwOCw5IEBAIHN0YXRpYyB2b2lkIHNrbF9pbml0X3NjYWxlcnMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2NydGMgKmludGVsX2NyCj4gIAlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIHN0YXRpYyBpbnQgaTl4eF9n ZXRfcmVmY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJ CQkgICBpbnQgbnVtX2Nvbm5lY3RvcnMpOwo+ICtzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfZW5h YmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiArc3RhdGljIHZvaWQgaXJvbmxha2VfcGZp dF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBib29sIGZvcmNlKTsKPiArc3RhdGlj IHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICBz dGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwo+ICAKPiAgdHlwZWRlZiBzdHJ1Y3Qgewo+IEBAIC0zMjY4LDE0ICszMjcxLDE3IEBA IHN0YXRpYyBib29sIGludGVsX2NydGNfaGFzX3BlbmRpbmdfZmxpcChzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIAlyZXR1cm4gcGVuZGluZzsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxf dXBkYXRlX3BpcGVfc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiArc3RhdGljIHZvaWQg aW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCgp1cGF0ZV9waXBl X2NvbmZpZyBzb3VuZHMgbGlrZSBpdCdzIGp1c3QgdXBkYXRpbmcgdGhlIGh3IHN0YXRlLiBNYXli ZSBjYWxsCml0IGludGVsX2Zhc3RzZXRfY3J0YyBvciBpbnRlbF9maXh1cF9jcnRjIG9yIGp1c3Qg aW50ZWxfdXBkYXRlX2NydGM/IFRoZQpvdGhlciBmdW5jdGlvbnMgYXJlIGFsc28gY2FsbGVkIGNy dGNfZW5hYmxlL2Rpc2FibGUsIHNvIGdvaW5nIHdpdGggY3J0YwpzZWVtcyBtb3JlIGNvbnNpc3Rl bnQuCgo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ IC0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gKwlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQo+ICsJCXRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Cj4gIAo+IC0JaWYgKCFpOTE1LmZhc3Rib290KQo+IC0JCXJl dHVybjsKPiArCURSTV9ERUJVR19LTVMoIlVwZGF0aW5nIHBpcGUgc2l6ZSAlaXglaSAtPiAlaXgl aVxuIiwKPiArCQkgICAgICBvbGRfY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdywgb2xkX2NydGNfc3Rh dGUtPnBpcGVfc3JjX2gsCj4gKwkJICAgICAgcGlwZV9jb25maWctPnBpcGVfc3JjX3csIHBpcGVf Y29uZmlnLT5waXBlX3NyY19oKTsKPiAgCj4gIAlpZiAoSEFTX0RESShkZXYpKQo+ICAJCWludGVs X3NldF9waXBlX2NzYygmY3J0Yy0+YmFzZSk7Cj4gQEAgLTMyODcsMjcgKzMyOTMsMjYgQEAgc3Rh dGljIHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK PiAgCSAqIGZhc3Rib290IGNhc2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUg dGhlIHBpcGVzcmMgYW5kCj4gIAkgKiBwZml0IHN0YXRlLCB3ZSdsbCBlbmQgdXAgd2l0aCBhIGJp ZyBmYiBzY2FubmVkIG91dCBpbnRvIHRoZSB3cm9uZwo+ICAJICogc2l6ZWQgc3VyZmFjZS4KPiAt CSAqCj4gLQkgKiBUbyBmaXggdGhpcyBwcm9wZXJseSwgd2UgbmVlZCB0byBob2lzdCB0aGUgY2hl Y2tzIHVwIGludG8KPiAtCSAqIGNvbXB1dGVfbW9kZV9jaGFuZ2VzIChvciBhYm92ZSksIGNoZWNr IHRoZSBhY3R1YWwgcGZpdCBzdGF0ZSBhbmQKPiAtCSAqIHdoZXRoZXIgdGhlIHBsYXRmb3JtIGFs bG93cyBwZml0IGRpc2FibGUgd2l0aCBwaXBlIGFjdGl2ZSwgYW5kIG9ubHkKPiAtCSAqIHRoZW4g dXBkYXRlIHRoZSBwaXBlc3JjIGFuZCBwZml0IHN0YXRlLCBldmVuIG9uIHRoZSBmbGlwIHBhdGgu Cj4gIAkgKi8KPiAgCj4gLQlhZGp1c3RlZF9tb2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOwo+IC0KPiAgCUk5MTVfV1JJVEUoUElQRVNSQyhjcnRjLT5waXBlKSwKPiAtCQkg ICAoKGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgLSAxKSA8PCAxNikgfAo+IC0JCSAgIChh ZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5IC0gMSkpOwo+IC0JaWYgKCFjcnRjLT5jb25maWct PnBjaF9wZml0LmVuYWJsZWQgJiYKPiAtCSAgICAoaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRjLCBJ TlRFTF9PVVRQVVRfTFZEUykgfHwKPiAtCSAgICAgaW50ZWxfcGlwZV9oYXNfdHlwZShjcnRjLCBJ TlRFTF9PVVRQVVRfRURQKSkpIHsKPiAtCQlJOTE1X1dSSVRFKFBGX0NUTChjcnRjLT5waXBlKSwg MCk7Cj4gLQkJSTkxNV9XUklURShQRl9XSU5fUE9TKGNydGMtPnBpcGUpLCAwKTsKPiAtCQlJOTE1 X1dSSVRFKFBGX1dJTl9TWihjcnRjLT5waXBlKSwgMCk7Cj4gKwkJICAgKChwaXBlX2NvbmZpZy0+ cGlwZV9zcmNfdyAtIDEpIDw8IDE2KSB8Cj4gKwkJICAgKHBpcGVfY29uZmlnLT5waXBlX3NyY19o IC0gMSkpOwo+ICsKPiArCS8qIG9uIHNreWxha2UgdGhpcyBpcyBkb25lIGJ5IGRldGFjaGluZyBz Y2FsZXJzICovCj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gOSkgewo+ICsJCXNrbF9k ZXRhY2hfc2NhbGVycyhjcnRjKTsKPiArCj4gKwkJaWYgKHBpcGVfY29uZmlnLT5wY2hfcGZpdC5l bmFibGVkKQo+ICsJCQlza3lsYWtlX3BmaXRfZW5hYmxlKGNydGMpOwo+ICsJfQo+ICsJZWxzZSBp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5ICYmCj4gKwkgICAgICAgICBIQVNfUENIX1NQTElU KGRldikpIHsKPiArCQlpZiAocGlwZV9jb25maWctPnBjaF9wZml0LmVuYWJsZWQpCj4gKwkJCWly b25sYWtlX3BmaXRfZW5hYmxlKGNydGMpOwo+ICsJCWVsc2UgaWYgKG9sZF9jcnRjX3N0YXRlLT5w Y2hfcGZpdC5lbmFibGVkKQo+ICsJCQlpcm9ubGFrZV9wZml0X2Rpc2FibGUoY3J0YywgdHJ1ZSk7 CgpJaXJjIEplc3NlJ3MgZXhwZXJpbWVudHMgc2hvd2VkIHRoYXQgeW91IGNvdWxkIG9ubHkgZGlz YWJsZSB0aGUgcGZpdAp3aXRob3V0IGEgbW9kZXNldCwgYnV0IG5vdCBlbmFibGUgaXQgd2l0aG91 dCBhIG1vZGVzZXQuIE5vdCBzdXJlIGhvdyB0aGF0CndvcmtzIG9uIHNrbCwgYnV0IHRoYXQncyB3 aGF0IEkgcmVtZW1iZXIgZm9yIGVhbGllciBwbGF0Zm9ybXMgYXQgbGVhc3QuCgpBbHNvIGl0IHNo b3VsZCB3b3JrIHRoZSBzYW1lIGZvciBnbWNoIHBsYXRmb3JtcyByZWFsbHkuCgpBbHNvIGJpZyB0 aGluZyBzdGlsbCBtaXNzaW5nIGlzIHRoZSBzcGVjaWFsIHRlc3RjYXNlIHdoaWNoIGRvZXMgZGly ZWN0Cm1vZGVzZXRzIHRyeWluZyB0byBmb3JjZSBmYXN0c2V0IHBmaXQgY2hhbmdlcyBvbiBlZHAv ZHNpL2x2ZHMuCi1EYW5pZWwKCj4gIAl9Cj4gLQljcnRjLT5jb25maWctPnBpcGVfc3JjX3cgPSBh ZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5Owo+IC0JY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19o ID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg aW50ZWxfZmRpX25vcm1hbF90cmFpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gQEAgLTQ5NTYs NyArNDk2MSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRybV9j cnRjICpjcnRjKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rp c2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gK3N0YXRpYyB2b2lkIGlyb25sYWtlX3Bm aXRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywgYm9vbCBmb3JjZSkKPiAgewo+ICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtNDk2NCw3ICs0 OTY5LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQo+ICAKPiAgCS8qIFRvIGF2b2lkIHVwc2V0dGluZyB0aGUgcG93ZXIgd2VsbCBv biBoYXN3ZWxsIG9ubHkgZGlzYWJsZSB0aGUgcGZpdCBpZgo+ICAJICogaXQncyBpbiB1c2UuIFRo ZSBodyBzdGF0ZSBjb2RlIHdpbGwgbWFrZSBzdXJlIHdlIGdldCB0aGlzIHJpZ2h0LiAqLwo+IC0J aWYgKGNydGMtPmNvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgewo+ICsJaWYgKGZvcmNlIHx8IGNy dGMtPmNvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkgewo+ICAJCUk5MTVfV1JJVEUoUEZfQ1RMKHBp cGUpLCAwKTsKPiAgCQlJOTE1X1dSSVRFKFBGX1dJTl9QT1MocGlwZSksIDApOwo+ICAJCUk5MTVf V1JJVEUoUEZfV0lOX1NaKHBpcGUpLCAwKTsKPiBAQCAtNDk5MSw3ICs0OTk2LDcgQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCj4g IAlpbnRlbF9kaXNhYmxlX3BpcGUoaW50ZWxfY3J0Yyk7Cj4gIAo+IC0JaXJvbmxha2VfcGZpdF9k aXNhYmxlKGludGVsX2NydGMpOwo+ICsJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGludGVsX2NydGMs IGZhbHNlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIp Cj4gIAkJaXJvbmxha2VfZmRpX2Rpc2FibGUoY3J0Yyk7Cj4gQEAgLTUwNTQsNyArNTA1OSw3IEBA IHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA5KQo+ICAJCXNreWxha2Vfc2NhbGVyX2Rp c2FibGUoaW50ZWxfY3J0Yyk7Cj4gIAllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkp Cj4gLQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKGludGVsX2NydGMpOwo+ICsJCWlyb25sYWtlX3Bm aXRfZGlzYWJsZShpbnRlbF9jcnRjLCBmYWxzZSk7Cj4gIAllbHNlCj4gIAkJTUlTU0lOR19DQVNF KElOVEVMX0lORk8oZGV2KS0+Z2VuKTsKPiAgCj4gQEAgLTUyMDgsNyArNTIxMyw4IEBAIHN0YXRp YyB2b2lkIG1vZGVzZXRfdXBkYXRlX2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4gIAlpbnQgaTsKPiAgCj4gIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRl KHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gLQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0 Yy0+c3RhdGUpKQo+ICsJCWlmIChuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSB8fAo+ICsJCSAg ICB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKS0+dXBkYXRlX3BpcGUpCj4gIAkJCXB1 dF9kb21haW5zW3RvX2ludGVsX2NydGMoY3J0YyktPnBpcGVdID0KPiAgCQkJCW1vZGVzZXRfZ2V0 X2NydGNfcG93ZXJfZG9tYWlucyhjcnRjKTsKPiAgCX0KPiBAQCAtMTIxODAsNyArMTIxODYsNiBA QCBzdGF0aWMgYm9vbCBpbnRlbF9mdXp6eV9jbG9ja19jaGVjayhpbnQgY2xvY2sxLCBpbnQgY2xv Y2syKQo+ICAJCQkgICAgYmFzZS5oZWFkKSBcCj4gIAkJaWYgKG1hc2sgJiAoMSA8PChpbnRlbF9j cnRjKS0+cGlwZSkpCj4gIAo+IC0KPiAgc3RhdGljIGJvb2wKPiAgaW50ZWxfY29tcGFyZV9tX24o dW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuLAo+ICAJCSAgdW5zaWduZWQgaW50IG0yLCB1 bnNpZ25lZCBpbnQgbjIsCj4gQEAgLTEyNDAwLDggKzEyNDA1LDE2IEBAIGludGVsX3BpcGVfY29u ZmlnX2NvbXBhcmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCSAgICAgIERSTV9NT0RF X0ZMQUdfTlZTWU5DKTsKPiAgCX0KPiAgCj4gLQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY193 KTsKPiAtCVBJUEVfQ09ORl9DSEVDS19JKHBpcGVfc3JjX2gpOwo+ICsJaWYgKCFhZGp1c3QpIHsK PiArCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY193KTsKPiArCQlQSVBFX0NPTkZfQ0hFQ0tf SShwaXBlX3NyY19oKTsKPiArCj4gKwkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQuZW5hYmxl ZCk7Cj4gKwkJaWYgKGN1cnJlbnRfY29uZmlnLT5wY2hfcGZpdC5lbmFibGVkKSB7Cj4gKwkJCVBJ UEVfQ09ORl9DSEVDS19JKHBjaF9wZml0LnBvcyk7Cj4gKwkJCVBJUEVfQ09ORl9DSEVDS19JKHBj aF9wZml0LnNpemUpOwo+ICsJCX0KPiArCX0KPiAgCj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSShnbWNo X3BmaXQuY29udHJvbCk7Cj4gIAkvKiBwZml0IHJhdGlvcyBhcmUgYXV0b2NvbXB1dGVkIGJ5IHRo ZSBodyBvbiBnZW40KyAqLwo+IEBAIC0xMjQwOSwxMiArMTI0MjIsNiBAQCBpbnRlbF9waXBlX2Nv bmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJUElQRV9DT05GX0NIRUNL X0koZ21jaF9wZml0LnBnbV9yYXRpb3MpOwo+ICAJUElQRV9DT05GX0NIRUNLX0koZ21jaF9wZml0 Lmx2ZHNfYm9yZGVyX2JpdHMpOwo+ICAKPiAtCVBJUEVfQ09ORl9DSEVDS19JKHBjaF9wZml0LmVu YWJsZWQpOwo+IC0JaWYgKGN1cnJlbnRfY29uZmlnLT5wY2hfcGZpdC5lbmFibGVkKSB7Cj4gLQkJ UElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQucG9zKTsKPiAtCQlQSVBFX0NPTkZfQ0hFQ0tfSShw Y2hfcGZpdC5zaXplKTsKPiAtCX0KPiAtCj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSShzY2FsZXJfc3Rh dGUuc2NhbGVyX2lkKTsKPiAgCj4gIAkvKiBCRFcrIGRvbid0IGV4cG9zZSBhIHN5bmNocm9ub3Vz IHdheSB0byByZWFkIHRoZSBzdGF0ZSAqLwo+IEBAIC0xMjg3Nyw3ICsxMjg4NCw2IEBAIHN0YXRp YyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtCj4gIHN0YXRpYyBpbnQgaW50ZWxfbW9k ZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiBAQCAtMTI5NjgsNiArMTI5NzQsNyBA QCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAJCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLAo+ICAJCQkJCXBpcGVfY29u ZmlnLCB0cnVlKSkgewo+ICAJCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSBmYWxzZTsKPiAr CQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+dXBkYXRlX3BpcGUgPSB0cnVlOwo+ ICAJCX0KPiAgCj4gIAkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpIHsKPiBAQCAtMTM0 MjYsMTAgKzEzNDMzLDYgQEAgaW50ZWxfY29tbWl0X3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCj4gIAlpZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCj4gIAkJcmV0dXJuOwo+ ICAKPiAtCWlmIChzdGF0ZS0+dmlzaWJsZSkKPiAtCQkvKiBGSVhNRToga2lsbCB0aGlzIGZhc3Ri b290IGhhY2sgKi8KPiAtCQlpbnRlbF91cGRhdGVfcGlwZV9zaXplKGludGVsX2NydGMpOwo+IC0K PiAgCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9wcmltYXJ5X3BsYW5lKGNydGMsIGZiLCBjcnRj LT54LCBjcnRjLT55KTsKPiAgfQo+ICAKPiBAQCAtMTM0NDgsNiArMTM0NTEsOSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIHsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KPiArCQl0b19pbnRlbF9jcnRjX3N0YXRlKG9s ZF9jcnRjX3N0YXRlKTsKPiArCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQoY3J0Yy0+c3Rh dGUpOwo+ICAKPiAgCWlmIChpbnRlbF9jcnRjLT5hdG9taWMudXBkYXRlX3dtX3ByZSkKPiAgCQlp bnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKPiBAQCAtMTM0NTYsNyArMTM0NjIsMTIgQEAg c3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICAJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpCj4gIAkJaW50ZWxfcGlwZV91cGRhdGVfc3Rh cnQoaW50ZWxfY3J0YywgJmludGVsX2NydGMtPnN0YXJ0X3ZibF9jb3VudCk7Cj4gIAo+IC0JaWYg KCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5 KQo+ICsJaWYgKG1vZGVzZXQpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlmICh0b19pbnRlbF9jcnRj X3N0YXRlKGNydGMtPnN0YXRlKS0+dXBkYXRlX3BpcGUpCj4gKwkJaW50ZWxfdXBkYXRlX3BpcGVf Y29uZmlnKGludGVsX2NydGMsIG9sZF9pbnRlbF9zdGF0ZSk7Cj4gKwllbHNlIGlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA5KQo+ICAJCXNrbF9kZXRhY2hfc2NhbGVycyhpbnRlbF9jcnRjKTsK PiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGNiZTIwMjUwYzkwMS4u MWFmNTcxN2UyZThhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMzMzLDYg KzMzMyw4IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgI2RlZmluZSBQSVBFX0NPTkZJ R19RVUlSS19NT0RFX1NZTkNfRkxBR1MJKDE8PDApIC8qIHVucmVsaWFibGUgc3luYyBtb2RlLmZs YWdzICovCj4gIAl1bnNpZ25lZCBsb25nIHF1aXJrczsKPiAgCj4gKwlib29sIHVwZGF0ZV9waXBl Owo+ICsKPiAgCS8qIFBpcGUgc291cmNlIHNpemUgKGllLiBwYW5lbCBmaXR0ZXIgaW5wdXQgc2l6 ZSkKPiAgCSAqIEFsbCBwbGFuZXMgd2lsbCBiZSBwb3NpdGlvbmVkIGluc2lkZSB0aGlzIHNwYWNl LAo+ICAJICogYW5kIGdldCBjbGlwcGVkIGF0IHRoZSBlZGdlcy4gKi8KPiAtLSAKPiAyLjEuMAo+ IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cgot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0 cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK