From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915/skl: replace csr_mutex by completion in csr firmware loading Date: Thu, 21 May 2015 14:11:06 +0200 Message-ID: <20150521121105.GY15256@phenom.ffwll.local> References: <1432203592-11503-1-git-send-email-animesh.manna@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by gabe.freedesktop.org (Postfix) with ESMTP id 8A6446E8B7 for ; Thu, 21 May 2015 05:08:39 -0700 (PDT) Received: by wichy4 with SMTP id hy4so11448791wic.1 for ; Thu, 21 May 2015 05:08:38 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1432203592-11503-1-git-send-email-animesh.manna@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Animesh Manna Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXkgMjEsIDIwMTUgYXQgMDM6NDk6NTJQTSArMDUzMCwgQW5pbWVzaCBNYW5uYSB3 cm90ZToKPiBCZWZvcmUgZW5hYmxpbmcgZGM1L2RjNiwgdXNlZCB3YWl0IGZvciBjb21wbGV0aW9u IGluc3RlYWQgb2YgYnVzeSB3YWl0aW5nLgo+IAo+IHYxOgo+IC0gQmFzZWQgb24gcmV2aWV3IGNv bW1lbnQgZnJvbSBEYW5pZWwgcmVwbGFjZWQgbXV0ZXggYW5kIHJlbGF0ZWQKPiBpbXBsZW1lbnRh dGlvbiB3aXRoIGNvbXBsZXRpb24uIEluIGN1cnJlbnQgcGF0Y2ggbm90IHVzZWQgcG93ZXIKPiBk b21haW4gbG9jaywgZG9uJ3Qgd2FudCB0byBibG9jayBydW50aW1lIHBvd2VyIG1hbmFnZW1lbnQg aWYgZG1jCj4gZmlybXdhcmUgZmFpbGVkIHRvIGxvYWQuIFdpbGwgYW5hbHl6aW5nIGZ1cnRoZXIg YW5kIHBvc3NpYmx5IHNlbmQKPiBhcyBhIGluY3JlbWVudGFsIHBhdGNoLgo+IC0gQmFzZWQgb24g cmV2aWV3IGNvbW1lbnQgZnJvbSBEYW1pZW4sIHdhcm5pbmcgZm9yIGZpcm13YXJlIGxvYWRpbmcK PiBmYWlsdXJlIGlzIHJlbW92ZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5pbWVzaCBNYW5uYSA8 YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+CgpTb3JyeSBpZiB0aGlzIGNyb3NzIHdpdGggbXkgY29t bWVudHMsIGJ1dCB1cG9uIGZ1cnRoZXIgZGlnZ2luZyBpbnRvIHRoaXMKY29kZSB3ZSBkb24ndCBl dmVuIG5lZWQgYSBjb21wbGV0aW9uIGF0IGFsbC4gQXMgbG9uZyBhcyB3ZSBwcmV2ZW50IHRoZQpw b3dlciB3ZWxsIGZyb20gZ2V0dGluZyBkaXNhYmxlZCBieSBob2xkaW5nIGEgcmVmZXJlbmNlIGZv ciBpdCBiZWZvcmUgd2UKbGF1bmNoIHRoZSBmaXJtd2FyZSBsb2FkZXIgaXQnbGwgYWxsIGJlIGZp bmUuIEFuZCB0aGUgYXN5bmMgd29yayBjYW4gdGhlbgpqdXN0IGRyb3AgdGhhdCByZWZlcmVuY2Ug d2hlbiBldmVyeXRoaW5nIGlzIHNldCB1cC4KClllcyB0aGlzIG1lYW5zIHJ1bnRpbWUgRDMgcmVx dWlyZXMgdGhlIGZpcm13YXJlIHRvIGJlIGxvYWRlZCwgYnV0IHRoYXQncwppbW8gbm90IGEgcHJv YmxlbS4KCkFsc28gZG9pbmcgaXQgdGhpcyB3YXkgaXMgbW9yZSBpbi1saW5lIHdpdGggaG93IHdl IGRvIGFsbCB0aGUgb3RoZXIgYXN5bmMKc2V0dXAuIEJ1dCB0aGVyZSdzIGFub3RoZXIgc2VyaW91 cyBpc3N1ZSB3aXRoIHRoaXMgZGVzaWduIGhlcmUsIHNlZSBiZWxvdy4KCgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgfCAgMSAtCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICB8IDEyICsrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY3NyLmMgICAgICAgIHwgNjMgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAzIC0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDE2ICsrKy0tLS0tLQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+IGluZGV4IDc4ZTZhZTguLjFmNWM4NmMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZG1hLmMKPiBAQCAtODE2LDcgKzgxNiw2IEBAIGludCBpOTE1X2RyaXZl cl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4gIAlz cGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPm1taW9fZmxpcF9sb2NrKTsKPiAgCW11dGV4X2luaXQo JmRldl9wcml2LT5kcGlvX2xvY2spOwo+ICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPm1vZGVzZXRf cmVzdG9yZV9sb2NrKTsKPiAtCW11dGV4X2luaXQoJmRldl9wcml2LT5jc3IuY3NyX2xvY2spOwo+ ICAKPiAgCWludGVsX3BtX3NldHVwKGRldik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ IGluZGV4IDZiYjZjNDcuLmMxMDIyNjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBA QCAtMTAzNCw3ICsxMDM0LDcgQEAgc3RhdGljIGludCBza2xfc3VzcGVuZF9jb21wbGV0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAkgKiBUaGlzIGlzIHRvIGVuc3VyZSB0 aGF0IENTUiBpc24ndCBpZGVudGlmaWVkIGFzIGxvYWRlZCBiZWZvcmUKPiAgCSAqIENTUi1sb2Fk aW5nIHByb2dyYW0gaXMgY2FsbGVkIGR1cmluZyBydW50aW1lLXJlc3VtZS4KPiAgCSAqLwo+IC0J aW50ZWxfY3NyX2xvYWRfc3RhdHVzX3NldChkZXZfcHJpdiwgRldfVU5JTklUSUFMSVpFRCk7Cj4g KwlyZWluaXRfY29tcGxldGlvbigmZGV2X3ByaXYtPmNzci5pc19sb2FkZWQpOwo+ICAKPiAgCXJl dHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggNDMwMTFkNy4uNDIz YWZhOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC01MCw2ICs1MCw3IEBACj4g ICNpbmNsdWRlIDxsaW51eC9pbnRlbC1pb21tdS5oPgo+ICAjaW5jbHVkZSA8bGludXgva3JlZi5o Pgo+ICAjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jb21wbGV0 aW9uLmg+Cj4gIAo+ICAvKiBHZW5lcmFsIGN1c3RvbWl6YXRpb246Cj4gICAqLwo+IEBAIC02Njks MjMgKzY3MCwxNCBAQCBzdHJ1Y3QgaW50ZWxfdW5jb3JlIHsKPiAgI2RlZmluZSBmb3JfZWFjaF9m d19kb21haW4oZG9tYWluX18sIGRldl9wcml2X18sIGlfXykgXAo+ICAJZm9yX2VhY2hfZndfZG9t YWluX21hc2soZG9tYWluX18sIEZPUkNFV0FLRV9BTEwsIGRldl9wcml2X18sIGlfXykKPiAgCj4g LWVudW0gY3NyX3N0YXRlIHsKPiAtCUZXX1VOSU5JVElBTElaRUQgPSAwLAo+IC0JRldfTE9BREVE LAo+IC0JRldfRkFJTEVECj4gLX07Cj4gLQo+ICBzdHJ1Y3QgaW50ZWxfY3NyIHsKPiAtCS8qIENT UiBwcm90ZWN0aW9uLCB1c2VkIHRvIHByb3RlY3QgZmlybXdhcmUgbG9hZGluZyBzdGF0dXM6IGNz cl9zdGF0ZSAqLwo+IC0Jc3RydWN0IG11dGV4IGNzcl9sb2NrOwo+IC0KPiArCXN0cnVjdCBjb21w bGV0aW9uIGlzX2xvYWRlZDsKPiAgCWNvbnN0IGNoYXIgKmZ3X3BhdGg7Cj4gIAlfX2JlMzIgKmRt Y19wYXlsb2FkOwo+ICAJdWludDMyX3QgZG1jX2Z3X3NpemU7Cj4gIAl1aW50MzJfdCBtbWlvX2Nv dW50Owo+ICAJdWludDMyX3QgbW1pb2FkZHJbOF07Cj4gIAl1aW50MzJfdCBtbWlvZGF0YVs4XTsK PiAtCWVudW0gY3NyX3N0YXRlIHN0YXRlOwo+ICB9Owo+ICAKPiAgI2RlZmluZSBERVZfSU5GT19G T1JfRUFDSF9GTEFHKGZ1bmMsIHNlcCkgXAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCj4gaW5k ZXggZDFkYTJkYi4uZmVjMmJjNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9jc3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCj4gQEAg LTMyLDEzICszMiw2IEBACj4gICAqIG9ud2FyZHMgdG8gZHJpdmUgbmV3bHkgYWRkZWQgRE1DIChE aXNwbGF5IG1pY3JvY29udHJvbGxlcikgaW4gZGlzcGxheQo+ICAgKiBlbmdpbmUgdG8gc2F2ZSBh bmQgcmVzdG9yZSB0aGUgc3RhdGUgb2YgZGlzcGxheSBlbmdpbmUgd2hlbiBpdCBlbnRlciBpbnRv Cj4gICAqIGxvdy1wb3dlciBzdGF0ZSBhbmQgY29tZXMgYmFjayB0byBub3JtYWwuCj4gLSAqCj4g LSAqIEZpcm13YXJlIGxvYWRpbmcgc3RhdHVzIHdpbGwgYmUgb25lIG9mIHRoZSBiZWxvdyBzdGF0 ZXM6IEZXX1VOSU5JVElBTElaRUQsCj4gLSAqIEZXX0xPQURFRCwgRldfRkFJTEVELgo+IC0gKgo+ IC0gKiBPbmNlIHRoZSBmaXJtd2FyZSBpcyB3cml0dGVuIGludG8gdGhlIHJlZ2lzdGVycyBzdGF0 dXMgd2lsbCBiZSBtb3ZlZCBmcm9tCj4gLSAqIEZXX1VOSU5JVElBTElaRUQgdG8gRldfTE9BREVE IGFuZCBmb3IgYW55IGVycm9uZW91cyBjb25kaXRpb24gc3RhdHVzIHdpbGwKPiAtICogYmUgbW92 ZWQgdG8gRldfRkFJTEVELgo+ICAgKi8KPiAgCj4gICNkZWZpbmUgSTkxNV9DU1JfU0tMICJpOTE1 L3NrbF9kbWNfdmVyNC5iaW4iCj4gQEAgLTIwMCw0MCArMTkzLDYgQEAgc3RhdGljIGNoYXIgaW50 ZWxfZ2V0X3N1YnN0ZXBwaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIH0KPiAgCj4gIC8q Kgo+IC0gKiBpbnRlbF9jc3JfbG9hZF9zdGF0dXNfZ2V0KCkgLSB0byBnZXQgZmlybXdhcmUgbG9h ZGluZyBzdGF0dXMuCj4gLSAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UuCj4gLSAqCj4gLSAqIFRo aXMgZnVuY3Rpb24gaGVscHMgdG8gZ2V0IHRoZSBmaXJtd2FyZSBsb2FkaW5nIHN0YXR1cy4KPiAt ICoKPiAtICogUmV0dXJuOiBGaXJtd2FyZSBsb2FkaW5nIHN0YXR1cy4KPiAtICovCj4gLWVudW0g Y3NyX3N0YXRlIGludGVsX2Nzcl9sb2FkX3N0YXR1c19nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+IC17Cj4gLQllbnVtIGNzcl9zdGF0ZSBzdGF0ZTsKPiAtCj4gLQltdXRl eF9sb2NrKCZkZXZfcHJpdi0+Y3NyLmNzcl9sb2NrKTsKPiAtCXN0YXRlID0gZGV2X3ByaXYtPmNz ci5zdGF0ZTsKPiAtCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmNzci5jc3JfbG9jayk7Cj4gLQo+ IC0JcmV0dXJuIHN0YXRlOwo+IC19Cj4gLQo+IC0vKioKPiAtICogaW50ZWxfY3NyX2xvYWRfc3Rh dHVzX3NldCgpIC0gaGVscCB0byBzZXQgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMuCj4gLSAqIEBk ZXZfcHJpdjogaTkxNSBkZXZpY2UuCj4gLSAqIEBzdGF0ZTogZW51bWVyYXRpb24gb2YgZmlybXdh cmUgbG9hZGluZyBzdGF0dXMuCj4gLSAqCj4gLSAqIFNldCB0aGUgZmlybXdhcmUgbG9hZGluZyBz dGF0dXMuCj4gLSAqLwo+IC12b2lkIGludGVsX2Nzcl9sb2FkX3N0YXR1c19zZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQllbnVtIGNzcl9zdGF0ZSBzdGF0ZSkKPiAt ewo+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmNzci5jc3JfbG9jayk7Cj4gLQlkZXZfcHJpdi0+ Y3NyLnN0YXRlID0gc3RhdGU7Cj4gLQltdXRleF91bmxvY2soJmRldl9wcml2LT5jc3IuY3NyX2xv Y2spOwo+IC19Cj4gLQo+IC0vKioKPiAgICogaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbSgpIC0gd3Jp dGUgdGhlIGZpcm13YXJlIGZyb20gbWVtb3J5IHRvIHJlZ2lzdGVyLgo+ICAgKiBAZGV2OiBkcm0g ZGV2aWNlLgo+ICAgKgo+IEBAIC0yNTIsNyArMjExLDYgQEAgdm9pZCBpbnRlbF9jc3JfbG9hZF9w cm9ncmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAKPiAt CW11dGV4X2xvY2soJmRldl9wcml2LT5jc3IuY3NyX2xvY2spOwo+ICAJZndfc2l6ZSA9IGRldl9w cml2LT5jc3IuZG1jX2Z3X3NpemU7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgZndfc2l6ZTsgaSsrKQo+ ICAJCUk5MTVfV1JJVEUoQ1NSX1BST0dSQU1fQkFTRSArIGkgKiA0LAo+IEBAIC0yNjIsOSArMjIw LDcgQEAgdm9pZCBpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAkJSTkxNV9XUklURShkZXZfcHJpdi0+Y3NyLm1taW9hZGRyW2ldLAo+ICAJCQlkZXZfcHJp di0+Y3NyLm1taW9kYXRhW2ldKTsKPiAgCX0KPiAtCj4gLQlkZXZfcHJpdi0+Y3NyLnN0YXRlID0g RldfTE9BREVEOwo+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+Y3NyLmNzcl9sb2NrKTsKPiAr CWNvbXBsZXRlKCZkZXZfcHJpdi0+Y3NyLmlzX2xvYWRlZCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2 b2lkIGZpbmlzaF9jc3JfbG9hZChjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3LCB2b2lkICpjb250 ZXh0KQo+IEBAIC0yODAsNyArMjM2LDYgQEAgc3RhdGljIHZvaWQgZmluaXNoX2Nzcl9sb2FkKGNv bnN0IHN0cnVjdCBmaXJtd2FyZSAqZncsIHZvaWQgKmNvbnRleHQpCj4gIAl1aW50MzJfdCBkbWNf b2Zmc2V0ID0gQ1NSX0RFRkFVTFRfRldfT0ZGU0VULCByZWFkY291bnQgPSAwLCBuYnl0ZXM7Cj4g IAl1aW50MzJfdCBpOwo+ICAJX19iZTMyICpkbWNfcGF5bG9hZDsKPiAtCWJvb2wgZndfbG9hZGVk ID0gZmFsc2U7Cj4gIAo+ICAJaWYgKCFmdykgewo+ICAJCWk5MTVfZmlybXdhcmVfbG9hZF9lcnJv cl9wcmludChjc3ItPmZ3X3BhdGgsIDApOwo+IEBAIC0zODcsMTQgKzM0Miw5IEBAIHN0YXRpYyB2 b2lkIGZpbmlzaF9jc3JfbG9hZChjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3LCB2b2lkICpjb250 ZXh0KQo+ICAKPiAgCS8qIGxvYWQgY3NyIHByb2dyYW0gZHVyaW5nIHN5c3RlbSBib290LCBhcyBu ZWVkZWQgZm9yIERDIHN0YXRlcyAqLwo+ICAJaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShkZXYpOwo+ IC0JZndfbG9hZGVkID0gdHJ1ZTsKPiAgCj4gIG91dDoKPiAtCWlmIChmd19sb2FkZWQpCj4gLQkJ aW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwo+IC0JZWxzZQo+IC0JCWludGVsX2Nzcl9s b2FkX3N0YXR1c19zZXQoZGV2X3ByaXYsIEZXX0ZBSUxFRCk7Cj4gLQo+ICsJaW50ZWxfcnVudGlt ZV9wbV9wdXQoZGV2X3ByaXYpOwo+ICAJcmVsZWFzZV9maXJtd2FyZShmdyk7Cj4gIH0KPiAgCj4g QEAgLTQxOCw3ICszNjgsNiBAQCB2b2lkIGludGVsX2Nzcl91Y29kZV9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAkJY3NyLT5md19wYXRoID0gSTkxNV9DU1JfU0tMOwo+ICAJZWxzZSB7 Cj4gIAkJRFJNX0VSUk9SKCJVbmV4cGVjdGVkOiBubyBrbm93biBDU1IgZmlybXdhcmUgZm9yIHBs YXRmb3JtXG4iKTsKPiAtCQlpbnRlbF9jc3JfbG9hZF9zdGF0dXNfc2V0KGRldl9wcml2LCBGV19G QUlMRUQpOwo+ICAJCXJldHVybjsKPiAgCX0KPiAgCj4gQEAgLTQyOCwxNSArMzc3LDE1IEBAIHZv aWQgaW50ZWxfY3NyX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCSAqLwo+ ICAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+ICAKPiArCWluaXRfY29tcGxldGlv bigmY3NyLT5pc19sb2FkZWQpOwo+ICsKPiAgCS8qIENTUiBzdXBwb3J0ZWQgZm9yIHBsYXRmb3Jt LCBsb2FkIGZpcm13YXJlICovCj4gIAlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlX25vd2FpdChUSElT X01PRFVMRSwgdHJ1ZSwgY3NyLT5md19wYXRoLAo+ICAJCQkJJmRldl9wcml2LT5kZXYtPnBkZXYt PmRldiwKPiAgCQkJCUdGUF9LRVJORUwsIGRldl9wcml2LAo+ICAJCQkJZmluaXNoX2Nzcl9sb2Fk KTsKPiAtCWlmIChyZXQpIHsKPiArCWlmIChyZXQpCj4gIAkJaTkxNV9maXJtd2FyZV9sb2FkX2Vy cm9yX3ByaW50KGNzci0+ZndfcGF0aCwgcmV0KTsKPiAtCQlpbnRlbF9jc3JfbG9hZF9zdGF0dXNf c2V0KGRldl9wcml2LCBGV19GQUlMRUQpOwo+IC0JfQo+ICB9Cj4gIAo+ICAvKioKPiBAQCAtNDUz LDEzICs0MDIsMTEgQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJaWYgKCFIQVNfQ1NSKGRldikpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCWludGVs X2Nzcl9sb2FkX3N0YXR1c19zZXQoZGV2X3ByaXYsIEZXX0ZBSUxFRCk7Cj4gIAlrZnJlZShkZXZf cHJpdi0+Y3NyLmRtY19wYXlsb2FkKTsKPiAgfQo+ICAKPiAgdm9pZCBhc3NlcnRfY3NyX2xvYWRl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCVdBUk4oKGludGVs X2Nzcl9sb2FkX3N0YXR1c19nZXQoZGV2X3ByaXYpICE9IEZXX0xPQURFRCksICJDU1IgaXMgbm90 IGxvYWRlZC5cbiIpOwo+ICAJV0FSTighSTkxNV9SRUFEKENTUl9QUk9HUkFNX0JBU0UpLAo+ICAJ CQkJIkNTUiBwcm9ncmFtIHN0b3JhZ2Ugc3RhcnQgaXMgTlVMTFxuIik7Cj4gIAlXQVJOKCFJOTE1 X1JFQUQoQ1NSX1NTUF9CQVNFKSwgIkNTUiBTU1AgQmFzZSBOb3QgZmluZVxuIik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBlYTIwZWRiLi5lMDIyYzk4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTE1NSw5ICsxMTU1LDYgQEAgdTMyIHNrbF9wbGFuZV9j dGxfcm90YXRpb24odW5zaWduZWQgaW50IHJvdGF0aW9uKTsKPiAgCj4gIC8qIGludGVsX2Nzci5j ICovCj4gIHZvaWQgaW50ZWxfY3NyX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gLWVudW0gY3NyX3N0YXRlIGludGVsX2Nzcl9sb2FkX3N0YXR1c19nZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAtdm9pZCBpbnRlbF9jc3JfbG9hZF9zdGF0dXNfc2V0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCQllbnVtIGNzcl9zdGF0 ZSBzdGF0ZSk7Cj4gIHZvaWQgaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKPiAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KTsKPiAgdm9pZCBhc3NlcnRfY3NyX2xvYWRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBpbmRl eCBiMzkzZGI3Li41YTgzMGQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRp bWVfcG0uYwo+IEBAIC01MjUsNyArNTI1LDYgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2Nhbl9kaXNh YmxlX2RjNihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpZiAoZGV2X3By aXYtPnBvd2VyX2RvbWFpbnMuaW5pdGlhbGl6aW5nKQo+ICAJCXJldHVybjsKPiAgCj4gLQlhc3Nl cnRfY3NyX2xvYWRlZChkZXZfcHJpdik7Cj4gIAlXQVJOKCEoSTkxNV9SRUFEKERDX1NUQVRFX0VO KSAmIERDX1NUQVRFX0VOX1VQVE9fREM2KSwKPiAgCQkiREM2IGFscmVhZHkgcHJvZ3JhbW1lZCB0 byBiZSBkaXNhYmxlZC5cbiIpOwo+ICB9Cj4gQEAgLTY0MiwyMSArNjQxLDE0IEBAIHN0YXRpYyB2 b2lkIHNrbF9zZXRfcG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAo+ICAJCQlpZiAoKEdFTjlfRU5BQkxFX0RDNShkZXYpIHx8IFNLTF9FTkFCTEVfREM2KGRl dikpICYmCj4gIAkJCQlwb3dlcl93ZWxsLT5kYXRhID09IFNLTF9ESVNQX1BXXzIpIHsKPiAtCQkJ CWVudW0gY3NyX3N0YXRlIHN0YXRlOwo+IC0JCQkJLyogVE9ETzogd2FpdCBmb3IgYSBjb21wbGV0 aW9uIGV2ZW50IG9yCj4gLQkJCQkgKiBzaW1pbGFyIGhlcmUgaW5zdGVhZCBvZiBidXN5Cj4gLQkJ CQkgKiB3YWl0aW5nIHVzaW5nIHdhaXRfZm9yIGZ1bmN0aW9uLgo+IC0JCQkJICovCj4gLQkJCQl3 YWl0X2Zvcigoc3RhdGUgPSBpbnRlbF9jc3JfbG9hZF9zdGF0dXNfZ2V0KGRldl9wcml2KSkgIT0K PiAtCQkJCQkJRldfVU5JTklUSUFMSVpFRCwgMTAwMCk7Cj4gLQkJCQlpZiAoc3RhdGUgIT0gRldf TE9BREVEKQo+IC0JCQkJCURSTV9FUlJPUigiQ1NSIGZpcm13YXJlIG5vdCByZWFkeSAoJWQpXG4i LAo+IC0JCQkJCQkJc3RhdGUpOwo+IC0JCQkJZWxzZQo+ICsJCQkJaWYgKHdhaXRfZm9yX2NvbXBs ZXRpb25fdGltZW91dCgKPiArCQkJCQkmZGV2X3ByaXYtPmNzci5pc19sb2FkZWQsIDEwMCkpIHsK ClRoZSBwcm9ibGVtIGlzIHdpdGggdGhpcyBkZXNpZ24gdGhhdCB0aGlzIHdhaXQgaGVyZSBpc24n dCBhbGxvd2VkIHRvIGV2ZXIKdGltZSBvdXQsIHNpbmNlIGlmIGl0IGRvZXMgdGhlIGJvb2sta2Vl cGluZyBnZXRzIG91dCBvZiBzeW5jLiBBbmQgZm9yIGEKYnVuY2ggb2YgcmVhc29ucyAoZGVsYXlz LCBkZWFkbG9ja3MpIHdlIGNhbid0IGhhdmUgdGhhdCB3YWl0IGhlcmUgcmVhbGx5CmF0IGFsbCwg bXVjaCBsZXNzIG9uZSB0aGF0IG5ldmVyIHRpbWVzIG91dC4KCkNoYW5kcmEgaGFzIGFscmVhZHkg aGl0IHRoaXMgb24gYSBzeXN0ZW0gd2hlcmUgdGhlIGZpcm13YXJlIGp1c3QgaXNuJ3QKYXZhaWxh YmxlLgoKVGhhbmtzLCBEYW5pZWwKCj4gIAkJCQkJaWYgKFNLTF9FTkFCTEVfREM2KGRldikpCj4g IAkJCQkJCXNrbF9lbmFibGVfZGM2KGRldl9wcml2KTsKPiAgCQkJCQllbHNlCj4gIAkJCQkJCWdl bjlfZW5hYmxlX2RjNShkZXZfcHJpdik7Cj4gKwkJCQl9IGVsc2UKPiArCQkJCQlEUk1fRVJST1Io IkNTUiBmaXJtd2FyZSBub3QgcmVhZHlcbiIpOwo+ICAJCQl9Cj4gIAkJfQo+ICAJfQo+IC0tIAo+ IDIuMC4yCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3Jh dGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=