From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v11 2/7] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Fri, 12 Aug 2016 15:04:10 +0300 Message-ID: <20160812120410.GY4329@intel.com> References: <1470945277-7973-1-git-send-email-cpaul@redhat.com> <1470945277-7973-3-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470945277-7973-3-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Cc: dri-devel@lists.freedesktop.org, David Airlie , Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTEsIDIwMTYgYXQgMDM6NTQ6MzFQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6Cj4g U2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbnMgZm9yIFNreWxha2UgYXJlIHN0aWxsIGJy b2tlbiwgd2UncmUgYXB0Cj4gdG8gaGl0dGluZyB1bmRlcnJ1bnMgdmVyeSBlYXNpbHkgdW5kZXIg bXVsdGktbW9uaXRvciBjb25maWd1cmF0aW9ucy4KPiBXaGlsZSBpdCB3b3VsZCBiZSBsb3ZlbHkg aWYgdGhpcyB3YXMgZml4ZWQsIGl0J3Mgbm90LiBBbm90aGVyIHByb2JsZW0KPiB0aGF0J3MgYmVl biBjb21pbmcgZnJvbSB0aGlzIGhvd2V2ZXIsIGlzIHRoZSBteXN0ZXJpb3VzIGlzc3VlIG9mCj4g dW5kZXJydW5zIGNhdXNpbmcgZnVsbCBzeXN0ZW0gaGFuZ3MuIEFuIGVhc3kgd2F5IHRvIHJlcHJv ZHVjZSB0aGlzIHdpdGgKPiBhIHNreWxha2Ugc3lzdGVtOgo+IAo+IC0gR2V0IGEgbGFwdG9wIHdp dGggYSBza3lsYWtlIEdQVSwgYW5kIGhvb2sgdXAgdHdvIGV4dGVybmFsIG1vbml0b3JzIHRvCj4g ICBpdAo+IC0gTW92ZSB0aGUgY3Vyc29yIGZyb20gdGhlIGJ1aWx0LWluIExDRCB0byBvbmUgb2Yg dGhlIGV4dGVybmFsIGRpc3BsYXlzCj4gICBhcyBxdWlja2x5IGFzIHlvdSBjYW4KPiAtIFlvdSds bCBnZXQgYSBmZXcgcGlwZSB1bmRlcnJ1bnMsIGFuZCBldmVudHVhbGx5IHRoZSBlbnRpcmUgc3lz dGVtIHdpbGwKPiAgIGp1c3QgZnJlZXplLgo+IAo+IEFmdGVyIGRvaW5nIGEgbG90IG9mIGludmVz dGlnYXRpb24gYW5kIHJlYWRpbmcgdGhyb3VnaCB0aGUgYnNwZWMsIEkKPiBmb3VuZCB0aGUgZXhp c3RlbmNlIG9mIHRoZSBTQUdWLCB3aGljaCBpcyByZXNwb25zaWJsZSBmb3IgYWRqdXN0aW5nIHRo ZQo+IHN5c3RlbSBhZ2VudCB2b2x0YWdlIGFuZCBjbG9jayBmcmVxdWVuY2llcyBkZXBlbmRpbmcg b24gaG93IG11Y2ggcG93ZXIKPiB3ZSBuZWVkLiBBY2NvcmRpbmcgdG8gdGhlIGJzcGVjOgo+IAo+ ICJUaGUgZGlzcGxheSBlbmdpbmUgYWNjZXNzIHRvIHN5c3RlbSBtZW1vcnkgaXMgYmxvY2tlZCBk dXJpbmcgdGhlCj4gIGFkanVzdG1lbnQgdGltZS4gU0FHViBkZWZhdWx0cyB0byBlbmFibGVkLiBT b2Z0d2FyZSBtdXN0IHVzZSB0aGUKPiAgR1QtZHJpdmVyIHBjb2RlIG1haWxib3ggdG8gZGlzYWJs ZSBTQUdWIHdoZW4gdGhlIGRpc3BsYXkgZW5naW5lIGlzIG5vdAo+ICBhYmxlIHRvIHRvbGVyYXRl IHRoZSBibG9ja2luZyB0aW1lLiIKPiAKPiBUaGUgcmVzdCBvZiB0aGUgYnNwZWMgZ29lcyBvbiB0 byBleHBsYWluIHRoYXQgc29mdHdhcmUgY2FuIHNpbXBseSBsZWF2ZQo+IHRoZSBTQUdWIGVuYWJs ZWQsIGFuZCBkaXNhYmxlIGl0IHdoZW4gd2UgdXNlIGludGVybGFjZWQgcGlwZXMvaGF2ZSBtb3Jl Cj4gdGhlbiBvbmUgcGlwZSBhY3RpdmUuCj4gCj4gU3VyZSBlbm91Z2gsIHdpdGggdGhpcyBwYXRj aHNldCB0aGUgc3lzdGVtIGhhbmdzIHJlc3VsdGluZyBmcm9tIHBpcGUKPiB1bmRlcnJ1bnMgb24g U2t5bGFrZSBoYXZlIGNvbXBsZXRlbHkgdmFuaXNoZWQgb24gbXkgVDQ2MHMuIEFkZGl0aW9uYWxs eSwKPiB0aGUgYnNwZWMgbWVudGlvbnMgdHVybmluZyBvZmYgdGhlIFNBR1YJd2l0aCBtb3JlIHRo ZW4gb25lIHBpcGUgZW5hYmxlZAo+IGFzIGEgd29ya2Fyb3VuZCBmb3IgZGlzcGxheSB1bmRlcnJ1 bnMuIFdoaWxlIHRoaXMgcGF0Y2ggZG9lc24ndCBlbnRpcmVseQo+IGZpeCB0aGF0LCBpdCBsb29r cyBsaWtlIGl0IGRvZXMgaW1wcm92ZSB0aGUgc2l0dWF0aW9uIGEgbGl0dGxlIGJpdCBzbwo+IGl0 J3MgbGlrZWx5IHRoaXMgaXMgZ29pbmcgdG8gYmUgcmVxdWlyZWQgdG8gbWFrZSB3YXRlcm1hcmtz IG9uIFNreWxha2UKPiBmdWxseSBmdW5jdGlvbmFsLgo+IAo+IENoYW5nZXMgc2luY2UgdjEwOgo+ ICAtIEFwcGFyZW50bHkgc2FuZHlicmlkZ2VfcGNvZGVfcmVhZCBhY3R1YWxseSB3cml0ZXMgdmFs dWVzIGFuZCByZWFkcwo+ICAgIHRoZW0gYmFjaywgZGVzcGl0ZSBpdCdzIG1pc2xlYWRpbmcgZnVu Y3Rpb24gbmFtZS4gVGhpcyBtZWFucyB3ZSd2ZQo+ICAgIGJlZW4gZG9pbmcgdGhpcyBtb3N0bHkg d3JvbmcgYW5kIGhhdmUgYmVlbiB3cml0aW5nIGdhcmJhZ2UgdG8gdGhlCj4gICAgU0FHViBjb250 cm9sLiBCZWNhdXNlIG9mIHRoaXMsIHdlIG5vIGxvbmdlciBhdHRlbXB0IHRvIHJlYWQgdGhlIFNB R1YKPiAgICBzdGF0dXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIChzaW5jZSB0aGVyZSBhcmUgbm8g aGVscGVycyBmb3IgdGhpcykuCj4gIC0gbWxhbmtob3JzdCBub3RpY2VkIHRoYXQgdGhpcyBwYXRj aCB3YXMgYnJlYWtpbmcgb24gc29tZSB2ZXJ5IGVhcmx5Cj4gICAgcHJlLXJlbGVhc2UgU2t5bGFr ZSBtYWNoaW5lcywgd2hpY2ggYXBwYXJlbnRseSBkb24ndCBhbGxvdyB5b3UgdG8KPiAgICBkaXNh YmxlIHRoZSBTQUdWLiBUbyBwcmV2ZW50IG1hY2hpbmVzIGZyb20gZmFpbGluZyB0ZXN0cyBkdWUg dG8gU0FHVgo+ICAgIGVycm9ycywgaWYgdGhlIGZpcnN0IHRpbWUgd2UgdHJ5IHRvIGNvbnRyb2wg dGhlIFNBR1YgcmVzdWx0cyBpbiB0aGUKPiAgICBtYWlsYm94IGluZGljYXRpbmcgYW4gaW52YWxp ZCBjb21tYW5kLCB3ZSBqdXN0IGRpc2FibGUgZnV0dXJlIGF0dGVtcHRzCj4gICAgdG8gY29udHJv bCB0aGUgU0FHViBzdGF0ZSBieSBzZXR0aW5nIGRldl9wcml2LT5za2xfc2Fndl9zdGF0dXMgdG8K PiAgICBJOTE1X1NLTF9TQUdWX05PVF9DT05UUk9MTEVEIGFuZCBtYWtlIGEgbm90ZSBvZiBpdCBp biBkbWVzZy4KPiAgLSBNb3ZlIG11dGV4X3VubG9jaygpIGEgbGl0dGxlIGhpZ2hlciBpbiBza2xf ZW5hYmxlX3NhZ3YoKS4gVGhpcwo+ICAgIGRvZXNuJ3QgYWN0dWFsbHkgZml4IGFueXRoaW5nLCBi dXQgbGV0cyB1cyByZWxlYXNlIHRoZSBsb2NrIGEgbGl0dGxlCj4gICAgc29vbmVyIHNpbmNlIHdl J3JlIGZpbmlzaGVkIHdpdGggaXQuCj4gQ2hhbmdlcyBzaW5jZSB2OToKPiAgLSBPbmx5IGVuYWJs ZS9kaXNhYmxlIHNhZ3Ygb24gU2t5bGFrZQo+IENoYW5nZXMgc2luY2Ugdjg6Cj4gIC0gQWRkIGlu dGVsX3N0YXRlLT5tb2Rlc2V0IGd1YXJkIHRvIHRoZSBjb25kaXRpb25hbCBmb3IKPiAgICBza2xf ZW5hYmxlX3NhZ3YoKQo+IENoYW5nZXMgc2luY2Ugdjc6Cj4gIC0gUmVtb3ZlIEdFTjlfU0FHVl9M T1dfRlJFUSwgcmVwbGFjZSB3aXRoIEdFTjlfU0FHVl9JU19FTkFCTEVEICh0aGF0J3MKPiAgICBh bGwgd2UgdXNlIGl0IGZvciBhbnl3YXkpCj4gIC0gVXNlIEdFTjlfU0FHVl9JU19FTkFCTEVEIGlu c3RlYWQgb2YgMHgxIGZvciBjbGFyaWZpY2F0aW9uCj4gIC0gRml4IGEgc3R5bGluZyBlcnJvciB0 aGF0IHNudWNrIHBhc3QgbWUKPiBDaGFuZ2VzIHNpbmNlIHY2Ogo+ICAtIFByb3RlY3Qgc2tsX2Vu YWJsZV9zYWd2KCkgd2l0aCBpbnRlbF9zdGF0ZS0+bW9kZXNldCBjb25kaXRpb25hbCBpbgo+ICAg IGludGVsX2F0b21pY19jb21taXRfdGFpbCgpCj4gQ2hhbmdlcyBzaW5jZSB2NToKPiAgLSBEb24n dCB1c2UgaXNfcG93ZXJfb2ZfMi4gTWFrZXMgdGhpbmdzIGNvbmZ1c2luZwo+ICAtIERvbid0IHVz ZSB0aGUgb2xkIHN0YXRlIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBvciBub3QgdG8KPiAgICBlbmFi bGUvZGlzYWJsZSB0aGUgc2FndiwgdXNlIHRoZSBuZXcgb25lCj4gIC0gU3BsaXQgdGhlIGxvb3Ag aW4gc2tsX2Rpc2FibGVfc2FndiBpbnRvIGl0J3Mgb3duIGZ1bmN0aW9uCj4gIC0gTW92ZSBza2xf c2Fndl9lbmFibGUvZGlzYWJsZSgpIGNhbGxzIGludG8gaW50ZWxfYXRvbWljX2NvbW1pdF90YWls KCkKPiBDaGFuZ2VzIHNpbmNlIHY0Ogo+ICAtIFVzZSBpc19wb3dlcl9vZl8yIGFnYWluc3QgYWN0 aXZlX2NydGNzIHRvIGNoZWNrIHdoZXRoZXIgd2UgaGF2ZSA+IDEKPiAgICBwaXBlIGVuYWJsZWQK PiAgLSBGaXggc2tsX3NhZ3ZfZ2V0X2h3X3N0YXRlKCk6ICh0ZW1wICYgMHgxKSBpbmRpY2F0ZXMg ZGlzYWJsZWQsIDB4MAo+ICAgIGVuYWJsZWQKPiAgLSBDYWxsIHNrbF9zYWd2X2VuYWJsZS9kaXNh YmxlKCkgZnJvbSBwcmUvcG9zdC1wbGFuZSB1cGRhdGVzCj4gQ2hhbmdlcyBzaW5jZSB2MzoKPiAg LSBVc2UgdGltZV9iZWZvcmUoKSB0byBjb21wYXJlIHRpbWVvdXQgdG8gamlmZmllcwo+IENoYW5n ZXMgc2luY2UgdjI6Cj4gIC0gUmVhbGx5IGFwcGx5IG1pbm9yIHN0eWxlIG5pdHBpY2tzIHRvIHBh dGNoIHRoaXMgdGltZQo+IENoYW5nZXMgc2luY2UgdjE6Cj4gIC0gQWRkZWQgY29tbWVudHMgYWJv dXQgdGhpcyBwcm9iYWJseSBiZWluZyBvbmUgb2YgdGhlIHJlcXVpcmVtZW50cyB0bwo+ICAgIGZp eGluZyBTa3lsYWtlJ3Mgd2F0ZXJtYXJrIGlzc3Vlcwo+ICAtIE1pbm9yIHN0eWxlIG5pdHBpY2tz IGZyb20gTWF0dCBSb3Blcgo+ICAtIERpc2FibGUgdGhlc2UgZnVuY3Rpb25zIG9uIEJyb3h0b24s IHNpbmNlIGl0IGRvZXNuJ3QgaGF2ZSBhbiBTQUdWCj4gCj4gU2lnbmVkLW9mZi1ieTogTHl1ZGUg PGNwYXVsQHJlZGhhdC5jb20+Cj4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRl bC5jb20+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4g Q2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6 IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgIHwgIDcgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg ICAgICB8ICA0ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEy ICsrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgODkgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMo KykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA3OTcxYzc2Li5kNzRkMTY2IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTE5NDUsNiArMTk0NSwxMyBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAlzdHJ1Y3QgaTkxNV9zdXNwZW5kX3NhdmVkX3JlZ2lz dGVycyByZWdmaWxlOwo+ICAJc3RydWN0IHZsdl9zMGl4X3N0YXRlIHZsdl9zMGl4X3N0YXRlOwo+ ICAKPiArCWVudW0gewo+ICsJCUk5MTVfU0tMX1NBR1ZfVU5LTk9XTiA9IDAsCj4gKwkJSTkxNV9T S0xfU0FHVl9ESVNBQkxFRCwKPiArCQlJOTE1X1NLTF9TQUdWX0VOQUJMRUQsCj4gKwkJSTkxNV9T S0xfU0FHVl9OT1RfQ09OVFJPTExFRAo+ICsJfSBza2xfc2Fndl9zdGF0dXM7Cj4gKwo+ICAJc3Ry dWN0IHsKPiAgCQkvKgo+ICAJCSAqIFJhdyB3YXRlcm1hcmsgbGF0ZW5jeSB2YWx1ZXM6Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggNzNiM2Q0ZC4uNDk4MGNmZSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+IEBAIC03MTQ0LDYgKzcxNDQsMTAgQEAgZW51bSB7Cj4gICNkZWZp bmUgICBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEJCTB4MTcKPiAgI2RlZmluZSAgIERJU1BM QVlfSVBTX0NPTlRST0wJCQkweDE5Cj4gICNkZWZpbmUJICBIU1dfUENPREVfRFlOQU1JQ19EVVRZ X0NZQ0xFX0NPTlRST0wJMHgxQQo+ICsjZGVmaW5lICAgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0wJ CTB4MjEKPiArI2RlZmluZSAgICAgR0VOOV9TQUdWX0RJU0FCTEUJCQkweDAKPiArI2RlZmluZSAg ICAgR0VOOV9TQUdWX0lTX0RJU0FCTEVECQkweDEKPiArI2RlZmluZSAgICAgR0VOOV9TQUdWX0RZ TkFNSUNfRlJFUSAgICAgICAgICAgICAgMHgzCgpIbW0uIFRoZSBkZWZpbml0aW9uIG9mIHRoZXNl IGJpdHMgaXMgZGVmaW5pdGVseSBwZWN1bGlhci4gVW5mb3J0dW5hdGVseQp0aGUgc3BlYyBkb2Vz bid0IHNlZW0gdG8gZXhwbGFpbiB0aGVtLiBGaXJzdCBJIHRob3VnaCBiaXQgMCBtaWdodCBiZQpt b3JlIG9mIGFuIGFjayBiaXQsIGJ1dCB0aGVuIHdoeSB3b3VsZCB3ZSBzZXQgaXQgZm9yIHRoZSAi ZW5hYmxlIiByZXF1ZXN0PwoKSSdkIG1heWJlIGRvIHMvRFlOQU1JQ19GUkVRL0VOQUJMRS8gdG8g bWFrZSBpdCBtb3JlIGNsZWFyIHdoYXQgaXMgdGhlCmNvdW50ZXJwYXJ0IHRvIERJU0FCTEUuCgo+ ICAjZGVmaW5lIEdFTjZfUENPREVfREFUQQkJCQlfTU1JTygweDEzODEyOCkKPiAgI2RlZmluZSAg IEdFTjZfUENPREVfRlJFUV9JQV9SQVRJT19TSElGVAk4Cj4gICNkZWZpbmUgICBHRU42X1BDT0RF X0ZSRVFfUklOR19SQVRJT19TSElGVAkxNgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiBpbmRleCBjNWMwYzM1Li4zNWJkZDY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC0xNDE0Miw2ICsxNDE0MiwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9h dG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCSAg ICAgaW50ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gIT0gZGV2X3ByaXYtPmNkY2xrX3BsbC52Y28p KQo+ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdGF0ZSk7Cj4g IAo+ICsJCS8qCj4gKwkJICogU0tMIHdvcmthcm91bmQ6IGJzcGVjIHJlY29tbWVuZHMgd2UgZGlz YWJsZSB0aGUgU0FHViB3aGVuIHdlCj4gKwkJICogaGF2ZSBtb3JlIHRoZW4gb25lIHBpcGUgZW5h YmxlZAo+ICsJCSAqLwoKSXQgZG9lc24ndCBhY3R1YWxseSBzYXkgdGhhdCBBRkFJQ1MuIFdoYXQg aXQgc2F5cyBpcyB0aGUgKmlmKiB5b3UKZ3VhcmFudGVlIHRoYXQgaW4gc2luZ2xlIHBpcGUgbW9k ZSB5b3UgbmV2ZXIgcnVuIGFmb3VsIG9mIHRoZSBTQUdWCmJsb2NrIHRpbWUgKDMwdXMgb24gU0tM KSwgdGhlbiB5b3UgY2FuIHNpbXBseSBkaXNhYmxlIFNBR1YgZGVwZW5kaW5nCm9uIHRoZSBudW1i ZXIgb2YgYWN0aXZlIHBpcGVzLiBJIGd1ZXNzIHRoYXQgY2FuIHNvcnQgb2YgaW1wbHkgdGhhdCB5 b3UKc2hvdWxkbid0IGVuYWJsZSBpdCB3aXRoIG11bHRpcGxlIHBpcGVzLCBidXQgaXQncyBhIHZl cnkgdmFndWUgd2F5IG9mCnNheWluZyB0aGF0IGZvciBzdXJlLgoKVGhlbiBpdCBnb2VzIG9uIHRv IHNheSBzb21ldGhpbmcgdGhhdCBpZiB5b3UgY2FuJ3QgZW5hYmxlIHdhdGVybWFyawpsZXZlbHMg d2l0aCBsYXRlbmN5Pj1TQUdWIGJsb2NrIHRpbWUsIHRoZW4geW91IHNob3VsZG4ndCBlbmFibGUg U0FHVgplaXRoZXIuIEkgd291bGQgaW50ZXJwcmV0IHRoYXQgc28gdGhhdCB5b3UgaGF2ZSB0byBo YXZlIHRvIGhhdmUKZW5hYmxlZCBhdCBsZWFzdCB0aGUgZmlyc3Qgd2F0ZXJtYXJrIGxldmVsIHdp dGggaGlnaGVyIGxhdGVuY3kgdGhhbgp0aGUgU0FHViBibG9jayB0aW1lLCBzaW5jZSB0aGF0IG1l YW5zIHRoZSBwbGFuZSBjYW4gdG9sZXJhdGUgYWxzbwp0aGUgU0FHViBibG9jayB0aW1lLgoKRWcu IG9uIG9uZSBTS0wgSSBoYXZlIHRoZSBmb2xsb3dpbmcgV00gbGF0ZW5jaWVzOgpXTTAgbGF0ZW5j eSAyICgyLjAgdXNlYykKV00xIGxhdGVuY3kgMTkgKDE5LjAgdXNlYykKV00yIGxhdGVuY3kgMjgg KDI4LjAgdXNlYykKV00zIGxhdGVuY3kgMzIgKDMyLjAgdXNlYykKV000IGxhdGVuY3kgNjMgKDYz LjAgdXNlYykKV001IGxhdGVuY3kgNzcgKDc3LjAgdXNlYykKV002IGxhdGVuY3kgODMgKDgzLjAg dXNlYykKV003IGxhdGVuY3kgOTkgKDk5LjAgdXNlYykKClNvIGlmIHdlIGNhbid0IGVuYWJsZSBX TTMgZm9yIGFsbCBvZiB0aGUgYWN0aXZlIHBsYW5lcywgdGhlbiB3ZSBzaG91bGQKbm90IGVuYWJs ZSBTQUdWLiBCdXQgaWYgYWxsIHBsYW5lcyBjYW4gZW5hYmxlIFdNMyBvciBoaWdoZXIsIHdlIGNh bgphbHNvIGVuYWJsZSBTQUdWLgoKQW55d2F5cywgZG9pbmcgaXQgYWxsIHByb3Blcmx5IHNlZW1z IGxpa2UgYSBiaXQgbW9yZSB3b3JrLCBzbyB3ZSBjYW4KZGVmaW5pdGVseSBsZWF2ZSBpdCBmb3Ig YSBmdXR1cmUgaW1wcm92ZW1lbnQuCgo+ICsJCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSAmJgo+ ICsJCSAgICBod2VpZ2h0MzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgPiAxKQo+ICsJCQlz a2xfZGlzYWJsZV9zYWd2KGRldl9wcml2KTsKPiArCj4gIAkJaW50ZWxfbW9kZXNldF92ZXJpZnlf ZGlzYWJsZWQoZGV2KTsKPiAgCX0KPiAgCj4gQEAgLTE0MjE1LDYgKzE0MjIzLDEwIEBAIHN0YXRp YyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gIAkJaW50ZWxfbW9kZXNldF92ZXJpZnlfY3J0YyhjcnRjLCBvbGRfY3J0Y19zdGF0 ZSwgY3J0Yy0+c3RhdGUpOwo+ICAJfQo+ICAKPiArCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSAm JiBpbnRlbF9zdGF0ZS0+bW9kZXNldCAmJgo+ICsJICAgIGh3ZWlnaHQzMihpbnRlbF9zdGF0ZS0+ YWN0aXZlX2NydGNzKSA8PSAxKQo+ICsJCXNrbF9lbmFibGVfc2FndihkZXZfcHJpdik7Cj4gKwo+ ICAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoc3RhdGUpOwo+ICAKPiAgCWlmIChp bnRlbF9zdGF0ZS0+bW9kZXNldCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDk1 MzlmMGUuLjc2ZTc4YjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0xNzIx LDYgKzE3MjEsOCBAQCB2b2lkIGlsa193bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIHZvaWQgc2tsX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPiAgdm9pZCBza2xfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAkJCSAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiIC8qIG91dCAq Lyk7Cj4gK2ludCBza2xfZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPiAraW50IHNrbF9kaXNhYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiAgdWludDMyX3QgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ICBib29sIGlsa19kaXNhYmxlX2xwX3dtKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBpbnQgc2FuaXRpemVfcmM2X29wdGlvbihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBlbmFibGVfcmM2KTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiBpbmRleCA4NzUyNzMwLi4wYTIwMjI2NCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYwo+IEBAIC0yODgzLDYgKzI4ODMsOTUgQEAgc2tsX3dtX3BsYW5lX2lkKGNvbnN0 IHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gIAl9Cj4gIH0KPiAgCj4gKy8qCj4gKyAqIFNB R1YgZHluYW1pY2FsbHkgYWRqdXN0cyB0aGUgc3lzdGVtIGFnZW50IHZvbHRhZ2UgYW5kIGNsb2Nr IGZyZXF1ZW5jaWVzCj4gKyAqIGRlcGVuZGluZyBvbiBwb3dlciBhbmQgcGVyZm9ybWFuY2UgcmVx dWlyZW1lbnRzLiBUaGUgZGlzcGxheSBlbmdpbmUgYWNjZXNzCj4gKyAqIHRvIHN5c3RlbSBtZW1v cnkgaXMgYmxvY2tlZCBkdXJpbmcgdGhlIGFkanVzdG1lbnQgdGltZS4gSGF2aW5nIHRoaXMgZW5h YmxlZAo+ICsgKiBpbiBtdWx0aS1waXBlIGNvbmZpZ3VyYXRpb25zIGNhbiBjYXVzZSBpc3N1ZXMg KHN1Y2ggYXMgdW5kZXJydW5zIGNhdXNpbmcKPiArICogZnVsbCBzeXN0ZW0gaGFuZ3MpLCBhbmQg dGhlIGJzcGVjIGFsc28gc3VnZ2VzdHMgdGhhdCBzb2Z0d2FyZSBkaXNhYmxlIGl0Cj4gKyAqIHdo ZW4gbW9yZSB0aGVuIG9uZSBwaXBlIGlzIGVuYWJsZWQuCj4gKyAqLwo+ICtpbnQKPiArc2tsX2Vu YWJsZV9zYWd2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJaW50 IHJldDsKPiArCj4gKwlpZiAoZGV2X3ByaXYtPnNrbF9zYWd2X3N0YXR1cyAmJgoKV2FzIHRoYXQg c3VwcG9zZWQgdG8gY2hlY2sgZm9yIE5PVF9DT05UUk9MTEVEPwoKPiArCSAgICBkZXZfcHJpdi0+ c2tsX3NhZ3Zfc3RhdHVzICE9IEk5MTVfU0tMX1NBR1ZfRElTQUJMRUQpCj4gKwkJcmV0dXJuIDA7 Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCURSTV9ERUJV R19LTVMoIkVuYWJsaW5nIHRoZSBTQUdWXG4iKTsKPiArCgpwcmludGsgY2FuIGJlIG91dHNpZGUg dGhlIG11dGV4LgoKPiArCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBH RU45X1BDT0RFX1NBR1ZfQ09OVFJPTCwKPiArCQkJCSAgICAgIEdFTjlfU0FHVl9EWU5BTUlDX0ZS RVEpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsKPiArCWlm ICghcmV0KSB7Cj4gKwkJZGV2X3ByaXYtPnNrbF9zYWd2X3N0YXR1cyA9IEk5MTVfU0tMX1NBR1Zf RU5BQkxFRDsKPiArCX0gZWxzZSBpZiAocmV0ID09IC1FSU5WQUwpIHsKPiArCQlEUk1fREVCVUdf RFJJVkVSKCJObyBTQUdWIGZvdW5kIG9uIHN5c3RlbSwgaWdub3JpbmdcbiIpOwo+ICsJCWRldl9w cml2LT5za2xfc2Fndl9zdGF0dXMgPSBJOTE1X1NLTF9TQUdWX05PVF9DT05UUk9MTEVEOwo+ICsJ CXJldCA9IDA7Cj4gKwl9IGVsc2Ugewo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGVuYWJsZSB0 aGUgU0FHVlxuIik7Cj4gKwl9Cj4gKwo+ICsJLyogV2UgZG9uJ3QgbmVlZCB0byB3YWl0IGZvciBT QUdWIHdoZW4gZW5hYmxpbmcgKi8KPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQKPiArc2tsX2RvX3NhZ3ZfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gK3sKPiArCWludCByZXQ7Cj4gKwl1aW50MzJfdCB0ZW1wID0gR0VOOV9TQUdWX0RJU0FC TEU7Cj4gKwo+ICsJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJpdiwgR0VOOV9Q Q09ERV9TQUdWX0NPTlRST0wsCj4gKwkJCQkgICAgICZ0ZW1wKTsKPiArCWlmIChyZXQpIHsKPiAr CQkvKgo+ICsJCSAqIFNvbWUgdmVyeSBlYXJseSBTa3lsYWtlIHN5c3RlbXMgZG9uJ3QgYWN0dWFs bHkgbGV0IHlvdQo+ICsJCSAqIGNvbnRyb2wgdGhlIFNBR1YsIHdoaWNoIGlzIG5vcm1hbC4KPiAr CQkgKi8KPiArCQlpZiAocmV0ICE9IC1FSU5WQUwpCj4gKwkJCURSTV9FUlJPUigiRmFpbGVkIHRv IGRpc2FibGUgdGhlIFNBR1ZcbiIpOwoKV2h5IGFyZSB3ZSBwcmludGluZyBlcnJvcnMgYm90aCBo ZXJlIGFuZCBpbiB0aGUgY2FsbGVyPwoKPiArCj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4g KwlyZXR1cm4gdGVtcCAmIEdFTjlfU0FHVl9JU19ESVNBQkxFRDsKPiArfQo+ICsKPiAraW50Cj4g K3NrbF9kaXNhYmxlX3NhZ3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7 Cj4gKwlpbnQgcmV0LCByZXN1bHQ7Cj4gKwo+ICsJaWYgKGRldl9wcml2LT5za2xfc2Fndl9zdGF0 dXMgJiYKCnNhbWUgcXVlc3Rpb24gYWJvdXQgTk9UX0NPTlRST0xMRUQKCj4gKwkgICAgZGV2X3By aXYtPnNrbF9zYWd2X3N0YXR1cyAhPSBJOTE1X1NLTF9TQUdWX0VOQUJMRUQpCj4gKwkJcmV0dXJu IDA7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCURSTV9E RUJVR19LTVMoIkRpc2FibGluZyB0aGUgU0FHVlxuIik7Cgp0aGlzIHByaW50ayBjYW4gbW92ZSB1 cCBhcyB3ZWxsCgo+ICsKPiArCS8qIGJzcGVjIHNheXMgdG8ga2VlcCByZXRyeWluZyBmb3IgYXQg bGVhc3QgMSBtcyAqLwo+ICsJcmV0ID0gd2FpdF9mb3IocmVzdWx0ID0gc2tsX2RvX3NhZ3ZfZGlz YWJsZShkZXZfcHJpdiksIDEpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xv Y2spOwo+ICsKPiArCWlmICghcmV0KSB7Cj4gKwkJZGV2X3ByaXYtPnNrbF9zYWd2X3N0YXR1cyA9 IEk5MTVfU0tMX1NBR1ZfRElTQUJMRUQ7Cj4gKwl9IGVsc2UgaWYgKHJldCA9PSAtRVRJTUVET1VU KSB7Cj4gKwkJRFJNX0VSUk9SKCJSZXF1ZXN0IHRvIGRpc2FibGUgU0FHViB0aW1lZCBvdXRcbiIp Owo+ICsJfSBlbHNlIGlmIChyZXN1bHQgPT0gLUVJTlZBTCkgewo+ICsJCURSTV9ERUJVR19EUklW RVIoIk5vIFNBR1YgZm91bmQgb24gc3lzdGVtLCBpZ25vcmluZ1xuIik7Cj4gKwkJZGV2X3ByaXYt PnNrbF9zYWd2X3N0YXR1cyA9IEk5MTVfU0tMX1NBR1ZfTk9UX0NPTlRST0xMRUQ7Cj4gKwkJcmV0 ID0gMDsKPiArCX0KClRoZSByZXQvcmVzdWx0IHRoaW5nIGhlcmUgbG9va3MgbWVzc3kuIE1heWJl IGRlYWwgd2l0aCAncmV0JyBmaXJzdCwKYW5kIHRoZSB3aXRoICdyZXN1bHQnOgoKaWYgKHJldCkg ewoJRFJNX0VSUk9SLi4uCglyZXR1cm4gcmV0Owp9Cgpzd2l0Y2ggKHJlc3VsdCkgewpjYXNlIC1F SU5WQUw6CgkuLi4KY2FzZSAwOgpjYXNlIDE6CgkuLi4KZGVmYXVsdDoKCS4uLgp9CgpvciB3aGF0 ZXZlciBhcmUgYWxsIHRoZSBkaWZmZXJlbnQgY2FzZXMgeW91IHdhbnQgdG8gZGlzdGluZ3Vpc2gu IE9yIGRpZApJIG1pc3Mgc29tZSBzdWJ0bGUgbG9naWMgaGVyZT8KCj4gKwo+ICsJcmV0dXJuIHJl dDsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9u X2xpbWl0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAtLSAKPiAyLjcuNAoKLS0gClZpbGxlIFN5cmrDpGzD pApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==