From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 4/7] drm/i915: Move load time display/audio callback init earlier Date: Fri, 11 Mar 2016 16:17:30 +0200 Message-ID: <1457705850.20248.3.camel@intel.com> References: <1457537506-12455-1-git-send-email-imre.deak@intel.com> <1457537506-12455-5-git-send-email-imre.deak@intel.com> <87r3fhnmgc.fsf@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id B4F436EADA for ; Fri, 11 Mar 2016 14:17:41 +0000 (UTC) In-Reply-To: <87r3fhnmgc.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gcGUsIDIwMTYtMDMtMTEgYXQgMTY6MDAgKzAyMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+IE9u IFdlZCwgMDkgTWFyIDIwMTYsIEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4gd3JvdGU6 Cj4gPiBBbGwgb2YgdGhpcyBpcyBTVyBvbmx5IGluaXRpYWxpemF0aW9uIHNvIHdlIGNhbiBtb3Zl IHRoZW0gZWFybGllci4KPiA+IE1vdmUKPiA+IHRoZSBtdXRleCBpbml0IHdoZXJlIHRoZSByZXN0 IG9mIHRoZSBsb2NrcyBhcmUgaW5pdGVkLiBXaGlsZSBhdCBpdAo+ID4gYWxzbwo+ID4gY29udmVy dCBkZXYgdG8gZGV2X3ByaXYuCj4gCj4gQmlrZXNoZWRkaW5nIG9uIHRoaXMgcGF0Y2ggYW5kIHRo ZSBuZXh0OiBJIGRvbid0IHRoaW5rIHRoZSBmdW5jdGlvbgo+IHBvaW50ZXJzIGFyZSAqY2FsbGJh Y2tzKiBpbiBhbnkgd2F5LiBUaGVyZSdzIG5vICJjYWxsIGJhY2siLiBNYXliZQo+ICJob29rcyI/ CgpZZWEsIGNhbGxiYWNrIGlzbid0IGEgY29ycmVjdCB0ZXJtIGhlcmUuIEkgaGF2ZSBubyBwcmVm ZXJlbmNlIGZvciBhbgphbHRlcm5hdGl2ZSwgSSBjYW4gcmVuYW1lIGl0IHRvIGhvb2tzIGJvdGgg aGVyZSBhbmQgdGhlIG5leHQgcGF0Y2guCgotLUltcmUKCj4gCj4gQlIsCj4gSmFuaS4KPiAKPiAK PiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ ID4gLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmPCoMKgwqDCoMKgwqB8 wqDCoDMgKysKPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uY8KgwqDCoHwg MTIgKysrLS0tCj4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDc3 ICsrKysrKysrKysrKysrKystLS0tLS0KPiA+IC0tLS0tLS0tLS0tLS0tCj4gPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqDCoHzCoMKgMyArLQo+ID4gwqA0IGZpbGVz IGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gPiBpbmRleCA5YjNlZDAwLi41NWIwYzYyIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+ID4gQEAgLTEwMTYsNiArMTAxNiw3IEBAIGludCBp OTE1X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiB1bnNpZ25lZCBsb25n IGZsYWdzKQo+ID4gwqAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9sb2Nr KTsKPiA+IMKgCW11dGV4X2luaXQoJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiDCoAltdXRleF9p bml0KCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwo+ID4gKwltdXRleF9pbml0KCZkZXZfcHJpdi0+ cHBzX211dGV4KTsKPiA+IMKgCj4gPiDCoAlyZXQgPSBpOTE1X3dvcmtxdWV1ZXNfaW5pdChkZXZf cHJpdik7Cj4gPiDCoAlpZiAocmV0IDwgMCkKPiA+IEBAIC0xMDI4LDYgKzEwMjksOCBAQCBpbnQg aTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gdW5zaWduZWQgbG9u ZyBmbGFncykKPiA+IMKgCWludGVsX2luaXRfZHBpbyhkZXZfcHJpdik7Cj4gPiDCoAlpbnRlbF9w b3dlcl9kb21haW5zX2luaXQoZGV2X3ByaXYpOwo+ID4gwqAJaW50ZWxfaXJxX2luaXQoZGV2X3By aXYpOwo+ID4gKwlpbnRlbF9pbml0X2Rpc3BsYXlfY2FsbGJhY2tzKGRldl9wcml2KTsKPiA+ICsJ aW50ZWxfaW5pdF9hdWRpb19jYWxsYmFja3MoZGV2X3ByaXYpOwo+ID4gwqAKPiA+IMKgCWludGVs X3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiA+IMKgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdWRpby5jCj4gPiBpbmRleCAzMGY5MjE0Li4xOTM2NzUyIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gQEAgLTU2NywyMCArNTY3LDE4IEBAIHZvaWQgaW50 ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QKPiA+IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIpCj4gPiDCoCAqIGludGVsX2luaXRfYXVkaW8gLSBTZXQgdXAgY2hpcCBzcGVjaWZpYyBh dWRpbyBmdW5jdGlvbnMKPiA+IMKgICogQGRldjogZHJtIGRldmljZQo+ID4gwqAgKi8KPiA+IC12 b2lkIGludGVsX2luaXRfYXVkaW8oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICt2b2lkIGlu dGVsX2luaXRfYXVkaW9fY2FsbGJhY2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiA+IMKgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ID4gLQo+ID4gLQlpZiAoSVNfRzRYKGRldikpIHsKPiA+ICsJaWYgKElT X0c0WChkZXZfcHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19l bmFibGUgPQo+ID4gZzR4X2F1ZGlvX2NvZGVjX2VuYWJsZTsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlz cGxheS5hdWRpb19jb2RlY19kaXNhYmxlID0KPiA+IGc0eF9hdWRpb19jb2RlY19kaXNhYmxlOwo+ ID4gLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikp IHsKPiA+ICsJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fAo+ID4gSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2Rl Y19lbmFibGUgPQo+ID4gaWxrX2F1ZGlvX2NvZGVjX2VuYWJsZTsKPiA+IMKgCQlkZXZfcHJpdi0+ ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlID0KPiA+IGlsa19hdWRpb19jb2RlY19kaXNhYmxl Owo+ID4gLQl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJTlRFTF9JTkZPKGRldiktPmdl biA+PSA4KSB7Cj4gPiArCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSU5URUxf SU5GTyhkZXZfcHJpdiktCj4gPiA+Z2VuID49IDgpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxh eS5hdWRpb19jb2RlY19lbmFibGUgPQo+ID4gaHN3X2F1ZGlvX2NvZGVjX2VuYWJsZTsKPiA+IMKg CQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlID0KPiA+IGhzd19hdWRpb19j b2RlY19kaXNhYmxlOwo+ID4gLQl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewo+ID4g Kwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7Cj4gPiDCoAkJZGV2X3ByaXYt PmRpc3BsYXkuYXVkaW9fY29kZWNfZW5hYmxlID0KPiA+IGlsa19hdWRpb19jb2RlY19lbmFibGU7 Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZSA9Cj4gPiBpbGtf YXVkaW9fY29kZWNfZGlzYWJsZTsKPiA+IMKgCX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gPiBpbmRleCA2MmQzNmE3Li41MTcwNzE4IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0xNTA5NSwyMiArMTUwOTUsMjAgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MKPiA+IGludGVsX21vZGVf ZnVuY3MgPSB7Cj4gPiDCoH07Cj4gPiDCoAo+ID4gwqAvKiBTZXQgdXAgY2hpcCBzcGVjaWZpYyBk aXNwbGF5IGZ1bmN0aW9ucyAqLwo+ID4gLXN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxheShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gK3ZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5X2NhbGxi YWNrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gKmRldl9wcml2KQo+ID4gwqB7Cj4gPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g PiAtCj4gPiAtCWlmIChIQVNfUENIX1NQTElUKGRldikgfHwgSVNfRzRYKGRldikpCj4gPiArCWlm IChIQVNfUENIX1NQTElUKGRldl9wcml2KSB8fCBJU19HNFgoZGV2X3ByaXYpKQo+ID4gwqAJCWRl dl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbCA9IGc0eF9maW5kX2Jlc3RfZHBsbDsKPiA+IC0JZWxz ZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ID4gKwllbHNlIGlmIChJU19DSEVSUllWSUVXKGRl dl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5maW5kX2RwbGwgPSBjaHZfZmluZF9i ZXN0X2RwbGw7Cj4gPiAtCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPiA+ICsJZWxzZSBp ZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZmlu ZF9kcGxsID0gdmx2X2ZpbmRfYmVzdF9kcGxsOwo+ID4gLQllbHNlIGlmIChJU19QSU5FVklFVyhk ZXYpKQo+ID4gKwllbHNlIGlmIChJU19QSU5FVklFVyhkZXZfcHJpdikpCj4gPiDCoAkJZGV2X3By aXYtPmRpc3BsYXkuZmluZF9kcGxsID0gcG52X2ZpbmRfYmVzdF9kcGxsOwo+ID4gwqAJZWxzZQo+ ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmZpbmRfZHBsbCA9IGk5eHhfZmluZF9iZXN0X2RwbGw7 Cj4gPiDCoAo+ID4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+ID4gKwlpZiAo SU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA+PSA5KSB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3Bs YXkuZ2V0X3BpcGVfY29uZmlnID0KPiA+IGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnOwo+ID4gwqAJ CWRldl9wcml2LT5kaXNwbGF5LmdldF9pbml0aWFsX3BsYW5lX2NvbmZpZyA9Cj4gPiDCoAkJCXNr eWxha2VfZ2V0X2luaXRpYWxfcGxhbmVfY29uZmlnOwo+ID4gQEAgLTE1MTE4LDcgKzE1MTE2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5KHN0cnVjdAo+ID4gZHJtX2RldmljZSAq ZGV2KQo+ID4gwqAJCQloYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jazsKPiA+IMKgCQlkZXZfcHJp di0+ZGlzcGxheS5jcnRjX2VuYWJsZSA9Cj4gPiBoYXN3ZWxsX2NydGNfZW5hYmxlOwo+ID4gwqAJ CWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJsZSA9Cj4gPiBoYXN3ZWxsX2NydGNfZGlzYWJs ZTsKPiA+IC0JfSBlbHNlIGlmIChIQVNfRERJKGRldikpIHsKPiA+ICsJfSBlbHNlIGlmIChIQVNf RERJKGRldl9wcml2KSkgewo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZp ZyA9Cj4gPiBoYXN3ZWxsX2dldF9waXBlX2NvbmZpZzsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcgPQo+ID4gwqAJCQlpcm9ubGFrZV9nZXRfaW5pdGlh bF9wbGFuZV9jb25maWc7Cj4gPiBAQCAtMTUxMjYsNyArMTUxMjQsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9pbml0X2Rpc3BsYXkoc3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYpCj4gPiDCoAkJCWhh c3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmNydGNf ZW5hYmxlID0KPiA+IGhhc3dlbGxfY3J0Y19lbmFibGU7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3Bs YXkuY3J0Y19kaXNhYmxlID0KPiA+IGhhc3dlbGxfY3J0Y19kaXNhYmxlOwo+ID4gLQl9IGVsc2Ug aWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewo+ID4gKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQo ZGV2X3ByaXYpKSB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnID0K PiA+IGlyb25sYWtlX2dldF9waXBlX2NvbmZpZzsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5n ZXRfaW5pdGlhbF9wbGFuZV9jb25maWcgPQo+ID4gwqAJCQlpcm9ubGFrZV9nZXRfaW5pdGlhbF9w bGFuZV9jb25maWc7Cj4gPiBAQCAtMTUxMzQsNyArMTUxMzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9pbml0X2Rpc3BsYXkoc3RydWN0Cj4gPiBkcm1fZGV2aWNlICpkZXYpCj4gPiDCoAkJCWlyb25s YWtlX2NydGNfY29tcHV0ZV9jbG9jazsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2Vu YWJsZSA9Cj4gPiBpcm9ubGFrZV9jcnRjX2VuYWJsZTsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxh eS5jcnRjX2Rpc2FibGUgPQo+ID4gaXJvbmxha2VfY3J0Y19kaXNhYmxlOwo+ID4gLQl9IGVsc2Ug aWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKPiA+ICsJfSBl bHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fAo+ID4gSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpIHsKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcgPQo+ID4g aTl4eF9nZXRfcGlwZV9jb25maWc7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2luaXRp YWxfcGxhbmVfY29uZmlnID0KPiA+IMKgCQkJaTl4eF9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWc7 Cj4gPiBAQCAtMTUxNTEsODkgKzE1MTQ5LDg5IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlz cGxheShzdHJ1Y3QKPiA+IGRybV9kZXZpY2UgKmRldikKPiA+IMKgCX0KPiA+IMKgCj4gPiDCoAkv KiBSZXR1cm5zIHRoZSBjb3JlIGRpc3BsYXkgY2xvY2sgc3BlZWQgKi8KPiA+IC0JaWYgKElTX1NL WUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKQo+ID4gKwlpZiAoSVNfU0tZTEFLRShkZXZf cHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5 LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJc2t5bGFrZV9nZXRfZGlzcGxheV9j bG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+ID4gKwllbHNlIGlm IChJU19CUk9YVE9OKGRldl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlz cGxheV9jbG9ja19zcGVlZCA9Cj4gPiDCoAkJCWJyb3h0b25fZ2V0X2Rpc3BsYXlfY2xvY2tfc3Bl ZWQ7Cj4gPiAtCWVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKQo+ID4gKwllbHNlIGlmIChJU19C Uk9BRFdFTEwoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJYnJvYWR3ZWxsX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVk Owo+ID4gLQllbHNlIGlmIChJU19IQVNXRUxMKGRldikpCj4gPiArCWVsc2UgaWYgKElTX0hBU1dF TEwoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2Nr X3NwZWVkID0KPiA+IMKgCQkJaGFzd2VsbF9nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0J ZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiA+ICsJ ZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwKPiA+IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVk ID0KPiA+IMKgCQkJdmFsbGV5dmlld19nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxz ZSBpZiAoSVNfR0VONShkZXYpKQo+ID4gKwllbHNlIGlmIChJU19HRU41KGRldl9wcml2KSkKPiA+ IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZCA9Cj4gPiDCoAkJ CWlsa19nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAoSVNfSTk0NUcoZGV2 KSB8fCBJU19CUk9BRFdBVEVSKGRldikgfHwKPiA+IC0JCcKgSVNfR0VONihkZXYpIHx8IElTX0lW WUJSSURHRShkZXYpKQo+ID4gKwllbHNlIGlmIChJU19JOTQ1RyhkZXZfcHJpdikgfHwgSVNfQlJP QURXQVRFUihkZXZfcHJpdikgfHwKPiA+ICsJCcKgSVNfR0VONihkZXZfcHJpdikgfHwgSVNfSVZZ QlJJREdFKGRldl9wcml2KSkKPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9j bG9ja19zcGVlZCA9Cj4gPiDCoAkJCWk5NDVfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQ7Cj4gPiAt CWVsc2UgaWYgKElTX0dNNDUoZGV2KSkKPiA+ICsJZWxzZSBpZiAoSVNfR000NShkZXZfcHJpdikp Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4g wqAJCQlnbTQ1X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19DUkVT VExJTkUoZGV2KSkKPiA+ICsJZWxzZSBpZiAoSVNfQ1JFU1RMSU5FKGRldl9wcml2KSkKPiA+IMKg CQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZCA9Cj4gPiDCoAkJCWk5 NjVnbV9nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+IC0JZWxzZSBpZiAoSVNfUElORVZJRVco ZGV2KSkKPiA+ICsJZWxzZSBpZiAoSVNfUElORVZJRVcoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9w cml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJcG52X2dldF9k aXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19HMzMoZGV2KSB8fCBJU19HNFgo ZGV2KSkKPiA+ICsJZWxzZSBpZiAoSVNfRzMzKGRldl9wcml2KSB8fCBJU19HNFgoZGV2X3ByaXYp KQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+ IMKgCQkJZzMzX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JOTE1 RyhkZXYpKQo+ID4gKwllbHNlIGlmIChJU19JOTE1RyhkZXZfcHJpdikpCj4gPiDCoAkJZGV2X3By aXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4gwqAJCQlpOTE1X2dldF9k aXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JOTQ1R00oZGV2KSB8fCBJU184 NDVHKGRldikpCj4gPiArCWVsc2UgaWYgKElTX0k5NDVHTShkZXZfcHJpdikgfHwgSVNfODQ1Ryhk ZXZfcHJpdikpCj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3Bl ZWQgPQo+ID4gwqAJCQlpOXh4X21pc2NfZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQ7Cj4gPiAtCWVs c2UgaWYgKElTX0k5MTVHTShkZXYpKQo+ID4gKwllbHNlIGlmIChJU19JOTE1R00oZGV2X3ByaXYp KQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+ IMKgCQkJaTkxNWdtX2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19J ODY1RyhkZXYpKQo+ID4gKwllbHNlIGlmIChJU19JODY1RyhkZXZfcHJpdikpCj4gPiDCoAkJZGV2 X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQgPQo+ID4gwqAJCQlpODY1X2dl dF9kaXNwbGF5X2Nsb2NrX3NwZWVkOwo+ID4gLQllbHNlIGlmIChJU19JODVYKGRldikpCj4gPiAr CWVsc2UgaWYgKElTX0k4NVgoZGV2X3ByaXYpKQo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5Lmdl dF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJaTg1eF9nZXRfZGlzcGxheV9jbG9ja19z cGVlZDsKPiA+IMKgCWVsc2UgeyAvKiA4MzAgKi8KPiA+IC0JCVdBUk4oIUlTX0k4MzAoZGV2KSwg IlVua25vd24gcGxhdGZvcm0uIEFzc3VtaW5nCj4gPiAxMzMgTUh6IENEQ0xLXG4iKTsKPiA+ICsJ CVdBUk4oIUlTX0k4MzAoZGV2X3ByaXYpLCAiVW5rbm93biBwbGF0Zm9ybS4KPiA+IEFzc3VtaW5n IDEzMyBNSHogQ0RDTEtcbiIpOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5 X2Nsb2NrX3NwZWVkID0KPiA+IMKgCQkJaTgzMF9nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiA+ IMKgCX0KPiA+IMKgCj4gPiAtCWlmIChJU19HRU41KGRldikpIHsKPiA+ICsJaWYgKElTX0dFTjUo ZGV2X3ByaXYpKSB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPQo+ ID4gaXJvbmxha2VfZmRpX2xpbmtfdHJhaW47Cj4gPiAtCX0gZWxzZSBpZiAoSVNfR0VONihkZXYp KSB7Cj4gPiArCX0gZWxzZSBpZiAoSVNfR0VONihkZXZfcHJpdikpIHsKPiA+IMKgCQlkZXZfcHJp di0+ZGlzcGxheS5mZGlfbGlua190cmFpbiA9Cj4gPiBnZW42X2ZkaV9saW5rX3RyYWluOwo+ID4g LQl9IGVsc2UgaWYgKElTX0lWWUJSSURHRShkZXYpKSB7Cj4gPiArCX0gZWxzZSBpZiAoSVNfSVZZ QlJJREdFKGRldl9wcml2KSkgewo+ID4gwqAJCS8qIEZJWE1FOiBkZXRlY3QgQjArIHN0ZXBwaW5n IGFuZCB1c2UgYXV0bwo+ID4gdHJhaW5pbmcgKi8KPiA+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5m ZGlfbGlua190cmFpbiA9Cj4gPiBpdmJfbWFudWFsX2ZkaV9saW5rX3RyYWluOwo+ID4gLQl9IGVs c2UgaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+ID4gKwl9IGVs c2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4g PiB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPQo+ID4gaHN3X2Zk aV9saW5rX3RyYWluOwo+ID4gLQkJaWYgKElTX0JST0FEV0VMTChkZXYpKSB7Cj4gPiArCQlpZiAo SVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ID4gwqAJCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rl c2V0X2NvbW1pdF9jZGNsayA9Cj4gPiDCoAkJCQlicm9hZHdlbGxfbW9kZXNldF9jb21taXRfY2Rj bGs7Cj4gPiDCoAkJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gPiDC oAkJCQlicm9hZHdlbGxfbW9kZXNldF9jYWxjX2NkY2xrOwo+ID4gwqAJCX0KPiA+IC0JfSBlbHNl IGlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gPiArCX0g ZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwKPiA+IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKSB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jb21taXRfY2RjbGsg PQo+ID4gwqAJCQl2YWxsZXl2aWV3X21vZGVzZXRfY29tbWl0X2NkY2xrOwo+ID4gwqAJCWRldl9w cml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gPiDCoAkJCXZhbGxleXZpZXdfbW9k ZXNldF9jYWxjX2NkY2xrOwo+ID4gLQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+ID4g Kwl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gPiDCoAkJZGV2X3ByaXYtPmRp c3BsYXkubW9kZXNldF9jb21taXRfY2RjbGsgPQo+ID4gwqAJCQlicm94dG9uX21vZGVzZXRfY29t bWl0X2NkY2xrOwo+ID4gwqAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9 Cj4gPiDCoAkJCWJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrOwo+ID4gwqAJfQo+ID4gwqAKPiA+ IC0Jc3dpdGNoIChJTlRFTF9JTkZPKGRldiktPmdlbikgewo+ID4gKwlzd2l0Y2ggKElOVEVMX0lO Rk8oZGV2X3ByaXYpLT5nZW4pIHsKPiA+IMKgCWNhc2UgMjoKPiA+IMKgCQlkZXZfcHJpdi0+ZGlz cGxheS5xdWV1ZV9mbGlwID0KPiA+IGludGVsX2dlbjJfcXVldWVfZmxpcDsKPiA+IMKgCQlicmVh azsKPiA+IEBAIC0xNTI2MCw4ICsxNTI1OCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlz cGxheShzdHJ1Y3QKPiA+IGRybV9kZXZpY2UgKmRldikKPiA+IMKgCQkvKiBEZWZhdWx0IGp1c3Qg cmV0dXJucyAtRU5PREVWIHRvIGluZGljYXRlCj4gPiB1bnN1cHBvcnRlZCAqLwo+ID4gwqAJCWRl dl9wcml2LT5kaXNwbGF5LnF1ZXVlX2ZsaXAgPQo+ID4gaW50ZWxfZGVmYXVsdF9xdWV1ZV9mbGlw Owo+ID4gwqAJfQo+ID4gLQo+ID4gLQltdXRleF9pbml0KCZkZXZfcHJpdi0+cHBzX211dGV4KTsK PiA+IMKgfQo+ID4gwqAKPiA+IMKgLyoKPiA+IEBAIC0xNTU4OCw5ICsxNTU4NCw2IEBAIHZvaWQg aW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlCj4gPiAqZGV2KQo+ID4gwqAJCX0K PiA+IMKgCX0KPiA+IMKgCj4gPiAtCWludGVsX2luaXRfZGlzcGxheShkZXYpOwo+ID4gLQlpbnRl bF9pbml0X2F1ZGlvKGRldik7Cj4gPiAtCj4gPiDCoAlpZiAoSVNfR0VOMihkZXYpKSB7Cj4gPiDC oAkJZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSAyMDQ4Owo+ID4gwqAJCWRldi0+bW9kZV9j b25maWcubWF4X2hlaWdodCA9IDIwNDg7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiA+IGluZGV4IDdiMmQ2NmQuLjUyNjQ5MDEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+IEBAIC0xMTEwLDcgKzExMTAsNyBAQCB1MzIgaW50ZWxfZmJfc3RyaWRlX2FsaWdu bWVudChjb25zdCBzdHJ1Y3QKPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gwqAJ CQnCoMKgwqDCoMKgwqB1aW50NjRfdCBmYl9tb2RpZmllciwgdWludDMyX3QKPiA+IHBpeGVsX2Zv cm1hdCk7Cj4gPiDCoAo+ID4gwqAvKiBpbnRlbF9hdWRpby5jICovCj4gPiAtdm9pZCBpbnRlbF9p bml0X2F1ZGlvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gK3ZvaWQgaW50ZWxfaW5pdF9h dWRpb19jYWxsYmFja3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ICpkZXZfcHJpdik7Cj4g PiDCoHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKTsKPiA+IMKgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKTsKPiA+IMKgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiBAQCAtMTExOCw2ICsxMTE4 LDcgQEAgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jbGVhbnVwKHN0cnVjdAo+ID4gZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gwqAKPiA+IMKgLyogaW50ZWxfZGlzcGxheS5jICov Cj4gPiDCoGV4dGVybiBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1 bmNzOwo+ID4gK3ZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5X2NhbGxiYWNrcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZQo+ID4gKmRldl9wcml2KTsKPiA+IMKgdW5zaWduZWQgaW50IGludGVsX3JvdGF0 aW9uX2luZm9fc2l6ZShjb25zdCBzdHJ1Y3QKPiA+IGludGVsX3JvdGF0aW9uX2luZm8gKnJvdF9p bmZvKTsKPiA+IMKgYm9vbCBpbnRlbF9oYXNfcGVuZGluZ19mYl91bnBpbihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiA+IMKgdm9pZCBpbnRlbF9tYXJrX2J1c3koc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=