From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 5/6] drm/i915: Grab modeset locks for GPU rest on pre-ctg Date: Fri, 21 Nov 2014 23:10:31 +0200 Message-ID: <20141121211031.GG10649@intel.com> References: <1416599670-21914-1-git-send-email-ville.syrjala@linux.intel.com> <1416599670-21914-6-git-send-email-ville.syrjala@linux.intel.com> <20141121204921.GD25711@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 3B7B96F70D for ; Fri, 21 Nov 2014 13:10:44 -0800 (PST) Content-Disposition: inline In-Reply-To: <20141121204921.GD25711@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBOb3YgMjEsIDIwMTQgYXQgMDk6NDk6MjFQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIE5vdiAyMSwgMjAxNCBhdCAwOTo1NDoyOVBNICswMjAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IE9uIGdlbjQgYW5kIGVhcmxp ZXIgdGhlIEdQVSByZXNldCBhbHNvIHJlc2V0cyB0aGUgZGlzcGxheSwgc28gd2Ugc2hvdWxkCj4g PiBwcm90ZWN0IGFnYWluc3QgY29uY3VycmVudCBtb2Rlc2V0IG9wZXJhdGlvbnMuIEdyYWIgYWxs IHRoZSBtb2Rlc2V0IGxvY2tzCj4gPiBhcm91bmQgdGhlIGVudGlyZSBHUFUgcmVzZXQgZGFuY2Us IHJlbWViZXJpbmcgZmlyc3QgdGkgZGlzbG9nZGUgYW55Cj4gPiBwZW5kaW5nIHBhZ2UgZmxpcCB0 byBtYWtlIHN1cmUgd2UgZG9uJ3QgZGVhZGxvY2suIEFueSBwYWdlZmxpcCBjb21pbmcKPiA+IGlu IGJldHdlZW4gdGhlc2UgdHdvIHN0ZXBzIHNob3VsZCBmYWlsIGFueXdheSBkdWUgdG8gcmVzZXRf aW5fcHJvZ3Jlc3MsCj4gPiBzbyB0aGlzIHNob3VsZCBiZSBzYWZlLgo+ID4gCj4gPiBUaGlzIGZp eGVzIGEgbG90IG9mIGZhaWxlZCBhc3NlcnRzIGluIHRoZSBtb2Rlc2V0IGNvZGUgd2hlbiB0aGVy ZSdzIGEKPiA+IG1vZGVzZXQgcmFjaW5nIHdpdGggdGhlIHJlc2V0LiBOYXR1cmFsbHkgdGhlIGFz c2VydHMgYXJlbid0IGhhcHB5IHdoZW4KPiA+IHRoZSBleHBlY3RlZCBzdGF0ZSBoYXMgZGlzYXBw ZWFyZWQuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gVHdvIGNvbW1lbnRzIG9uIHRoaXMgb25lLCBvdGhl cndpc2UgbG9va3MgZ29vZCAod2VsbCBkaWRuJ3QgYm90aGVyIHRvCj4gY2hlY2sgdGhlIG5ldyBy ZXNldCByZWdpc3RlciBmcm9iYmluZykuCj4gLURhbmllbAo+IAo+ID4gLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgIHwgMTkgLS0tLS0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICB8ICA1ICstCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgOTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDMgKy0K PiA+ICA0IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+IGluZGV4IDUwNjZmZDEuLjFlOWMxMzYg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiBAQCAtODgwLDI1ICs4ODAsNiBA QCBpbnQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJICovCj4gPiAg CQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPiA1KQo+ID4gIAkJCWludGVsX3Jlc2V0X2d0X3Bv d2Vyc2F2ZShkZXYpOwo+ID4gLQo+ID4gLQo+ID4gLQkJaWYgKElTX0dFTjMoZGV2KSB8fCAoSVNf R0VONChkZXYpICYmICFJU19HNFgoZGV2KSkpIHsKPiA+IC0JCQlpbnRlbF9ydW50aW1lX3BtX2Rp c2FibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gPiAtCQkJaW50ZWxfcnVudGltZV9wbV9lbmFi bGVfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gPiAtCj4gPiAtCQkJaW50ZWxfbW9kZXNldF9pbml0 X2h3KGRldik7Cj4gPiAtCj4gPiAtCQkJc3Bpbl9sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2Nr KTsKPiA+IC0JCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCkKPiA+IC0JCQkJ ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXYpOwo+ID4gLQkJCXNwaW5fdW5sb2Nr X2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiA+IC0KPiA+IC0JCQlkcm1fbW9kZXNldF9sb2Nr X2FsbChkZXYpOwo+ID4gLQkJCWludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoZGV2LCB0cnVl KTsKPiA+IC0JCQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7Cj4gPiAtCj4gPiAtCQkJaW50 ZWxfaHBkX2luaXQoZGV2X3ByaXYpOwo+ID4gLQkJfQo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gPiAgCX0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYwo+ID4gaW5kZXggNTkwODU4MGQuLjg4ODc2NzQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gPiBAQCAtMjQyOCw2ICsyNDI4LDkgQEAgc3RhdGljIHZvaWQgaTkxNV9l cnJvcl93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gIAkJICogc2ltdWxh dGVkIHJlc2V0IHZpYSBkZWJ1Z3MsIHNvIGdldCBhbiBSUE0gcmVmZXJlbmNlLgo+ID4gIAkJICov Cj4gPiAgCQlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4gPiArCj4gPiArCQlpbnRl bF9wcmVwYXJlX3Jlc2V0KGRldik7Cj4gPiArCj4gPiAgCQkvKgo+ID4gIAkJICogQWxsIHN0YXRl IHJlc2V0IF9tdXN0XyBiZSBjb21wbGV0ZWQgYmVmb3JlIHdlIHVwZGF0ZSB0aGUKPiA+ICAJCSAq IHJlc2V0IGNvdW50ZXIsIGZvciBvdGhlcndpc2Ugd2FpdGVycyBtaWdodCBtaXNzIHRoZSByZXNl dAo+ID4gQEAgLTI0MzYsNyArMjQzOSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZXJyb3Jfd29ya19m dW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICAJCSAqLwo+ID4gIAkJcmV0ID0gaTkx NV9yZXNldChkZXYpOwo+ID4gIAo+ID4gLQkJaW50ZWxfZGlzcGxheV9oYW5kbGVfcmVzZXQoZGV2 KTsKPiA+ICsJCWludGVsX2ZpbmlzaF9yZXNldChkZXYpOwo+ID4gIAo+ID4gIAkJaW50ZWxfcnVu dGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ID4gaW5kZXggMzIxODQ1NS4uODMyOWY3YyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMjc2NSwyNSArMjc2NSwxMCBAQCBpbnRlbF9w aXBlX3NldF9iYXNlX2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiAtdm9pZCBpbnRl bF9kaXNwbGF5X2hhbmRsZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gK3N0YXRp YyB2b2lkIGludGVsX2NvbXBsZXRlX3BhZ2VfZmxpcHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gPiAgCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ICAKPiA+IC0JLyoKPiA+ IC0JICogRmxpcHMgaW4gdGhlIHJpbmdzIGhhdmUgYmVlbiBudWtlZCBieSB0aGUgcmVzZXQsCj4g PiAtCSAqIHNvIGNvbXBsZXRlIGFsbCBwZW5kaW5nIGZsaXBzIHNvIHRoYXQgdXNlciBzcGFjZQo+ ID4gLQkgKiB3aWxsIGdldCBpdHMgZXZlbnRzIGFuZCBub3QgZ2V0IHN0dWNrLgo+ID4gLQkgKgo+ ID4gLQkgKiBBbHNvIHVwZGF0ZSB0aGUgYmFzZSBhZGRyZXNzIG9mIGFsbCBwcmltYXJ5Cj4gPiAt CSAqIHBsYW5lcyB0byB0aGUgdGhlIGxhc3QgZmIgdG8gbWFrZSBzdXJlIHdlJ3JlCj4gPiAtCSAq IHNob3dpbmcgdGhlIGNvcnJlY3QgZmIgYWZ0ZXIgYSByZXNldC4KPiA+IC0JICoKPiA+IC0JICog TmVlZCB0byBtYWtlIHR3byBsb29wcyBvdmVyIHRoZSBjcnRjcyBzbyB0aGF0IHdlCj4gPiAtCSAq IGRvbid0IHRyeSB0byBncmFiIGEgY3J0YyBtdXRleCBiZWZvcmUgdGhlCj4gPiAtCSAqIHBlbmRp bmdfZmxpcF9xdWV1ZSByZWFsbHkgZ290IHdva2VuIHVwLgo+ID4gLQkgKi8KPiA+IC0KPiA+ICAJ Zm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIHsKPiA+ICAJCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ICAJCWVudW0gcGxhbmUgcGxhbmUgPSBp bnRlbF9jcnRjLT5wbGFuZTsKPiA+IEBAIC0yNzkxLDYgKzI3NzYsMTIgQEAgdm9pZCBpbnRlbF9k aXNwbGF5X2hhbmRsZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJaW50ZWxf cHJlcGFyZV9wYWdlX2ZsaXAoZGV2LCBwbGFuZSk7Cj4gPiAgCQlpbnRlbF9maW5pc2hfcGFnZV9m bGlwX3BsYW5lKGRldiwgcGxhbmUpOwo+ID4gIAl9Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2 b2lkIGludGVsX3VwZGF0ZV9wcmltYXJ5X3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiA+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gIAo+ID4gIAlmb3JfZWFj aF9jcnRjKGRldiwgY3J0Yykgewo+ID4gIAkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gQEAgLTI4MTAsNiArMjgwMSw3OSBAQCB2b2lkIGlu dGVsX2Rpc3BsYXlfaGFuZGxlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCX0K PiA+ICB9Cj4gPiAgCj4gPiArdm9pZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPiArewo+ID4gKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBE UklWRVJfTU9ERVNFVCkpCj4gPiArCQlyZXR1cm47Cj4gCj4gdW1zIGp1c3Qgb2ZmaWNpYWxseSBk aWVkIHBsZWFzZSByZW1vdmUuIFNhbWUgZm9yIHRoZSBvbmUgYmVsb3cuCgpva2V5IGRva2V5Cgo+ IAo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBGbGlwcyBpbiB0aGUgcmluZ3Mgd2lsbCBiZSBudWtl ZCBieSB0aGUgcmVzZXQsCj4gPiArCSAqIHNvIGNvbXBsZXRlIGFsbCBwZW5kaW5nIGZsaXBzIHNv IHRoYXQgdXNlciBzcGFjZQo+ID4gKwkgKiB3aWxsIGdldCBpdHMgZXZlbnRzIGFuZCBub3QgZ2V0 IHN0dWNrLgo+ID4gKwkgKgo+ID4gKwkgKiBPbGQgcGxhdGZvcm1zIHdpbGwgYWxzbyByZXNldCB0 aGUgZGlzcGxheSwgc28gd2UKPiA+ICsJICogbmVlZCB0byBncmFiIHRoZSBtb2Rlc2V0IGxvY2tz IGFyb3VuZCB0aGUgcmVzZXQuCj4gPiArCSAqIEJ1dCBpbiBvcmRlciB0byBkbyB0aGF0IHdlIG11 c3QgbGV0IGFueSBwZW5kaW5nCj4gPiArCSAqIHBhZ2UgZmxpcCB3YWl0IGNvbXBsZXRlIHNpbmNl IHRoZSB3YWl0ZXJzIG1heSBiZQo+ID4gKwkgKiBob2xkaW5nIHNvbWUgbW9kZXNldCBsb2Nrcy4K PiA+ICsJICovCj4gPiArCWludGVsX2NvbXBsZXRlX3BhZ2VfZmxpcHMoZGV2KTsKPiAKPiBJcyB0 aGlzIHJlYWxseSByZXF1aXJlZD8gV2UgY29tcGxldGUgdGhlbSBhZnRlcndhcmRzLCBhbmQgYWxs IHRoZSBwYWdlZmxpcAo+IHdhaXRlcnMgSSd2ZSBmb3VuZCBkbyBjaGVjayBmb3IgZ3B1IGhhbmdz IGFuZCBhYm9ydCB0aGUgcGFnZWZsaXAgd2FpdC4KPiBUaGF0J3MgYWxyZWFkeSByZXF1aXJlZCBz aW5jZSB0aGUgbW1pbyBmbGlwIG1pZ2h0IGdvIG1pc3NpbmcsIGFuZCB0aHVzIGZhcgo+IHdlJ3Zl IG9ubHkgY29tcGxldGVkIHRoZSBmbGlwIF9hZnRlcl8gaGF2aW5nIHJlc2V0IHRoZSBncHUgYW5k IGdlbSBzdGF0ZQo+IChhbmQgZ3JhYmJlZCBkZXYtPnN0cnVjdF9tdXRleCkuCgpIbW0uIFllYWgs IGp1c3Qgd2FraW5nIHRoZW0gdXAgb3VnaHQgdG8gYmUgc3VmZmljaWVudCB0byBkaXNsb2RnZQp0 aGluZ3MuIEFuZCB3ZSBhbHJlYWR5IGRvIHRoYXQgYmVmb3JlIHNjaGVkdWxpbmcgdGhlIGVycm9y IHdvcmssIGJ1dAphZnRlciBzZXR0aW5nIHRoZSByZXNldF9pbl9wcm9ncmVzcyBmbGFnLCB3aGlj aCBpcyB2ZXJ5IG11Y2ggY3JpdGljYWwKaGVyZS4gU28gSSBndWVzcyBJIGNvdWxkIGp1c3QgbW92 ZSB0aGUgY29tcGxldGUgcGVuZGluZyBmbGlwcyBiaXQgdG8KaW50ZWxfZmluaXNoX3Jlc2V0KCku CgpCdXQgdGhlbiBJIGRvIHdvbmRlciBhIGJpdCB3aHkgSSBvcmlnaW5hbGx5IG5lZWRlZCB0byBh ZGQgdGhlIHVubG9ja2VkCnBhZ2UgZmxpcCBjb21wbGV0ZSBiZWZvcmUgdGhlIGxvY2tlZCAudXBk YXRlX3BsYW5lKCkgY2FsbC4gRGlkIHdlIG1pc3MKYSB3YWtldXAgc29tZXdoZXJlIG9yIGRpZCB3 ZSBub3QgYWJvcnQgcGVuZGluZyBmbGlwIHdhaXRzIG9uIHJlc2V0PwoKPiAKPiA+ICsKPiA+ICsJ Lyogbm8gcmVzZXQgc3VwcG9ydCBmb3IgZ2VuMiAqLwo+ID4gKwlpZiAoSVNfR0VOMihkZXYpKQo+ ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwkvKiByZXNldCBkb2Vzbid0IHRvdWNoIHRoZSBkaXNw bGF5ICovCj4gPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA1IHx8IElTX0c0WChkZXYp KQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwo+ ID4gK30KPiA+ICsKPiA+ICt2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwo+ID4gKwo+ID4gKwlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2 LCBEUklWRVJfTU9ERVNFVCkpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCS8qIG5vIHJlc2V0 IHN1cHBvcnQgZm9yIGdlbjIgKi8KPiA+ICsJaWYgKElTX0dFTjIoZGV2KSkKPiA+ICsJCXJldHVy bjsKPiA+ICsKPiA+ICsJLyogcmVzZXQgZG9lc24ndCB0b3VjaCB0aGUgZGlzcGxheSAqLwo+ID4g KwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSB8fCBJU19HNFgoZGV2KSkgewo+ID4gKwkJ LyoKPiA+ICsJCSAqIEZsaXBzIGluIHRoZSByaW5ncyBoYXZlIGJlZW4gbnVrZWQgYnkgdGhlIHJl c2V0LAo+ID4gKwkJICogc28gdXBkYXRlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgYWxsIHByaW1hcnkK PiA+ICsJCSAqIHBsYW5lcyB0byB0aGUgdGhlIGxhc3QgZmIgdG8gbWFrZSBzdXJlIHdlJ3JlCj4g PiArCQkgKiBzaG93aW5nIHRoZSBjb3JyZWN0IGZiIGFmdGVyIGEgcmVzZXQuCj4gPiArCQkgKi8K PiA+ICsJCWludGVsX3VwZGF0ZV9wcmltYXJ5X3BsYW5lcyhkZXYpOwo+ID4gKwkJcmV0dXJuOwo+ ID4gKwl9Cj4gPiArCj4gPiArCS8qCj4gPiArCSAqIFRoZSBkaXNwbGF5IGhhcyBiZWVuIHJlc2V0 IGFzIHdlbGwsCj4gPiArCSAqIHNvIG5lZWQgYSBmdWxsIHJlLWluaXRpYWxpemF0aW9uLgo+ID4g KwkgKi8KPiA+ICsJaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoZGV2X3ByaXYp Owo+ID4gKwlpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKPiA+ ICsKPiA+ICsJaW50ZWxfbW9kZXNldF9pbml0X2h3KGRldik7Cj4gPiArCj4gPiArCXNwaW5fbG9j a19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gPiArCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5o cGRfaXJxX3NldHVwKQo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXYp Owo+ID4gKwlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gPiArCj4gPiAr CWludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoZGV2LCB0cnVlKTsKPiA+ICsKPiA+ICsJaW50 ZWxfaHBkX2luaXQoZGV2X3ByaXYpOwo+ID4gKwo+ID4gKwlkcm1fbW9kZXNldF91bmxvY2tfYWxs KGRldik7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQKPiA+ICBpbnRlbF9maW5pc2hfZmIo c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiKQo+ID4gIHsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiBpbmRleCBmMGE0NmVjLi4yNWZkYmIxIDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtOTU4LDcgKzk1OCw4IEBAIHVuc2lnbmVkIGxvbmcgaW50 ZWxfZ2VuNF9jb21wdXRlX3BhZ2Vfb2Zmc2V0KGludCAqeCwgaW50ICp5LAo+ID4gIAkJCQkJICAg ICB1bnNpZ25lZCBpbnQgdGlsaW5nX21vZGUsCj4gPiAgCQkJCQkgICAgIHVuc2lnbmVkIGludCBi cHAsCj4gPiAgCQkJCQkgICAgIHVuc2lnbmVkIGludCBwaXRjaCk7Cj4gPiAtdm9pZCBpbnRlbF9k aXNwbGF5X2hhbmRsZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ICt2b2lkIGlu dGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiArdm9pZCBpbnRl bF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAgdm9pZCBoc3dfZW5h YmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gIHZvaWQgaHN3 X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAgdm9p ZCBpbnRlbF9kcF9nZXRfbV9uKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4gLS0gCj4gPiAy LjAuNAo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KPiArNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9n LmZmd2xsLmNoCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=