From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 04/15] drm/i915: Walk over encoders in crtc enable/disable using atomic state. Date: Mon, 22 Aug 2016 16:28:40 +0200 Message-ID: <20160822142840.GC24290@phenom.ffwll.local> References: <1470755054-32699-1-git-send-email-maarten.lankhorst@linux.intel.com> <1470755054-32699-5-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-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B4986E0E5 for ; Mon, 22 Aug 2016 14:28:44 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id i138so13721978wmf.3 for ; Mon, 22 Aug 2016 07:28:44 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1470755054-32699-5-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 T24gVHVlLCBBdWcgMDksIDIwMTYgYXQgMDU6MDQ6MDNQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVGhpcyBjbGVhbnMgdXAgYW5vdGhlciBwb3NzaWJsZSB1c2Ugb2YgdGhlIGNv bm5lY3RvciBsaXN0LAo+IGVuY29kZXItPmNydGMgaXMgbGVnYWN5IHN0YXRlIGFuZCBzaG91bGQg bm90IGJlIHVzZWQuCj4gCj4gV2l0aCB0aGUgYXRvbWljIHN0YXRlIGFzIGFyZ3VtZW50IGl0J3Mg ZWFzeSB0byBmaW5kIHRoZSBlbmNvZGVyIGZyb20KPiB0aGUgY29ubmVjdG9yIGl0IGJlbG9uZ3Mg dG8uCj4gCj4gaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIgaXMgYSBub29wIGZvciAhSEFT X0RESSwgc28gaXQncyBoYXJtbGVzcwo+IHRvIHVuY29uZGl0aW9uYWxseSBpbmNsdWRlIGl0IGlu IGVuY29kZXIgZW5hYmxlL2Rpc2FibGUuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KCkR1bm5vIHdoeSBJIG1p c3NlZCB0aGF0IG9uZSwgc29ycnkuCgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8IDE5MCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICAxIGZp bGUgY2hhbmdlZCwgMTM0IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBhZTU1NWI0MjQwYzYuLjgyMWRmZjcx OWVjOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDY5NCw2 ICs0Njk0LDEyMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgcGxhbmVfbWFzawo+ICAJaW50ZWxfZnJvbnRidWZm ZXJfZmxpcCh0b19pOTE1KGRldiksIElOVEVMX0ZST05UQlVGRkVSX0FMTF9NQVNLKHBpcGUpKTsK PiAgfQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9s ZF9zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0 YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47Cj4gKwlpbnQgaTsKPiArCj4gKwlm b3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0 ZSwgaSkgewo+ICsJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlID0gY29u bi0+c3RhdGU7Cj4gKwkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQo+ICsJCQl0b19p bnRlbF9lbmNvZGVyKGNvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7Cj4gKwo+ICsJCWlmIChjb25u X3N0YXRlLT5jcnRjICE9IGNydGMpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoZW5jb2Rl ci0+cHJlX3BsbF9lbmFibGUpCj4gKwkJCWVuY29kZXItPnByZV9wbGxfZW5hYmxlKGVuY29kZXIp Owo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpvbGRfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJaW50IGk7Cj4g Kwo+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nv bm5fc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSA9IGNvbm4tPnN0YXRlOwo+ICsJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KPiAr CQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwo+ICsKPiArCQlp ZiAoY29ubl9zdGF0ZS0+Y3J0YyAhPSBjcnRjKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYg KGVuY29kZXItPnByZV9lbmFibGUpCj4gKwkJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7 Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX2VuYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRf c3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0 ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJaW50IGk7Cj4gKwo+ICsJZm9y X2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUs IGkpIHsKPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSA9IGNvbm4t PnN0YXRlOwo+ICsJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KPiArCQkJdG9faW50 ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwo+ICsKPiArCQlpZiAoY29ubl9z dGF0ZS0+Y3J0YyAhPSBjcnRjKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZW5jb2Rlci0+ZW5h YmxlKGVuY29kZXIpOwo+ICsJCWludGVsX29wcmVnaW9uX25vdGlmeV9lbmNvZGVyKGVuY29kZXIs IHRydWUpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19kaXNh YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkJCSAgIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpvbGRfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJaW50IGk7Cj4g Kwo+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nv bm5fc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9Cj4gKwkJ CXRvX2ludGVsX2VuY29kZXIob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7Cj4gKwo+ICsJ CWlmIChvbGRfY29ubl9zdGF0ZS0+Y3J0YyAhPSBjcnRjKQo+ICsJCQljb250aW51ZTsKPiArCj4g KwkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoZW5jb2RlciwgZmFsc2UpOwo+ICsJCWVu Y29kZXItPmRpc2FibGUoZW5jb2Rlcik7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGlu dGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCQkJ c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm47Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUob2xk X3N0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgaSkgewo+ICsJCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyID0KPiArCQkJdG9faW50ZWxfZW5jb2RlcihvbGRfY29ubl9zdGF0ZS0+YmVz dF9lbmNvZGVyKTsKPiArCj4gKwkJaWYgKG9sZF9jb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCj4g KwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxlKQo+ICsJCQll bmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2 b2lkIGludGVsX2VuY29kZXJzX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICsJCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7Cj4gKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubjsKPiArCWludCBpOwo+ICsKPiArCWZvcl9lYWNoX2Nvbm5lY3Rv cl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7Cj4gKwkJc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQo+ICsJCQl0b19pbnRlbF9lbmNvZGVyKG9sZF9j b25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwo+ICsKPiArCQlpZiAob2xkX2Nvbm5fc3RhdGUtPmNy dGMgIT0gY3J0YykKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCWlmIChlbmNvZGVyLT5wb3N0X3Bs bF9kaXNhYmxlKQo+ICsJCQllbmNvZGVyLT5wb3N0X3BsbF9kaXNhYmxlKGVuY29kZXIpOwo+ICsJ fQo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCQkgc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKm9sZF9zdGF0ZSkKPiAgewo+IEBAIC00NzAxLDcgKzQ4MTgsNiBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcs Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXI7Cj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gIAo+ICAJ aWYgKFdBUk5fT04oaW50ZWxfY3J0Yy0+YWN0aXZlKSkKPiBAQCAtNDc0MCw5ICs0ODU2LDcgQEAg c3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAo+ICAKPiAgCWludGVsX2NydGMtPmFjdGl2ZSA9IHRydWU7Cj4gIAo+IC0J Zm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAtCQlpZiAoZW5j b2Rlci0+cHJlX2VuYWJsZSkKPiAtCQkJZW5jb2Rlci0+cHJlX2VuYWJsZShlbmNvZGVyKTsKPiAr CWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgCj4gIAlpZiAo aW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKPiAgCQkvKiBOb3RlOiBGREkg UExMIGVuYWJsaW5nIF9tdXN0XyBiZSBkb25lIGJlZm9yZSB3ZSBlbmFibGUgdGhlCj4gQEAgLTQ3 NzIsOCArNDg4Niw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQo Y3J0Yyk7Cj4gIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gIAo+IC0JZm9yX2VhY2hfZW5j b2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAtCQllbmNvZGVyLT5lbmFibGUoZW5j b2Rlcik7Cj4gKwlpbnRlbF9lbmNvZGVyc19lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgCj4g IAlpZiAoSEFTX1BDSF9DUFQoZGV2KSkKPiAgCQljcHRfdmVyaWZ5X21vZGVzZXQoZGV2LCBpbnRl bF9jcnRjLT5waXBlKTsKPiBAQCAtNDc5OCw3ICs0OTExLDYgQEAgc3RhdGljIHZvaWQgaGFzd2Vs bF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXI7Cj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGUsIGhzd193b3JrYXJvdW5k X3BpcGU7Cj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5j b25maWctPmNwdV90cmFuc2NvZGVyOwo+ICAKPiBAQCAtNDgwOSw5ICs0OTIxLDcgQEAgc3RhdGlj IHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCj4gIAkJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJp diwgVFJBTlNDT0RFUl9BLAo+ICAJCQkJCQkgICAgICBmYWxzZSk7Cj4gIAo+IC0JZm9yX2VhY2hf ZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAtCQlpZiAoZW5jb2Rlci0+cHJl X3BsbF9lbmFibGUpCj4gLQkJCWVuY29kZXItPnByZV9wbGxfZW5hYmxlKGVuY29kZXIpOwo+ICsJ aW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgCj4gIAlp ZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5zaGFyZWRfZHBsbCkKPiAgCQlpbnRlbF9lbmFibGVfc2hh cmVkX2RwbGwoaW50ZWxfY3J0Yyk7Cj4gQEAgLTQ4NDksMTAgKzQ5NTksNyBAQCBzdGF0aWMgdm9p ZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKPiAgCWVsc2UKPiAgCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRl dl9wcml2LCBwaXBlLCB0cnVlKTsKPiAgCj4gLQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2 LCBjcnRjLCBlbmNvZGVyKSB7Cj4gLQkJaWYgKGVuY29kZXItPnByZV9lbmFibGUpCj4gLQkJCWVu Y29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Cj4gLQl9Cj4gKwlpbnRlbF9lbmNvZGVyc19wcmVf ZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ aGFzX3BjaF9lbmNvZGVyKQo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluKGNy dGMpOwo+IEBAIC00ODkzLDEwICs1MDAwLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Vu YWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAlhc3NlcnRfdmJs YW5rX2Rpc2FibGVkKGNydGMpOwo+ICAJZHJtX2NydGNfdmJsYW5rX29uKGNydGMpOwo+ICAKPiAt CWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpIHsKPiAtCQllbmNv ZGVyLT5lbmFibGUoZW5jb2Rlcik7Cj4gLQkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIo ZW5jb2RlciwgdHJ1ZSk7Cj4gLQl9Cj4gKwlpbnRlbF9lbmNvZGVyc19lbmFibGUoY3J0Yywgb2xk X3N0YXRlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIp IHsKPiAgCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBwaXBlKTsKPiBAQCAtNDkzNyw3ICs1 MDQxLDYgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Yyk7Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiAgCWludCBwaXBlID0g aW50ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gIAkvKgo+IEBAIC00OTUwLDggKzUwNTMsNyBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9s ZF9jcnRjX3N0YXRlLAo+ICAJCWludGVsX3NldF9wY2hfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmco ZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKPiAgCX0KPiAgCj4gLQlmb3JfZWFjaF9lbmNvZGVyX29u X2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQo+IC0JCWVuY29kZXItPmRpc2FibGUoZW5jb2Rlcik7 Cj4gKwlpbnRlbF9lbmNvZGVyc19kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJZHJt X2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7 Cj4gQEAgLTQ5NjMsOSArNTA2NSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gIAlpZiAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpCj4gIAkJaXJvbmxha2VfZmRpX2Rpc2FibGUo Y3J0Yyk7Cj4gIAo+IC0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rl cikKPiAtCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxlKQo+IC0JCQllbmNvZGVyLT5wb3N0X2Rp c2FibGUoZW5jb2Rlcik7Cj4gKwlpbnRlbF9lbmNvZGVyc19wb3N0X2Rpc2FibGUoY3J0Yywgb2xk X3N0YXRlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIp IHsKPiAgCQlpcm9ubGFrZV9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKGRldl9wcml2LCBwaXBlKTsK PiBAQCAtNTAwMiwxNyArNTEwMiwxMyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IC0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7 Cj4gIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBpbnRlbF9jcnRjLT5jb25maWct PmNwdV90cmFuc2NvZGVyOwo+ICAKPiAgCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19wY2hf ZW5jb2RlcikKPiAgCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9w cml2LCBUUkFOU0NPREVSX0EsCj4gIAkJCQkJCSAgICAgIGZhbHNlKTsKPiAgCj4gLQlmb3JfZWFj aF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7Cj4gLQkJaW50ZWxfb3ByZWdp b25fbm90aWZ5X2VuY29kZXIoZW5jb2RlciwgZmFsc2UpOwo+IC0JCWVuY29kZXItPmRpc2FibGUo ZW5jb2Rlcik7Cj4gLQl9Cj4gKwlpbnRlbF9lbmNvZGVyc19kaXNhYmxlKGNydGMsIG9sZF9zdGF0 ZSk7Cj4gIAo+ICAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKPiAgCWFzc2VydF92Ymxhbmtf ZGlzYWJsZWQoY3J0Yyk7Cj4gQEAgLTUwMzUsOSArNTEzMSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dl bGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK PiAgCWlmICghdHJhbnNjb2Rlcl9pc19kc2koY3B1X3RyYW5zY29kZXIpKQo+ICAJCWludGVsX2Rk aV9kaXNhYmxlX3BpcGVfY2xvY2soaW50ZWxfY3J0Yyk7Cj4gIAo+IC0JZm9yX2VhY2hfZW5jb2Rl cl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAtCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNh YmxlKQo+IC0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7Cj4gKwlpbnRlbF9lbmNv ZGVyc19wb3N0X2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgCj4gIAlpZiAoaW50ZWxfY3J0 Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKPiAgCQlscHRfZGlzYWJsZV9wY2hfdHJhbnNj b2RlcihkZXZfcHJpdik7Cj4gQEAgLTYxMDksNyArNjIwMyw2IEBAIHN0YXRpYyB2b2lkIHZhbGxl eXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyOwo+ICAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAKPiAgCWlm IChXQVJOX09OKGludGVsX2NydGMtPmFjdGl2ZSkpCj4gQEAgLTYxMzQsOSArNjIyNyw3IEBAIHN0 YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAo+ICAKPiAgCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRp bmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwo+ICAKPiAtCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0 YyhkZXYsIGNydGMsIGVuY29kZXIpCj4gLQkJaWYgKGVuY29kZXItPnByZV9wbGxfZW5hYmxlKQo+ IC0JCQllbmNvZGVyLT5wcmVfcGxsX2VuYWJsZShlbmNvZGVyKTsKPiArCWludGVsX2VuY29kZXJz X3ByZV9wbGxfZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJaWYgKElTX0NIRVJSWVZJ RVcoZGV2KSkgewo+ICAJCWNodl9wcmVwYXJlX3BsbChpbnRlbF9jcnRjLCBpbnRlbF9jcnRjLT5j b25maWcpOwo+IEBAIC02MTQ2LDkgKzYyMzcsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2Ny dGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQl2bHZf ZW5hYmxlX3BsbChpbnRlbF9jcnRjLCBpbnRlbF9jcnRjLT5jb25maWcpOwo+ICAJfQo+ICAKPiAt CWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCj4gLQkJaWYgKGVu Y29kZXItPnByZV9lbmFibGUpCj4gLQkJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Cj4g KwlpbnRlbF9lbmNvZGVyc19wcmVfZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJaTl4 eF9wZml0X2VuYWJsZShpbnRlbF9jcnRjKTsKPiAgCj4gQEAgLTYxNjAsOCArNjI0OSw3IEBAIHN0 YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAo+ICAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKPiAgCWRybV9j cnRjX3ZibGFua19vbihjcnRjKTsKPiAgCj4gLQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2 LCBjcnRjLCBlbmNvZGVyKQo+IC0JCWVuY29kZXItPmVuYWJsZShlbmNvZGVyKTsKPiArCWludGVs X2VuY29kZXJzX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9p ZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gQEAgLTYx ODAsNyArNjI2OCw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ICAJZW51bSBwaXBlIHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICAKPiAgCWlmIChXQVJOX09OKGludGVsX2NydGMtPmFj dGl2ZSkpCj4gQEAgLTYyMDEsOSArNjI4OCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFi bGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJaWYgKCFJU19HRU4y KGRldikpCj4gIAkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJp diwgcGlwZSwgdHJ1ZSk7Cj4gIAo+IC0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0 YywgZW5jb2RlcikKPiAtCQlpZiAoZW5jb2Rlci0+cHJlX2VuYWJsZSkKPiAtCQkJZW5jb2Rlci0+ cHJlX2VuYWJsZShlbmNvZGVyKTsKPiArCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoY3J0Yywg b2xkX3N0YXRlKTsKPiAgCj4gIAlpOXh4X2VuYWJsZV9wbGwoaW50ZWxfY3J0Yyk7Cj4gIAo+IEBA IC02MjE3LDggKzYzMDIsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCWFzc2VydF92YmxhbmtfZGlzYWJsZWQo Y3J0Yyk7Cj4gIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7Cj4gIAo+IC0JZm9yX2VhY2hfZW5j b2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAtCQllbmNvZGVyLT5lbmFibGUoZW5j b2Rlcik7Cj4gKwlpbnRlbF9lbmNvZGVyc19lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgfQo+ ICAKPiAgc3RhdGljIHZvaWQgaTl4eF9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4gQEAgLTYyNDMsNyArNjMyNyw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsK PiAgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gIAkvKgo+IEBAIC02MjUzLDgg KzYzMzYsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gIAlpZiAoSVNfR0VOMihkZXYpKQo+ICAJCWludGVs X3dhaXRfZm9yX3ZibGFuayhkZXYsIHBpcGUpOwo+ICAKPiAtCWZvcl9lYWNoX2VuY29kZXJfb25f Y3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCj4gLQkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyKTsK PiArCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgCj4gIAlkcm1f Y3J0Y192Ymxhbmtfb2ZmKGNydGMpOwo+ICAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsK PiBAQCAtNjI2Myw5ICs2MzQ1LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAKPiAgCWk5eHhfcGZpdF9k aXNhYmxlKGludGVsX2NydGMpOwo+ICAKPiAtCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYs IGNydGMsIGVuY29kZXIpCj4gLQkJaWYgKGVuY29kZXItPnBvc3RfZGlzYWJsZSkKPiAtCQkJZW5j b2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIpOwo+ICsJaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNh YmxlKGNydGMsIG9sZF9zdGF0ZSk7Cj4gIAo+ICAJaWYgKCFpbnRlbF9jcnRjX2hhc190eXBlKGlu dGVsX2NydGMtPmNvbmZpZywgSU5URUxfT1VUUFVUX0RTSSkpIHsKPiAgCQlpZiAoSVNfQ0hFUlJZ VklFVyhkZXYpKQo+IEBAIC02Mjc2LDkgKzYzNTYsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gIAkJCWk5 eHhfZGlzYWJsZV9wbGwoaW50ZWxfY3J0Yyk7Cj4gIAl9Cj4gIAo+IC0JZm9yX2VhY2hfZW5jb2Rl cl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKPiAtCQlpZiAoZW5jb2Rlci0+cG9zdF9wbGxf ZGlzYWJsZSkKPiAtCQkJZW5jb2Rlci0+cG9zdF9wbGxfZGlzYWJsZShlbmNvZGVyKTsKPiArCWlu dGVsX2VuY29kZXJzX3Bvc3RfcGxsX2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsKPiAgCj4gIAlp ZiAoIUlTX0dFTjIoZGV2KSkKPiAgCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldl9wcml2LCBwaXBlLCBmYWxzZSk7Cj4gLS0gCj4gMi43LjQKPiAKPiBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK