From mboxrd@z Thu Jan 1 00:00:00 1970 From: Animesh Manna Subject: Re: [PATCH] drm/i915/skl: replace csr_mutex by completion in csr firmware loading Date: Thu, 21 May 2015 22:35:07 +0530 Message-ID: <555E1043.4010501@intel.com> References: <1432203592-11503-1-git-send-email-animesh.manna@intel.com> <20150521121105.GY15256@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 844287A0F3 for ; Thu, 21 May 2015 10:05:10 -0700 (PDT) In-Reply-To: <20150521121105.GY15256@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 CgpPbiA1LzIxLzIwMTUgNTo0MSBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIE1h eSAyMSwgMjAxNSBhdCAwMzo0OTo1MlBNICswNTMwLCBBbmltZXNoIE1hbm5hIHdyb3RlOgo+PiBC ZWZvcmUgZW5hYmxpbmcgZGM1L2RjNiwgdXNlZCB3YWl0IGZvciBjb21wbGV0aW9uIGluc3RlYWQg b2YgYnVzeSB3YWl0aW5nLgo+Pgo+PiB2MToKPj4gLSBCYXNlZCBvbiByZXZpZXcgY29tbWVudCBm cm9tIERhbmllbCByZXBsYWNlZCBtdXRleCBhbmQgcmVsYXRlZAo+PiBpbXBsZW1lbnRhdGlvbiB3 aXRoIGNvbXBsZXRpb24uIEluIGN1cnJlbnQgcGF0Y2ggbm90IHVzZWQgcG93ZXIKPj4gZG9tYWlu IGxvY2ssIGRvbid0IHdhbnQgdG8gYmxvY2sgcnVudGltZSBwb3dlciBtYW5hZ2VtZW50IGlmIGRt Ywo+PiBmaXJtd2FyZSBmYWlsZWQgdG8gbG9hZC4gV2lsbCBhbmFseXppbmcgZnVydGhlciBhbmQg cG9zc2libHkgc2VuZAo+PiBhcyBhIGluY3JlbWVudGFsIHBhdGNoLgo+PiAtIEJhc2VkIG9uIHJl dmlldyBjb21tZW50IGZyb20gRGFtaWVuLCB3YXJuaW5nIGZvciBmaXJtd2FyZSBsb2FkaW5nCj4+ IGZhaWx1cmUgaXMgcmVtb3ZlZC4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQW5pbWVzaCBNYW5uYSA8 YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Cj4gU29ycnkgaWYgdGhpcyBjcm9zcyB3aXRoIG15IGNv bW1lbnRzLCBidXQgdXBvbiBmdXJ0aGVyIGRpZ2dpbmcgaW50byB0aGlzCj4gY29kZSB3ZSBkb24n dCBldmVuIG5lZWQgYSBjb21wbGV0aW9uIGF0IGFsbC4gQXMgbG9uZyBhcyB3ZSBwcmV2ZW50IHRo ZQo+IHBvd2VyIHdlbGwgZnJvbSBnZXR0aW5nIGRpc2FibGVkIGJ5IGhvbGRpbmcgYSByZWZlcmVu Y2UgZm9yIGl0IGJlZm9yZSB3ZQo+IGxhdW5jaCB0aGUgZmlybXdhcmUgbG9hZGVyIGl0J2xsIGFs bCBiZSBmaW5lLiBBbmQgdGhlIGFzeW5jIHdvcmsgY2FuIHRoZW4KPiBqdXN0IGRyb3AgdGhhdCBy ZWZlcmVuY2Ugd2hlbiBldmVyeXRoaW5nIGlzIHNldCB1cC4KPgo+IFllcyB0aGlzIG1lYW5zIHJ1 bnRpbWUgRDMgcmVxdWlyZXMgdGhlIGZpcm13YXJlIHRvIGJlIGxvYWRlZCwgYnV0IHRoYXQncwo+ IGltbyBub3QgYSBwcm9ibGVtLgo+Cj4gQWxzbyBkb2luZyBpdCB0aGlzIHdheSBpcyBtb3JlIGlu LWxpbmUgd2l0aCBob3cgd2UgZG8gYWxsIHRoZSBvdGhlciBhc3luYwo+IHNldHVwLiBCdXQgdGhl cmUncyBhbm90aGVyIHNlcmlvdXMgaXNzdWUgd2l0aCB0aGlzIGRlc2lnbiBoZXJlLCBzZWUgYmVs b3cuCj4KT2ssIHByZXZpb3VzbHkgSSB3YXMgdGhpbmtpbmcgbW9yZSBvbiBob3cgdG8gcGFzcyB0 aGUgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMKYmVmb3JlIGVuYWJsaW5nIGxvdyBwb3dlciBzdGF0 ZXMgKGRjNS9kYzYpLiBOb3cgd2hpbGUgdGhpbmtpbmcgYWJvdXQgcG93ZXIKbWFuYWdlbWVudCBm cmFtZXdvcmsgSSBoYXZlIGEgZnVuZGFtZW50YWwgZG91YnQgLSBpZiBnb3QgcmVxdWVzdCB0byBk aXNhYmxlIGEgcG93ZXItd2VsbAphbmQgZmlybXdhcmUgbG9hZGluZyBmYWlsZWQgZm9yIHNvbWUg cmVhc29uLCBzaG91bGQgd2UgZGlzYWJsZSB0aGUgcG93ZXItd2VsbChvcHRpb24xKSBvcgprZWVw IGl0IGVuYWJsZShvcHRpb24yKS4gQm90aCB0aGUgY2FzZXMgd2lsbCBub3QgdHJpZ2dlciBmb3Ig ZGM1L2RjNi4KCkkgdW5kZXJzdG9vZCBmcm9tIHlvdXIgY29tbWVudCB0byBmb2xsb3cgb3B0aW9u MiwgSSB3aWxsIGNoYW5nZSB0aGUgZGVzaWduIGFjY29yZGluZ2x5CmFzIHRoZSBjdXJyZW50IGlt cGxlbWVudGF0aW9uIGJhc2VkIG9uIG9wdGlvbjEuCgpUbyBpbXBsZW1lbnQgb3B0aW9uMiwgSSBj YW4gc2VlIHRoZXJlIGlzIG9uZSBtdXRleCBwcmVzZW50IGZvciBhIHBvd2VyIGRvbWFpbiwgZG8g bm90IGhhdmUKbXV0ZXggZm9yIGVhY2ggcG93ZXItd2VsbCwgd2hpY2ggbmVlZCB0byBiZSBhZGRl ZCBhbmQgY2FuIGJlIHVzZWQgYXMgeW91IG1lbnRpb25lZCBhYm92ZS4KCklmIHdlIHdhbnQgdG8g Zm9sbG93IG9wdGlvbjEsIEkgY2FuIHRoaW5rIGEgYmV0dGVyIHdheSBvZiBtYW5hZ2luZyBmaXJt d2FyZSBsb2FkaW5nLgpBcyBmaXJtd2FyZSBpcyByZXF1aXJlZCB3aGVuIGRpc3BsYXkgZW5naW5l IGdvZXMgdG8gbG93IHBvd2VyIHN0YXRlLCBzbyB3ZSBjYW4gb25seSBwYXJzZQp0aGUgcGFja2Fn ZWQgZmlybXdhcmUgZHVyaW5nIGRyaXZlciBpbml0aWFsaXphdGlvbi4gRmlybXdhcmUgbG9hZGlu ZyAod3JpdGluZyB0byByZWdpc3RlcnMpCmNhbiBiZSBkb25lIGluIHNrbF9lbmFibGVfZGM2L2dl bjlfZW5hYmxlX2RjNSBmdW5jdGlvbiBpdHNlbGYgYW5kIHRoZW4gdHJpZ2dlciBmb3IgZGM1L2Rj Ni4KClBsYW5uaW5nIHRvIGltcGxlbWVudCBvcHRpb24yIGFuZCB3aWxsIHNlbmQgZm9yIHJldmll dywgcGxlYXNlIGNvcnJlY3QgbWUgaWYgSSB1bmRlcnN0b29kIHdyb25nbHkuCgo+PiAtLS0KPj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgfCAgMSAtCj4+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgIDIgKy0KPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAxMiArKy0tLS0tCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMgICAgICAgIHwgNjMgKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg ICAgIHwgIDMgLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg fCAxNiArKystLS0tLS0KPj4gICA2IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDg1 IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPj4gaW5kZXggNzhlNmFl OC4uMWY1Yzg2YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEu Ywo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4+IEBAIC04MTYsNyAr ODE2LDYgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgbG9uZyBmbGFncykKPj4gICAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5tbWlvX2Zs aXBfbG9jayk7Cj4+ICAgCW11dGV4X2luaXQoJmRldl9wcml2LT5kcGlvX2xvY2spOwo+PiAgIAlt dXRleF9pbml0KCZkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX2xvY2spOwo+PiAtCW11dGV4X2lu aXQoJmRldl9wcml2LT5jc3IuY3NyX2xvY2spOwo+PiAgIAo+PiAgIAlpbnRlbF9wbV9zZXR1cChk ZXYpOwo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gaW5kZXggNmJiNmM0Ny4uYzEw MjI2OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IEBAIC0xMDM0LDcgKzEwMzQs NyBAQCBzdGF0aWMgaW50IHNrbF9zdXNwZW5kX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPj4gICAJICogVGhpcyBpcyB0byBlbnN1cmUgdGhhdCBDU1IgaXNuJ3Qg aWRlbnRpZmllZCBhcyBsb2FkZWQgYmVmb3JlCj4+ICAgCSAqIENTUi1sb2FkaW5nIHByb2dyYW0g aXMgY2FsbGVkIGR1cmluZyBydW50aW1lLXJlc3VtZS4KPj4gICAJICovCj4+IC0JaW50ZWxfY3Ny X2xvYWRfc3RhdHVzX3NldChkZXZfcHJpdiwgRldfVU5JTklUSUFMSVpFRCk7Cj4+ICsJcmVpbml0 X2NvbXBsZXRpb24oJmRldl9wcml2LT5jc3IuaXNfbG9hZGVkKTsKPj4gICAKPj4gICAJcmV0dXJu IDA7Cj4+ICAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggNDMwMTFkNy4uNDIz YWZhOSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC01MCw2ICs1MCw3IEBA Cj4+ICAgI2luY2x1ZGUgPGxpbnV4L2ludGVsLWlvbW11Lmg+Cj4+ICAgI2luY2x1ZGUgPGxpbnV4 L2tyZWYuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+Cj4+ICsjaW5jbHVkZSA8bGlu dXgvY29tcGxldGlvbi5oPgo+PiAgIAo+PiAgIC8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKPj4g ICAgKi8KPj4gQEAgLTY2OSwyMyArNjcwLDE0IEBAIHN0cnVjdCBpbnRlbF91bmNvcmUgewo+PiAg ICNkZWZpbmUgZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbl9fLCBkZXZfcHJpdl9fLCBpX18pIFwK Pj4gICAJZm9yX2VhY2hfZndfZG9tYWluX21hc2soZG9tYWluX18sIEZPUkNFV0FLRV9BTEwsIGRl dl9wcml2X18sIGlfXykKPj4gICAKPj4gLWVudW0gY3NyX3N0YXRlIHsKPj4gLQlGV19VTklOSVRJ QUxJWkVEID0gMCwKPj4gLQlGV19MT0FERUQsCj4+IC0JRldfRkFJTEVECj4+IC19Owo+PiAtCj4+ ICAgc3RydWN0IGludGVsX2NzciB7Cj4+IC0JLyogQ1NSIHByb3RlY3Rpb24sIHVzZWQgdG8gcHJv dGVjdCBmaXJtd2FyZSBsb2FkaW5nIHN0YXR1czogY3NyX3N0YXRlICovCj4+IC0Jc3RydWN0IG11 dGV4IGNzcl9sb2NrOwo+PiAtCj4+ICsJc3RydWN0IGNvbXBsZXRpb24gaXNfbG9hZGVkOwo+PiAg IAljb25zdCBjaGFyICpmd19wYXRoOwo+PiAgIAlfX2JlMzIgKmRtY19wYXlsb2FkOwo+PiAgIAl1 aW50MzJfdCBkbWNfZndfc2l6ZTsKPj4gICAJdWludDMyX3QgbW1pb19jb3VudDsKPj4gICAJdWlu dDMyX3QgbW1pb2FkZHJbOF07Cj4+ICAgCXVpbnQzMl90IG1taW9kYXRhWzhdOwo+PiAtCWVudW0g Y3NyX3N0YXRlIHN0YXRlOwo+PiAgIH07Cj4+ICAgCj4+ICAgI2RlZmluZSBERVZfSU5GT19GT1Jf RUFDSF9GTEFHKGZ1bmMsIHNlcCkgXAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY3NyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+PiBpbmRl eCBkMWRhMmRiLi5mZWMyYmM1IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jc3IuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+PiBA QCAtMzIsMTMgKzMyLDYgQEAKPj4gICAgKiBvbndhcmRzIHRvIGRyaXZlIG5ld2x5IGFkZGVkIERN QyAoRGlzcGxheSBtaWNyb2NvbnRyb2xsZXIpIGluIGRpc3BsYXkKPj4gICAgKiBlbmdpbmUgdG8g c2F2ZSBhbmQgcmVzdG9yZSB0aGUgc3RhdGUgb2YgZGlzcGxheSBlbmdpbmUgd2hlbiBpdCBlbnRl ciBpbnRvCj4+ICAgICogbG93LXBvd2VyIHN0YXRlIGFuZCBjb21lcyBiYWNrIHRvIG5vcm1hbC4K Pj4gLSAqCj4+IC0gKiBGaXJtd2FyZSBsb2FkaW5nIHN0YXR1cyB3aWxsIGJlIG9uZSBvZiB0aGUg YmVsb3cgc3RhdGVzOiBGV19VTklOSVRJQUxJWkVELAo+PiAtICogRldfTE9BREVELCBGV19GQUlM RUQuCj4+IC0gKgo+PiAtICogT25jZSB0aGUgZmlybXdhcmUgaXMgd3JpdHRlbiBpbnRvIHRoZSBy ZWdpc3RlcnMgc3RhdHVzIHdpbGwgYmUgbW92ZWQgZnJvbQo+PiAtICogRldfVU5JTklUSUFMSVpF RCB0byBGV19MT0FERUQgYW5kIGZvciBhbnkgZXJyb25lb3VzIGNvbmRpdGlvbiBzdGF0dXMgd2ls bAo+PiAtICogYmUgbW92ZWQgdG8gRldfRkFJTEVELgo+PiAgICAqLwo+PiAgIAo+PiAgICNkZWZp bmUgSTkxNV9DU1JfU0tMICJpOTE1L3NrbF9kbWNfdmVyNC5iaW4iCj4+IEBAIC0yMDAsNDAgKzE5 Myw2IEBAIHN0YXRpYyBjaGFyIGludGVsX2dldF9zdWJzdGVwcGluZyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+PiAgIH0KPj4gICAKPj4gICAvKioKPj4gLSAqIGludGVsX2Nzcl9sb2FkX3N0YXR1 c19nZXQoKSAtIHRvIGdldCBmaXJtd2FyZSBsb2FkaW5nIHN0YXR1cy4KPj4gLSAqIEBkZXZfcHJp djogaTkxNSBkZXZpY2UuCj4+IC0gKgo+PiAtICogVGhpcyBmdW5jdGlvbiBoZWxwcyB0byBnZXQg dGhlIGZpcm13YXJlIGxvYWRpbmcgc3RhdHVzLgo+PiAtICoKPj4gLSAqIFJldHVybjogRmlybXdh cmUgbG9hZGluZyBzdGF0dXMuCj4+IC0gKi8KPj4gLWVudW0gY3NyX3N0YXRlIGludGVsX2Nzcl9s b2FkX3N0YXR1c19nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAtewo+ PiAtCWVudW0gY3NyX3N0YXRlIHN0YXRlOwo+PiAtCj4+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYt PmNzci5jc3JfbG9jayk7Cj4+IC0Jc3RhdGUgPSBkZXZfcHJpdi0+Y3NyLnN0YXRlOwo+PiAtCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPmNzci5jc3JfbG9jayk7Cj4+IC0KPj4gLQlyZXR1cm4gc3Rh dGU7Cj4+IC19Cj4+IC0KPj4gLS8qKgo+PiAtICogaW50ZWxfY3NyX2xvYWRfc3RhdHVzX3NldCgp IC0gaGVscCB0byBzZXQgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMuCj4+IC0gKiBAZGV2X3ByaXY6 IGk5MTUgZGV2aWNlLgo+PiAtICogQHN0YXRlOiBlbnVtZXJhdGlvbiBvZiBmaXJtd2FyZSBsb2Fk aW5nIHN0YXR1cy4KPj4gLSAqCj4+IC0gKiBTZXQgdGhlIGZpcm13YXJlIGxvYWRpbmcgc3RhdHVz Lgo+PiAtICovCj4+IC12b2lkIGludGVsX2Nzcl9sb2FkX3N0YXR1c19zZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiAtCQkJZW51bSBjc3Jfc3RhdGUgc3RhdGUpCj4+IC17 Cj4+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmNzci5jc3JfbG9jayk7Cj4+IC0JZGV2X3ByaXYt PmNzci5zdGF0ZSA9IHN0YXRlOwo+PiAtCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmNzci5jc3Jf bG9jayk7Cj4+IC19Cj4+IC0KPj4gLS8qKgo+PiAgICAqIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0o KSAtIHdyaXRlIHRoZSBmaXJtd2FyZSBmcm9tIG1lbW9yeSB0byByZWdpc3Rlci4KPj4gICAgKiBA ZGV2OiBkcm0gZGV2aWNlLgo+PiAgICAqCj4+IEBAIC0yNTIsNyArMjExLDYgQEAgdm9pZCBpbnRl bF9jc3JfbG9hZF9wcm9ncmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQlyZXR1cm47 Cj4+ICAgCX0KPj4gICAKPj4gLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+Y3NyLmNzcl9sb2NrKTsK Pj4gICAJZndfc2l6ZSA9IGRldl9wcml2LT5jc3IuZG1jX2Z3X3NpemU7Cj4+ICAgCWZvciAoaSA9 IDA7IGkgPCBmd19zaXplOyBpKyspCj4+ICAgCQlJOTE1X1dSSVRFKENTUl9QUk9HUkFNX0JBU0Ug KyBpICogNCwKPj4gQEAgLTI2Miw5ICsyMjAsNyBAQCB2b2lkIGludGVsX2Nzcl9sb2FkX3Byb2dy YW0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gICAJCUk5MTVfV1JJVEUoZGV2X3ByaXYtPmNz ci5tbWlvYWRkcltpXSwKPj4gICAJCQlkZXZfcHJpdi0+Y3NyLm1taW9kYXRhW2ldKTsKPj4gICAJ fQo+PiAtCj4+IC0JZGV2X3ByaXYtPmNzci5zdGF0ZSA9IEZXX0xPQURFRDsKPj4gLQltdXRleF91 bmxvY2soJmRldl9wcml2LT5jc3IuY3NyX2xvY2spOwo+PiArCWNvbXBsZXRlKCZkZXZfcHJpdi0+ Y3NyLmlzX2xvYWRlZCk7Cj4+ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyB2b2lkIGZpbmlzaF9jc3Jf bG9hZChjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3LCB2b2lkICpjb250ZXh0KQo+PiBAQCAtMjgw LDcgKzIzNiw2IEBAIHN0YXRpYyB2b2lkIGZpbmlzaF9jc3JfbG9hZChjb25zdCBzdHJ1Y3QgZmly bXdhcmUgKmZ3LCB2b2lkICpjb250ZXh0KQo+PiAgIAl1aW50MzJfdCBkbWNfb2Zmc2V0ID0gQ1NS X0RFRkFVTFRfRldfT0ZGU0VULCByZWFkY291bnQgPSAwLCBuYnl0ZXM7Cj4+ICAgCXVpbnQzMl90 IGk7Cj4+ICAgCV9fYmUzMiAqZG1jX3BheWxvYWQ7Cj4+IC0JYm9vbCBmd19sb2FkZWQgPSBmYWxz ZTsKPj4gICAKPj4gICAJaWYgKCFmdykgewo+PiAgIAkJaTkxNV9maXJtd2FyZV9sb2FkX2Vycm9y X3ByaW50KGNzci0+ZndfcGF0aCwgMCk7Cj4+IEBAIC0zODcsMTQgKzM0Miw5IEBAIHN0YXRpYyB2 b2lkIGZpbmlzaF9jc3JfbG9hZChjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3LCB2b2lkICpjb250 ZXh0KQo+PiAgIAo+PiAgIAkvKiBsb2FkIGNzciBwcm9ncmFtIGR1cmluZyBzeXN0ZW0gYm9vdCwg YXMgbmVlZGVkIGZvciBEQyBzdGF0ZXMgKi8KPj4gICAJaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShk ZXYpOwo+PiAtCWZ3X2xvYWRlZCA9IHRydWU7Cj4+ICAgCj4+ICAgb3V0Ogo+PiAtCWlmIChmd19s b2FkZWQpCj4+IC0JCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPj4gLQllbHNlCj4+ IC0JCWludGVsX2Nzcl9sb2FkX3N0YXR1c19zZXQoZGV2X3ByaXYsIEZXX0ZBSUxFRCk7Cj4+IC0K Pj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4+ICAgCXJlbGVhc2VfZmlybXdh cmUoZncpOwo+PiAgIH0KPj4gICAKPj4gQEAgLTQxOCw3ICszNjgsNiBAQCB2b2lkIGludGVsX2Nz cl91Y29kZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQljc3ItPmZ3X3BhdGgg PSBJOTE1X0NTUl9TS0w7Cj4+ICAgCWVsc2Ugewo+PiAgIAkJRFJNX0VSUk9SKCJVbmV4cGVjdGVk OiBubyBrbm93biBDU1IgZmlybXdhcmUgZm9yIHBsYXRmb3JtXG4iKTsKPj4gLQkJaW50ZWxfY3Ny X2xvYWRfc3RhdHVzX3NldChkZXZfcHJpdiwgRldfRkFJTEVEKTsKPj4gICAJCXJldHVybjsKPj4g ICAJfQo+PiAgIAo+PiBAQCAtNDI4LDE1ICszNzcsMTUgQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAkgKi8KPj4gICAJaW50ZWxfcnVudGlt ZV9wbV9nZXQoZGV2X3ByaXYpOwo+PiAgIAo+PiArCWluaXRfY29tcGxldGlvbigmY3NyLT5pc19s b2FkZWQpOwo+PiArCj4+ICAgCS8qIENTUiBzdXBwb3J0ZWQgZm9yIHBsYXRmb3JtLCBsb2FkIGZp cm13YXJlICovCj4+ICAgCXJldCA9IHJlcXVlc3RfZmlybXdhcmVfbm93YWl0KFRISVNfTU9EVUxF LCB0cnVlLCBjc3ItPmZ3X3BhdGgsCj4+ICAgCQkJCSZkZXZfcHJpdi0+ZGV2LT5wZGV2LT5kZXYs Cj4+ICAgCQkJCUdGUF9LRVJORUwsIGRldl9wcml2LAo+PiAgIAkJCQlmaW5pc2hfY3NyX2xvYWQp Owo+PiAtCWlmIChyZXQpIHsKPj4gKwlpZiAocmV0KQo+PiAgIAkJaTkxNV9maXJtd2FyZV9sb2Fk X2Vycm9yX3ByaW50KGNzci0+ZndfcGF0aCwgcmV0KTsKPj4gLQkJaW50ZWxfY3NyX2xvYWRfc3Rh dHVzX3NldChkZXZfcHJpdiwgRldfRkFJTEVEKTsKPj4gLQl9Cj4+ICAgfQo+PiAgIAo+PiAgIC8q Kgo+PiBAQCAtNDUzLDEzICs0MDIsMTEgQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAlpZiAoIUhBU19DU1IoZGV2KSkKPj4gICAJCXJldHVy bjsKPj4gICAKPj4gLQlpbnRlbF9jc3JfbG9hZF9zdGF0dXNfc2V0KGRldl9wcml2LCBGV19GQUlM RUQpOwo+PiAgIAlrZnJlZShkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkKTsKPj4gICB9Cj4+ICAg Cj4+ICAgdm9pZCBhc3NlcnRfY3NyX2xvYWRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4+ICAgewo+PiAtCVdBUk4oKGludGVsX2Nzcl9sb2FkX3N0YXR1c19nZXQoZGV2X3By aXYpICE9IEZXX0xPQURFRCksICJDU1IgaXMgbm90IGxvYWRlZC5cbiIpOwo+PiAgIAlXQVJOKCFJ OTE1X1JFQUQoQ1NSX1BST0dSQU1fQkFTRSksCj4+ICAgCQkJCSJDU1IgcHJvZ3JhbSBzdG9yYWdl IHN0YXJ0IGlzIE5VTExcbiIpOwo+PiAgIAlXQVJOKCFJOTE1X1JFQUQoQ1NSX1NTUF9CQVNFKSwg IkNTUiBTU1AgQmFzZSBOb3QgZmluZVxuIik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+ IGluZGV4IGVhMjBlZGIuLmUwMjJjOTggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4+IEBAIC0xMTU1LDkgKzExNTUsNiBAQCB1MzIgc2tsX3BsYW5lX2N0bF9yb3RhdGlvbih1bnNp Z25lZCBpbnQgcm90YXRpb24pOwo+PiAgIAo+PiAgIC8qIGludGVsX2Nzci5jICovCj4+ICAgdm9p ZCBpbnRlbF9jc3JfdWNvZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4gLWVudW0g Y3NyX3N0YXRlIGludGVsX2Nzcl9sb2FkX3N0YXR1c19nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPj4gLXZvaWQgaW50ZWxfY3NyX2xvYWRfc3RhdHVzX3NldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IC0JCQkJCWVudW0gY3NyX3N0YXRlIHN0YXRl KTsKPj4gICB2b2lkIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4+ICAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPj4gICB2b2lkIGFzc2VydF9jc3JfbG9hZGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPj4gaW5k ZXggYjM5M2RiNy4uNWE4MzBkMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcnVudGltZV9wbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYwo+PiBAQCAtNTI1LDcgKzUyNSw2IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5f ZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgIAlpZiAo ZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnMuaW5pdGlhbGl6aW5nKQo+PiAgIAkJcmV0dXJuOwo+PiAg IAo+PiAtCWFzc2VydF9jc3JfbG9hZGVkKGRldl9wcml2KTsKPj4gICAJV0FSTighKEk5MTVfUkVB RChEQ19TVEFURV9FTikgJiBEQ19TVEFURV9FTl9VUFRPX0RDNiksCj4+ICAgCQkiREM2IGFscmVh ZHkgcHJvZ3JhbW1lZCB0byBiZSBkaXNhYmxlZC5cbiIpOwo+PiAgIH0KPj4gQEAgLTY0MiwyMSAr NjQxLDE0IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgCj4+ICAgCQkJaWYgKChHRU45X0VOQUJMRV9EQzUoZGV2 KSB8fCBTS0xfRU5BQkxFX0RDNihkZXYpKSAmJgo+PiAgIAkJCQlwb3dlcl93ZWxsLT5kYXRhID09 IFNLTF9ESVNQX1BXXzIpIHsKPj4gLQkJCQllbnVtIGNzcl9zdGF0ZSBzdGF0ZTsKPj4gLQkJCQkv KiBUT0RPOiB3YWl0IGZvciBhIGNvbXBsZXRpb24gZXZlbnQgb3IKPj4gLQkJCQkgKiBzaW1pbGFy IGhlcmUgaW5zdGVhZCBvZiBidXN5Cj4+IC0JCQkJICogd2FpdGluZyB1c2luZyB3YWl0X2ZvciBm dW5jdGlvbi4KPj4gLQkJCQkgKi8KPj4gLQkJCQl3YWl0X2Zvcigoc3RhdGUgPSBpbnRlbF9jc3Jf bG9hZF9zdGF0dXNfZ2V0KGRldl9wcml2KSkgIT0KPj4gLQkJCQkJCUZXX1VOSU5JVElBTElaRUQs IDEwMDApOwo+PiAtCQkJCWlmIChzdGF0ZSAhPSBGV19MT0FERUQpCj4+IC0JCQkJCURSTV9FUlJP UigiQ1NSIGZpcm13YXJlIG5vdCByZWFkeSAoJWQpXG4iLAo+PiAtCQkJCQkJCXN0YXRlKTsKPj4g LQkJCQllbHNlCj4+ICsJCQkJaWYgKHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgKPj4gKwkJ CQkJJmRldl9wcml2LT5jc3IuaXNfbG9hZGVkLCAxMDApKSB7Cj4gVGhlIHByb2JsZW0gaXMgd2l0 aCB0aGlzIGRlc2lnbiB0aGF0IHRoaXMgd2FpdCBoZXJlIGlzbid0IGFsbG93ZWQgdG8gZXZlcgo+ IHRpbWUgb3V0LCBzaW5jZSBpZiBpdCBkb2VzIHRoZSBib29rLWtlZXBpbmcgZ2V0cyBvdXQgb2Yg c3luYy4gQW5kIGZvciBhCj4gYnVuY2ggb2YgcmVhc29ucyAoZGVsYXlzLCBkZWFkbG9ja3MpIHdl IGNhbid0IGhhdmUgdGhhdCB3YWl0IGhlcmUgcmVhbGx5Cj4gYXQgYWxsLCBtdWNoIGxlc3Mgb25l IHRoYXQgbmV2ZXIgdGltZXMgb3V0Lgo+Cj4gQ2hhbmRyYSBoYXMgYWxyZWFkeSBoaXQgdGhpcyBv biBhIHN5c3RlbSB3aGVyZSB0aGUgZmlybXdhcmUganVzdCBpc24ndAo+IGF2YWlsYWJsZS4KPgo+ IFRoYW5rcywgRGFuaWVsCj4KPj4gICAJCQkJCWlmIChTS0xfRU5BQkxFX0RDNihkZXYpKQo+PiAg IAkJCQkJCXNrbF9lbmFibGVfZGM2KGRldl9wcml2KTsKPj4gICAJCQkJCWVsc2UKPj4gICAJCQkJ CQlnZW45X2VuYWJsZV9kYzUoZGV2X3ByaXYpOwo+PiArCQkJCX0gZWxzZQo+PiArCQkJCQlEUk1f RVJST1IoIkNTUiBmaXJtd2FyZSBub3QgcmVhZHlcbiIpOwo+PiAgIAkJCX0KPj4gICAJCX0KPj4g ICAJfQo+PiAtLSAKPj4gMi4wLjIKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiBJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==