From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [v5,1/6] drm/i915/skl: Add support for the SAGV, fix underrun hangs Date: Tue, 2 Aug 2016 21:50:50 +0200 Message-ID: References: <1470163975-30467-2-git-send-email-cpaul@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470163975-30467-2-git-send-email-cpaul@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: cpaul@redhat.com, intel-gfx@lists.freedesktop.org, =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Maarten Lankhorst , Matt Roper Cc: Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Daniel Vetter , stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiAwOC8wMi8yMDE2IDA4OjUyIFBNLCBjcGF1bEByZWRoYXQuY29tIHdyb3RlOgo+IFNp bmNlIHRoZSB3YXRlcm1hcmsgY2FsY3VsYXRpb25zIGZvciBTa3lsYWtlIGFyZSBzdGlsbCBicm9r ZW4sIHdlJ3JlIGFwdAo+IHRvIGhpdHRpbmcgdW5kZXJydW5zIHZlcnkgZWFzaWx5IHVuZGVyIG11 bHRpLW1vbml0b3IgY29uZmlndXJhdGlvbnMuCj4gV2hpbGUgaXQgd291bGQgYmUgbG92ZWx5IGlm IHRoaXMgd2FzIGZpeGVkLCBpdCdzIG5vdC4gQW5vdGhlciBwcm9ibGVtCj4gdGhhdCdzIGJlZW4g Y29taW5nIGZyb20gdGhpcyBob3dldmVyLCBpcyB0aGUgbXlzdGVyaW91cyBpc3N1ZSBvZgo+IHVu ZGVycnVucyBjYXVzaW5nIGZ1bGwgc3lzdGVtIGhhbmdzLiBBbiBlYXN5IHdheSB0byByZXByb2R1 Y2UgdGhpcyB3aXRoCj4gYSBza3lsYWtlIHN5c3RlbToKPgo+IC0gR2V0IGEgbGFwdG9wIHdpdGgg YSBza3lsYWtlIEdQVSwgYW5kIGhvb2sgdXAgdHdvIGV4dGVybmFsIG1vbml0b3JzIHRvCj4gICBp dAo+IC0gTW92ZSB0aGUgY3Vyc29yIGZyb20gdGhlIGJ1aWx0LWluIExDRCB0byBvbmUgb2YgdGhl IGV4dGVybmFsIGRpc3BsYXlzCj4gICBhcyBxdWlja2x5IGFzIHlvdSBjYW4KPiAtIFlvdSdsbCBn ZXQgYSBmZXcgcGlwZSB1bmRlcnJ1bnMsIGFuZCBldmVudHVhbGx5IHRoZSBlbnRpcmUgc3lzdGVt IHdpbGwKPiAgIGp1c3QgZnJlZXplLgo+Cj4gQWZ0ZXIgZG9pbmcgYSBsb3Qgb2YgaW52ZXN0aWdh dGlvbiBhbmQgcmVhZGluZyB0aHJvdWdoIHRoZSBic3BlYywgSQo+IGZvdW5kIHRoZSBleGlzdGVu Y2Ugb2YgdGhlIFNBR1YsIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBhZGp1c3RpbmcgdGhlCj4g c3lzdGVtIGFnZW50IHZvbHRhZ2UgYW5kIGNsb2NrIGZyZXF1ZW5jaWVzIGRlcGVuZGluZyBvbiBo b3cgbXVjaCBwb3dlcgo+IHdlIG5lZWQuIEFjY29yZGluZyB0byB0aGUgYnNwZWM6Cj4KPiAiVGhl IGRpc3BsYXkgZW5naW5lIGFjY2VzcyB0byBzeXN0ZW0gbWVtb3J5IGlzIGJsb2NrZWQgZHVyaW5n IHRoZQo+ICBhZGp1c3RtZW50IHRpbWUuIFNBR1YgZGVmYXVsdHMgdG8gZW5hYmxlZC4gU29mdHdh cmUgbXVzdCB1c2UgdGhlCj4gIEdULWRyaXZlciBwY29kZSBtYWlsYm94IHRvIGRpc2FibGUgU0FH ViB3aGVuIHRoZSBkaXNwbGF5IGVuZ2luZSBpcyBub3QKPiAgYWJsZSB0byB0b2xlcmF0ZSB0aGUg YmxvY2tpbmcgdGltZS4iCj4KPiBUaGUgcmVzdCBvZiB0aGUgYnNwZWMgZ29lcyBvbiB0byBleHBs YWluIHRoYXQgc29mdHdhcmUgY2FuIHNpbXBseSBsZWF2ZQo+IHRoZSBTQUdWIGVuYWJsZWQsIGFu ZCBkaXNhYmxlIGl0IHdoZW4gd2UgdXNlIGludGVybGFjZWQgcGlwZXMvaGF2ZSBtb3JlCj4gdGhl biBvbmUgcGlwZSBhY3RpdmUuCj4KPiBTdXJlIGVub3VnaCwgd2l0aCB0aGlzIHBhdGNoc2V0IHRo ZSBzeXN0ZW0gaGFuZ3MgcmVzdWx0aW5nIGZyb20gcGlwZQo+IHVuZGVycnVucyBvbiBTa3lsYWtl IGhhdmUgY29tcGxldGVseSB2YW5pc2hlZCBvbiBteSBUNDYwcy4gQWRkaXRpb25hbGx5LAo+IHRo ZSBic3BlYyBtZW50aW9ucyB0dXJuaW5nIG9mZiB0aGUgU0FHVgl3aXRoIG1vcmUgdGhlbiBvbmUg cGlwZSBlbmFibGVkCj4gYXMgYSB3b3JrYXJvdW5kIGZvciBkaXNwbGF5IHVuZGVycnVucy4gV2hp bGUgdGhpcyBwYXRjaCBkb2Vzbid0IGVudGlyZWx5Cj4gZml4IHRoYXQsIGl0IGxvb2tzIGxpa2Ug aXQgZG9lcyBpbXByb3ZlIHRoZSBzaXR1YXRpb24gYSBsaXR0bGUgYml0IHNvCj4gaXQncyBsaWtl bHkgdGhpcyBpcyBnb2luZyB0byBiZSByZXF1aXJlZCB0byBtYWtlIHdhdGVybWFya3Mgb24gU2t5 bGFrZQo+IGZ1bGx5IGZ1bmN0aW9uYWwuCj4KPiBDaGFuZ2VzIHNpbmNlIHY1Ogo+ICAtIERvbid0 IHVzZSBpc19wb3dlcl9vZl8yLiBNYWtlcyB0aGluZ3MgY29uZnVzaW5nCj4gIC0gRG9uJ3QgdXNl IHRoZSBvbGQgc3RhdGUgdG8gZmlndXJlIG91dCB3aGV0aGVyIG9yIG5vdCB0bwo+ICAgIGVuYWJs ZS9kaXNhYmxlIHRoZSBzYWd2LCB1c2UgdGhlIG5ldyBvbmUKPiAgLSBTcGxpdCB0aGUgbG9vcCBp biBza2xfZGlzYWJsZV9zYWd2IGludG8gaXQncyBvd24gZnVuY3Rpb24KPiBDaGFuZ2VzIHNpbmNl IHY0Ogo+ICAtIFVzZSBpc19wb3dlcl9vZl8yIGFnYWluc3QgYWN0aXZlX2NydGNzIHRvIGNoZWNr IHdoZXRoZXIgd2UgaGF2ZSA+IDEKPiAgICBwaXBlIGVuYWJsZWQKPiAgLSBGaXggc2tsX3NhZ3Zf Z2V0X2h3X3N0YXRlKCk6ICh0ZW1wICYgMHgxKSBpbmRpY2F0ZXMgZGlzYWJsZWQsIDB4MAo+ICAg IGVuYWJsZWQKPiAgLSBDYWxsIHNrbF9zYWd2X2VuYWJsZS9kaXNhYmxlKCkgZnJvbSBwcmUvcG9z dC1wbGFuZSB1cGRhdGVzCj4gQ2hhbmdlcyBzaW5jZSB2MzoKPiAgLSBVc2UgdGltZV9iZWZvcmUo KSB0byBjb21wYXJlIHRpbWVvdXQgdG8gamlmZmllcwo+IENoYW5nZXMgc2luY2UgdjI6Cj4gIC0g UmVhbGx5IGFwcGx5IG1pbm9yIHN0eWxlIG5pdHBpY2tzIHRvIHBhdGNoIHRoaXMgdGltZQo+IENo YW5nZXMgc2luY2UgdjE6Cj4gIC0gQWRkZWQgY29tbWVudHMgYWJvdXQgdGhpcyBwcm9iYWJseSBi ZWluZyBvbmUgb2YgdGhlIHJlcXVpcmVtZW50cyB0bwo+ICAgIGZpeGluZyBTa3lsYWtlJ3Mgd2F0 ZXJtYXJrIGlzc3Vlcwo+ICAtIE1pbm9yIHN0eWxlIG5pdHBpY2tzIGZyb20gTWF0dCBSb3Blcgo+ ICAtIERpc2FibGUgdGhlc2UgZnVuY3Rpb25zIG9uIEJyb3h0b24sIHNpbmNlIGl0IGRvZXNuJ3Qg aGF2ZSBhbiBTQUdWCj4KPiBSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVy QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSA8Y3BhdWxAcmVkaGF0LmNvbT4KPiBD YzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBDYzogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogc3RhYmxlQHZnZXIu a2VybmVsLm9yZwo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg fCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAgIDUgKysK PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDEyICsrKysKPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgMTEyICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKykKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDY1YWRhNWQuLjg3MDE4ZDMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTk2Miw2ICsxOTYyLDggQEAgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgewo+ICAJc3RydWN0IGk5MTVfc3VzcGVuZF9zYXZlZF9yZWdpc3RlcnMgcmVnZmlsZTsK PiAgCXN0cnVjdCB2bHZfczBpeF9zdGF0ZSB2bHZfczBpeF9zdGF0ZTsKPgo+ICsJYm9vbCBza2xf c2Fndl9lbmFibGVkOwo+ICsKPiAgCXN0cnVjdCB7Cj4gIAkJLyoKPiAgCQkgKiBSYXcgd2F0ZXJt YXJrIGxhdGVuY3kgdmFsdWVzOgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDJmOTNk NGEuLjVmYjFjNjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNzE3MCw2ICs3 MTcwLDExIEBAIGVudW0gewo+ICAjZGVmaW5lICAgSFNXX1BDT0RFX0RFX1dSSVRFX0ZSRVFfUkVR CQkweDE3Cj4gICNkZWZpbmUgICBESVNQTEFZX0lQU19DT05UUk9MCQkJMHgxOQo+ICAjZGVmaW5l CSAgSFNXX1BDT0RFX0RZTkFNSUNfRFVUWV9DWUNMRV9DT05UUk9MCTB4MUEKPiArI2RlZmluZSAg IEdFTjlfUENPREVfU0FHVl9DT05UUk9MCQkweDIxCj4gKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9E SVNBQkxFCQkJMHgwCj4gKyNkZWZpbmUgICAgIEdFTjlfU0FHVl9MT1dfRlJFUQkJCTB4MQo+ICsj ZGVmaW5lICAgICBHRU45X1NBR1ZfSElHSF9GUkVRCQkJMHgyCj4gKyNkZWZpbmUgICAgIEdFTjlf U0FHVl9EWU5BTUlDX0ZSRVEgICAgICAgICAgICAgIDB4Mwo+ICAjZGVmaW5lIEdFTjZfUENPREVf REFUQQkJCQlfTU1JTygweDEzODEyOCkKPiAgI2RlZmluZSAgIEdFTjZfUENPREVfRlJFUV9JQV9S QVRJT19TSElGVAk4Cj4gICNkZWZpbmUgICBHRU42X1BDT0RFX0ZSRVFfUklOR19SQVRJT19TSElG VAkxNgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBhOGU4Y2M4Li43 NmJhNzlmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC00NTY1 LDYgKzQ1NjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcgPQo+ICAJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5z dGF0ZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1 Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+YmFzZS5wcmltYXJ5Owo+ICAJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqb2xkX3ByaV9zdGF0ZSA9Cj4gIAkJZHJtX2F0b21pY19nZXRfZXhpc3Rp bmdfcGxhbmVfc3RhdGUob2xkX3N0YXRlLCBwcmltYXJ5KTsKPiBAQCAtNDU4OSw2ICs0NTkwLDkg QEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICAJCSAgICAgIW9sZF9wcmltYXJ5X3N0YXRlLT52aXNp YmxlKSkKPiAgCQkJaW50ZWxfcG9zdF9lbmFibGVfcHJpbWFyeSgmY3J0Yy0+YmFzZSk7Cj4gIAl9 Cj4gKwo+ICsJaWYgKGh3ZWlnaHQzMihkZXZfcHJpdi0+YWN0aXZlX2NydGNzKSA8PSAxKQo+ICsJ CXNrbF9lbmFibGVfc2FndihkZXZfcHJpdik7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZCBpbnRlbF9w cmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkK PiBAQCAtNDY0OSw2ICs0NjUzLDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91cGRh dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ICAJfQo+Cj4gIAkv Kgo+ICsJICogU0tMIHdvcmthcm91bmQ6IGJzcGVjIHJlY29tbWVuZHMgd2UgZGlzYWJsZSB0aGUg U0FHViB3aGVuIHdlIGhhdmUKPiArCSAqIG1vcmUgdGhlbiBvbmUgcGlwZSBlbmFibGVkCj4gKwkg Ki8KPiArCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUgJiYKPiArCSAgICBod2VpZ2h0MzIo ZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyB8IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpKSA+IDEp Cj4gKwkJc2tsX2Rpc2FibGVfc2FndihkZXZfcHJpdik7Cj4gKwo+ICsJLyoKCldoeSB8IGRybV9j cnRjX21hc2s/IEFsc28gaWYgaXQgaXMgYSBtYXNrIEkgd291bGQgZXhwZWN0ICYgbm90IHwgPgpM YXN0IHdoeSBhcmUgeW91IHVzaW5nIGRybV9jcnRjX21hc2sgaGVyZSBhbmQgbm90IGluIHBvc3Rf cGxhbmVfdXBkYXRlID8KClJlZ2FyZHMsCgpIYW5zCgoKCgo+ICAJICogSWYgd2UncmUgZG9pbmcg YSBtb2Rlc2V0LCB3ZSdyZSBkb25lLiAgTm8gbmVlZCB0byBkbyBhbnkgcHJlLXZibGFuawo+ICAJ ICogd2F0ZXJtYXJrIHByb2dyYW1taW5nIGhlcmUuCj4gIAkgKi8KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IGluZGV4IDUwY2RjODkuLjZiMDUzMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IEBAIC0xNzA5LDYgKzE3MDksOCBAQCB2b2lkIGlsa193bV9nZXRfaHdfc3RhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgc2tsX3dtX2dldF9od19zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgdm9pZCBza2xfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgc3RydWN0IHNrbF9kZGJfYWxsb2Nh dGlvbiAqZGRiIC8qIG91dCAqLyk7Cj4gK2ludCBza2xfZW5hYmxlX3NhZ3Yoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAraW50IHNrbF9kaXNhYmxlX3NhZ3Yoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdWludDMyX3QgaWxrX3BpcGVfcGl4ZWxfcmF0 ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ICBib29sIGls a19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBpbnQgc2FuaXRpemVf cmM2X29wdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBlbmFibGVf cmM2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCBmNjEwYjcxLi42ODcyMWE1IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTI4ODQsNiArMjg4NCwxMTYgQEAgc2ts X3dtX3BsYW5lX2lkKGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gIH0KPgo+ICBz dGF0aWMgdm9pZAo+ICtza2xfc2Fndl9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICt7Cj4gKwl1MzIgdGVtcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICsJCXJldHVybjsKPiArCj4gKwltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChk ZXZfcHJpdiwgR0VOOV9QQ09ERV9TQUdWX0NPTlRST0wsICZ0ZW1wKTsKPiArCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCj4gKwlpZiAoIXJldCkgewo+ICsJCWRldl9w cml2LT5za2xfc2Fndl9lbmFibGVkID0gISh0ZW1wICYgMHgxKTsKPiArCX0gZWxzZSB7Cj4gKwkJ LyoKPiArCQkgKiBJZiBmb3Igc29tZSByZWFzb24gd2UgY2FuJ3QgYWNjZXNzIHRoZSBTQUdWIHN0 YXRlLCBmb2xsb3cKPiArCQkgKiB0aGUgYnNwZWMgYW5kIGFzc3VtZSBpdCdzIGVuYWJsZWQKPiAr CQkgKi8KPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgU0FHViBzdGF0ZSwgYXNzdW1pbmcg ZW5hYmxlZFxuIik7Cj4gKwkJZGV2X3ByaXYtPnNrbF9zYWd2X2VuYWJsZWQgPSB0cnVlOwo+ICsJ fQo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBTQUdWIGR5bmFtaWNhbGx5IGFkanVzdHMgdGhlIHN5c3Rl bSBhZ2VudCB2b2x0YWdlIGFuZCBjbG9jayBmcmVxdWVuY2llcwo+ICsgKiBkZXBlbmRpbmcgb24g cG93ZXIgYW5kIHBlcmZvcm1hbmNlIHJlcXVpcmVtZW50cy4gVGhlIGRpc3BsYXkgZW5naW5lIGFj Y2Vzcwo+ICsgKiB0byBzeXN0ZW0gbWVtb3J5IGlzIGJsb2NrZWQgZHVyaW5nIHRoZSBhZGp1c3Rt ZW50IHRpbWUuIEhhdmluZyB0aGlzIGVuYWJsZWQKPiArICogaW4gbXVsdGktcGlwZSBjb25maWd1 cmF0aW9ucyBjYW4gY2F1c2UgaXNzdWVzIChzdWNoIGFzIHVuZGVycnVucyBjYXVzaW5nCj4gKyAq IGZ1bGwgc3lzdGVtIGhhbmdzKSwgYW5kIHRoZSBic3BlYyBhbHNvIHN1Z2dlc3RzIHRoYXQgc29m dHdhcmUgZGlzYWJsZSBpdAo+ICsgKiB3aGVuIG1vcmUgdGhlbiBvbmUgcGlwZSBpcyBlbmFibGVk Lgo+ICsgKi8KPiAraW50Cj4gK3NrbF9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKQo+ICsJCXJldHVybiAwOwo+ICsJaWYgKGRldl9wcml2LT5za2xfc2Fndl9lbmFibGVk KQo+ICsJCXJldHVybiAwOwo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9j ayk7Cj4gKwlEUk1fREVCVUdfS01TKCJFbmFibGluZyB0aGUgU0FHVlxuIik7Cj4gKwo+ICsJcmV0 ID0gc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FHVl9DT05U Uk9MLAo+ICsJCQkJICAgICAgR0VOOV9TQUdWX0RZTkFNSUNfRlJFUSk7Cj4gKwlpZiAoIXJldCkK PiArCQlkZXZfcHJpdi0+c2tsX3NhZ3ZfZW5hYmxlZCA9IHRydWU7Cj4gKwllbHNlCj4gKwkJRFJN X0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIHRoZSBTQUdWXG4iKTsKPiArCj4gKwkvKiBXZSBkb24n dCBuZWVkIHRvIHdhaXQgZm9yIFNBR1Ygd2hlbiBlbmFibGluZyAqLwo+ICsJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3Rh dGljIGludAo+ICtza2xfZG9fc2Fndl9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiArewo+ICsJaW50IHJldDsKPiArCXVpbnQzMl90IHRlbXA7Cj4gKwo+ICsJcmV0 ID0gc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIEdFTjlfUENPREVfU0FHVl9DT05U Uk9MLAo+ICsJCQkJICAgICAgR0VOOV9TQUdWX0RJU0FCTEUpOwo+ICsJaWYgKHJldCkgewo+ICsJ CURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUgdGhlIFNBR1ZcbiIpOwo+ICsJCXJldHVybiBy ZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChkZXZfcHJpdiwg R0VOOV9QQ09ERV9TQUdWX0NPTlRST0wsCj4gKwkJCQkgICAgICZ0ZW1wKTsKPiArCWlmIChyZXQp IHsKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBjaGVjayB0aGUgc3RhdHVzIG9mIHRoZSBTQUdW XG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiB0ZW1wICYgMHgxOwo+ ICt9Cj4gKwo+ICtpbnQKPiArc2tsX2Rpc2FibGVfc2FndihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWludCByZXQsIHJlc3VsdDsKPiArCj4gKwlpZiAoSVNfQlJP WFRPTihkZXZfcHJpdikpCj4gKwkJcmV0dXJuIDA7Cj4gKwlpZiAoIWRldl9wcml2LT5za2xfc2Fn dl9lbmFibGVkKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5y cHMuaHdfbG9jayk7Cj4gKwlEUk1fREVCVUdfS01TKCJEaXNhYmxpbmcgdGhlIFNBR1ZcbiIpOwo+ ICsKPiArCS8qIGJzcGVjIHNheXMgdG8ga2VlcCByZXRyeWluZyBmb3IgYXQgbGVhc3QgMSBtcyAq Lwo+ICsJcmV0ID0gd2FpdF9mb3IocmVzdWx0ID0gc2tsX2RvX3NhZ3ZfZGlzYWJsZShkZXZfcHJp diksIDEpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsKPiAr CWlmIChyZXQgPT0gLUVUSU1FRE9VVCkKPiArCQlEUk1fRVJST1IoIlJlcXVlc3QgdG8gZGlzYWJs ZSBTQUdWIHRpbWVkIG91dFxuIik7Cj4gKwllbHNlIHsKPiArCQlpZiAocmVzdWx0ID09IDEpCj4g KwkJCWRldl9wcml2LT5za2xfc2Fndl9lbmFibGVkID0gZmFsc2U7Cj4gKwo+ICsJCXJldCA9IHJl c3VsdDsKPiArCX0KPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ ICBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIAkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJ CQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jLCAvKiBvdXQgKi8KPiBAQCAtNDIzNiw2 ICs0MzQ2LDggQEAgdm9pZCBza2xfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gIAkJLyogRWFzeS9jb21tb24gY2FzZTsganVzdCBzYW5pdGl6ZSBEREIgbm93IGlmIGV2 ZXJ5dGhpbmcgb2ZmICovCj4gIAkJbWVtc2V0KGRkYiwgMCwgc2l6ZW9mKCpkZGIpKTsKPiAgCX0K PiArCj4gKwlza2xfc2Fndl9nZXRfaHdfc3RhdGUoZGV2X3ByaXYpOwo+ICB9Cj4KPiAgc3RhdGlj IHZvaWQgaWxrX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK