From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/3] drm/i915: Add enum aux_ch and clean up the aux init to use it Date: Tue, 20 Feb 2018 11:31:09 -0800 Message-ID: <20180220193109.GE27433@intel.com> References: <20180220170524.12303-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id ECC4A6EB49 for ; Tue, 20 Feb 2018 19:31:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180220170524.12303-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjAsIDIwMTggYXQgMDc6MDU6MjJQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFNpbmNlIHdlIG5vIGxvbmdlciBoYXZlIGEgMToxIGNvcnJlc3BvbmRlbmNlIGJl dHdlZW4gcG9ydHMgYW5kIEFVWAo+IGNoYW5uZWxzLCBsZXQncyBnaXZlIEFVWCBjaGFubmVscyB0 aGVpciBvd24gZW51bS4gTWFrZXMgaXQgZWFzaWVyCj4gdG8gdGVsbCB0aGUgYXBwbGVzIGZyb20g dGhlIG9yYW5nZXMsIGFuZCB3ZSBnZXQgcmlkIG9mIHRoZQo+IHBvcnQgRSBBVVggcG93ZXIgZG9t YWluIEZJWE1FIHNpbmNlIHdlIG5vdyBkZXJpdmUgdGhlIHBvd2VyIGRvbWFpbgo+IGZyb20gdGhl IGFjdHVhbCBBVVggQ0guCgoKQmVhdXRpZnVsIGNsZWFuLXVwLiBJIGhhZCB0aGlzIGluIGEgdG9k byBsaXN0IHllYXJzIGFnbyBhbmQKYWZ0ZXIgc3RheWluZyBvbiB0aGUgYm90dG9tIGZvciBzbyBs b25nIEkgaGFkIHJlbW92ZWQgaXQgZnJvbSB0aGVyZS4uLgo+IAo+IHYyOiBSZWJhc2UgZHVlIHRv IEFVWCBGCgpzb3JyeSBhbmQgdGhhbmtzISA6KQoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKSSB3b25kZXJlZCBpZiBh dCBsZWFzdCBhdXhfcG93ZXJfZG9tYWluIHBhcnQgY291bGQgYmUgaW4gYQpzZXBhcmF0ZWQgcGF0 Y2ggYmVjYXVzZSBieSB0aGUgZW5kIEkgd2FzIGEgYml0IGNvbmZ1c2VkLi4uCkJ1dCBpbiB0aGUg ZW5kIEkgY291bGQgcHV0IGFsbCBwaWVjZXMgdG9nZXRoZXIgYW5kIGl0IG1hZGUgc2Vuc2UKYWdh aW4uIFNvIG9uZSBwYXRjaCBmb3IgZWFzeSBiYWNrIHBvcnRpbmcgc2VlbXMgYmV0dGVyLgoKUmV2 aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KCj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAgOCArLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggfCAgMTEgKysKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgMjQwICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMSArCj4g IDQgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDEyOSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCAxNDEyYWJjYjI3ZDQuLjM5ZDYyNDA4M2Ex NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC01MzQ3LDggKzUzNDcsOCBAQCBl bnVtIHsKPiAgI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtPmluZm8uZGlzcGxh eV9tbWlvX29mZnNldCArIDB4NjQ1MjApCj4gICNkZWZpbmUgX0RQRl9BVVhfQ0hfREFUQTUJKGRl dl9wcml2LT5pbmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTI0KQo+ICAKPiAtI2RlZmlu ZSBEUF9BVVhfQ0hfQ1RMKHBvcnQpCV9NTUlPX1BPUlQocG9ydCwgX0RQQV9BVVhfQ0hfQ1RMLCBf RFBCX0FVWF9DSF9DVEwpCj4gLSNkZWZpbmUgRFBfQVVYX0NIX0RBVEEocG9ydCwgaSkJX01NSU8o X1BPUlQocG9ydCwgX0RQQV9BVVhfQ0hfREFUQTEsIF9EUEJfQVVYX0NIX0RBVEExKSArIChpKSAq IDQpIC8qIDUgcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgRFBfQVVYX0NIX0NUTChhdXhfY2gpCV9N TUlPX1BPUlQoYXV4X2NoLCBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkKPiArI2Rl ZmluZSBEUF9BVVhfQ0hfREFUQShhdXhfY2gsIGkpCV9NTUlPKF9QT1JUKGF1eF9jaCwgX0RQQV9B VVhfQ0hfREFUQTEsIF9EUEJfQVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJz ICovCj4gIAo+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9TRU5EX0JVU1kJICAgICgxIDw8IDMx KQo+ICAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9ET05FCQkgICAgKDEgPDwgMzApCj4gQEAgLTc4 NzUsOCArNzg3NSw4IEBAIGVudW0gewo+ICAjZGVmaW5lIF9QQ0hfRFBEX0FVWF9DSF9EQVRBNAkw eGU0MzIwCj4gICNkZWZpbmUgX1BDSF9EUERfQVVYX0NIX0RBVEE1CTB4ZTQzMjQKPiAgCj4gLSNk ZWZpbmUgUENIX0RQX0FVWF9DSF9DVEwocG9ydCkJCV9NTUlPX1BPUlQoKHBvcnQpIC0gUE9SVF9C LCBfUENIX0RQQl9BVVhfQ0hfQ1RMLCBfUENIX0RQQ19BVVhfQ0hfQ1RMKQo+IC0jZGVmaW5lIFBD SF9EUF9BVVhfQ0hfREFUQShwb3J0LCBpKQlfTU1JTyhfUE9SVCgocG9ydCkgLSBQT1JUX0IsIF9Q Q0hfRFBCX0FVWF9DSF9EQVRBMSwgX1BDSF9EUENfQVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8q IDUgcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgUENIX0RQX0FVWF9DSF9DVEwoYXV4X2NoKQkJX01N SU9fUE9SVCgoYXV4X2NoKSAtIEFVWF9DSF9CLCBfUENIX0RQQl9BVVhfQ0hfQ1RMLCBfUENIX0RQ Q19BVVhfQ0hfQ1RMKQo+ICsjZGVmaW5lIFBDSF9EUF9BVVhfQ0hfREFUQShhdXhfY2gsIGkpCV9N TUlPKF9QT1JUKChhdXhfY2gpIC0gQVVYX0NIX0IsIF9QQ0hfRFBCX0FVWF9DSF9EQVRBMSwgX1BD SF9EUENfQVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCj4gIAo+ICAv KiBDUFQgKi8KPiAgI2RlZmluZSAgUE9SVF9UUkFOU19BX1NFTF9DUFQJMAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmgKPiBpbmRleCBjNDA0MmUzNDJmNTAuLmY1NzMzYTI1NzZlNyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiBAQCAtMTM5LDYgKzEzOSwx NyBAQCBlbnVtIGRwaW9fcGh5IHsKPiAgCj4gICNkZWZpbmUgSTkxNV9OVU1fUEhZU19WTFYgMgo+ ICAKPiArZW51bSBhdXhfY2ggewo+ICsJQVVYX0NIX0EsCj4gKwlBVVhfQ0hfQiwKPiArCUFVWF9D SF9DLAo+ICsJQVVYX0NIX0QsCj4gKwlfQVVYX0NIX0UsIC8qIGRvZXMgbm90IGV4aXN0ICovCj4g KwlBVVhfQ0hfRiwKPiArfTsKPiArCj4gKyNkZWZpbmUgYXV4X2NoX25hbWUoYSkgKChhKSArICdB JykKPiArCj4gIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gewo+ICAJUE9XRVJfRE9N QUlOX1BJUEVfQSwKPiAgCVBPV0VSX0RPTUFJTl9QSVBFX0IsCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCj4gaW5kZXggZjIwYjI1Zjk4ZTVhLi5lZWI4YTAyNmZkMDggMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiBAQCAtMTMzMSwxNzEgKzEzMzEsMTk0IEBAIGludGVsX2RwX2F1eF90cmFu c2ZlcihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykK PiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBlbnVtIHBvcnQgaW50ZWxfYXV4X3Bv cnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkJZW51bSBwb3J0IHBv cnQpCj4gK3N0YXRpYyBlbnVtIGF1eF9jaCBpbnRlbF9hdXhfY2goc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiAgewo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7Cj4gIAljb25zdCBzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gKmluZm8g PQo+ICAJCSZkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF07Cj4gLQllbnVtIHBvcnQg YXV4X3BvcnQ7Cj4gKwllbnVtIGF1eF9jaCBhdXhfY2g7Cj4gIAo+ICAJaWYgKCFpbmZvLT5hbHRl cm5hdGVfYXV4X2NoYW5uZWwpIHsKPiArCQlhdXhfY2ggPSAoZW51bSBhdXhfY2gpIHBvcnQ7Cj4g Kwo+ICAJCURSTV9ERUJVR19LTVMoInVzaW5nIEFVWCAlYyBmb3IgcG9ydCAlYyAocGxhdGZvcm0g ZGVmYXVsdClcbiIsCj4gLQkJCSAgICAgIHBvcnRfbmFtZShwb3J0KSwgcG9ydF9uYW1lKHBvcnQp KTsKPiAtCQlyZXR1cm4gcG9ydDsKPiArCQkJICAgICAgYXV4X2NoX25hbWUoYXV4X2NoKSwgcG9y dF9uYW1lKHBvcnQpKTsKPiArCQlyZXR1cm4gYXV4X2NoOwo+ICAJfQo+ICAKPiAgCXN3aXRjaCAo aW5mby0+YWx0ZXJuYXRlX2F1eF9jaGFubmVsKSB7Cj4gIAljYXNlIERQX0FVWF9BOgo+IC0JCWF1 eF9wb3J0ID0gUE9SVF9BOwo+ICsJCWF1eF9jaCA9IEFVWF9DSF9BOwo+ICAJCWJyZWFrOwo+ICAJ Y2FzZSBEUF9BVVhfQjoKPiAtCQlhdXhfcG9ydCA9IFBPUlRfQjsKPiArCQlhdXhfY2ggPSBBVVhf Q0hfQjsKPiAgCQlicmVhazsKPiAgCWNhc2UgRFBfQVVYX0M6Cj4gLQkJYXV4X3BvcnQgPSBQT1JU X0M7Cj4gKwkJYXV4X2NoID0gQVVYX0NIX0M7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIERQX0FVWF9E Ogo+IC0JCWF1eF9wb3J0ID0gUE9SVF9EOwo+ICsJCWF1eF9jaCA9IEFVWF9DSF9EOwo+ICAJCWJy ZWFrOwo+ICAJY2FzZSBEUF9BVVhfRjoKPiAtCQlhdXhfcG9ydCA9IFBPUlRfRjsKPiArCQlhdXhf Y2ggPSBBVVhfQ0hfRjsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gIAkJTUlTU0lOR19DQVNF KGluZm8tPmFsdGVybmF0ZV9hdXhfY2hhbm5lbCk7Cj4gLQkJYXV4X3BvcnQgPSBQT1JUX0E7Cj4g KwkJYXV4X2NoID0gQVVYX0NIX0E7Cj4gIAkJYnJlYWs7Cj4gIAl9Cj4gIAo+ICAJRFJNX0RFQlVH X0tNUygidXNpbmcgQVVYICVjIGZvciBwb3J0ICVjIChWQlQpXG4iLAo+IC0JCSAgICAgIHBvcnRf bmFtZShhdXhfcG9ydCksIHBvcnRfbmFtZShwb3J0KSk7Cj4gKwkJICAgICAgYXV4X2NoX25hbWUo YXV4X2NoKSwgcG9ydF9uYW1lKHBvcnQpKTsKPiAgCj4gLQlyZXR1cm4gYXV4X3BvcnQ7Cj4gKwly ZXR1cm4gYXV4X2NoOwo+ICt9Cj4gKwo+ICtzdGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2Vy X2RvbWFpbgo+ICtpbnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCj4gK3sKPiArCXN3aXRjaCAoaW50ZWxfZHAtPmF1eF9jaCkgewo+ICsJY2FzZSBBVVhfQ0hf QToKPiArCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOwo+ICsJY2FzZSBBVVhfQ0hfQjoKPiAr CQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9COwo+ICsJY2FzZSBBVVhfQ0hfQzoKPiArCQlyZXR1 cm4gUE9XRVJfRE9NQUlOX0FVWF9DOwo+ICsJY2FzZSBBVVhfQ0hfRDoKPiArCQlyZXR1cm4gUE9X RVJfRE9NQUlOX0FVWF9EOwo+ICsJY2FzZSBBVVhfQ0hfRjoKPiArCQlyZXR1cm4gUE9XRVJfRE9N QUlOX0FVWF9GOwo+ICsJZGVmYXVsdDoKPiArCQlNSVNTSU5HX0NBU0UoaW50ZWxfZHAtPmF1eF9j aCk7Cj4gKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKPiArCX0KPiAgfQo+ICAKPiAgc3Rh dGljIGk5MTVfcmVnX3QgZzR4X2F1eF9jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAtCQkJCSAgZW51bSBwb3J0IHBvcnQpCj4gKwkJCQkgIGVudW0gYXV4X2NoIGF1 eF9jaCkKPiAgewo+IC0Jc3dpdGNoIChwb3J0KSB7Cj4gLQljYXNlIFBPUlRfQjoKPiAtCWNhc2Ug UE9SVF9DOgo+IC0JY2FzZSBQT1JUX0Q6Cj4gLQkJcmV0dXJuIERQX0FVWF9DSF9DVEwocG9ydCk7 Cj4gKwlzd2l0Y2ggKGF1eF9jaCkgewo+ICsJY2FzZSBBVVhfQ0hfQjoKPiArCWNhc2UgQVVYX0NI X0M6Cj4gKwljYXNlIEFVWF9DSF9EOgo+ICsJCXJldHVybiBEUF9BVVhfQ0hfQ1RMKGF1eF9jaCk7 Cj4gIAlkZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FTRShwb3J0KTsKPiAtCQlyZXR1cm4gRFBfQVVY X0NIX0NUTChQT1JUX0IpOwo+ICsJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOwo+ICsJCXJldHVybiBE UF9BVVhfQ0hfQ1RMKEFVWF9DSF9CKTsKPiAgCX0KPiAgfQo+ICAKPiAgc3RhdGljIGk5MTVfcmVn X3QgZzR4X2F1eF9kYXRhX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g LQkJCQkgICBlbnVtIHBvcnQgcG9ydCwgaW50IGluZGV4KQo+ICsJCQkJICAgZW51bSBhdXhfY2gg YXV4X2NoLCBpbnQgaW5kZXgpCj4gIHsKPiAtCXN3aXRjaCAocG9ydCkgewo+IC0JY2FzZSBQT1JU X0I6Cj4gLQljYXNlIFBPUlRfQzoKPiAtCWNhc2UgUE9SVF9EOgo+IC0JCXJldHVybiBEUF9BVVhf Q0hfREFUQShwb3J0LCBpbmRleCk7Cj4gKwlzd2l0Y2ggKGF1eF9jaCkgewo+ICsJY2FzZSBBVVhf Q0hfQjoKPiArCWNhc2UgQVVYX0NIX0M6Cj4gKwljYXNlIEFVWF9DSF9EOgo+ICsJCXJldHVybiBE UF9BVVhfQ0hfREFUQShhdXhfY2gsIGluZGV4KTsKPiAgCWRlZmF1bHQ6Cj4gLQkJTUlTU0lOR19D QVNFKHBvcnQpOwo+IC0JCXJldHVybiBEUF9BVVhfQ0hfREFUQShQT1JUX0IsIGluZGV4KTsKPiAr CQlNSVNTSU5HX0NBU0UoYXV4X2NoKTsKPiArCQlyZXR1cm4gRFBfQVVYX0NIX0RBVEEoQVVYX0NI X0IsIGluZGV4KTsKPiAgCX0KPiAgfQo+ICAKPiAgc3RhdGljIGk5MTVfcmVnX3QgaWxrX2F1eF9j dGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJCSAgZW51bSBw b3J0IHBvcnQpCj4gLXsKPiAtCXN3aXRjaCAocG9ydCkgewo+IC0JY2FzZSBQT1JUX0E6Cj4gLQkJ cmV0dXJuIERQX0FVWF9DSF9DVEwocG9ydCk7Cj4gLQljYXNlIFBPUlRfQjoKPiAtCWNhc2UgUE9S VF9DOgo+IC0JY2FzZSBQT1JUX0Q6Cj4gLQkJcmV0dXJuIFBDSF9EUF9BVVhfQ0hfQ1RMKHBvcnQp Owo+ICsJCQkJICBlbnVtIGF1eF9jaCBhdXhfY2gpCj4gK3sKPiArCXN3aXRjaCAoYXV4X2NoKSB7 Cj4gKwljYXNlIEFVWF9DSF9BOgo+ICsJCXJldHVybiBEUF9BVVhfQ0hfQ1RMKGF1eF9jaCk7Cj4g KwljYXNlIEFVWF9DSF9COgo+ICsJY2FzZSBBVVhfQ0hfQzoKPiArCWNhc2UgQVVYX0NIX0Q6Cj4g KwkJcmV0dXJuIFBDSF9EUF9BVVhfQ0hfQ1RMKGF1eF9jaCk7Cj4gIAlkZWZhdWx0Ogo+IC0JCU1J U1NJTkdfQ0FTRShwb3J0KTsKPiAtCQlyZXR1cm4gRFBfQVVYX0NIX0NUTChQT1JUX0EpOwo+ICsJ CU1JU1NJTkdfQ0FTRShhdXhfY2gpOwo+ICsJCXJldHVybiBEUF9BVVhfQ0hfQ1RMKEFVWF9DSF9B KTsKPiAgCX0KPiAgfQo+ICAKPiAgc3RhdGljIGk5MTVfcmVnX3QgaWxrX2F1eF9kYXRhX3JlZyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkgICBlbnVtIHBvcnQgcG9y dCwgaW50IGluZGV4KQo+IC17Cj4gLQlzd2l0Y2ggKHBvcnQpIHsKPiAtCWNhc2UgUE9SVF9BOgo+ IC0JCXJldHVybiBEUF9BVVhfQ0hfREFUQShwb3J0LCBpbmRleCk7Cj4gLQljYXNlIFBPUlRfQjoK PiAtCWNhc2UgUE9SVF9DOgo+IC0JY2FzZSBQT1JUX0Q6Cj4gLQkJcmV0dXJuIFBDSF9EUF9BVVhf Q0hfREFUQShwb3J0LCBpbmRleCk7Cj4gKwkJCQkgICBlbnVtIGF1eF9jaCBhdXhfY2gsIGludCBp bmRleCkKPiArewo+ICsJc3dpdGNoIChhdXhfY2gpIHsKPiArCWNhc2UgQVVYX0NIX0E6Cj4gKwkJ cmV0dXJuIERQX0FVWF9DSF9EQVRBKGF1eF9jaCwgaW5kZXgpOwo+ICsJY2FzZSBBVVhfQ0hfQjoK PiArCWNhc2UgQVVYX0NIX0M6Cj4gKwljYXNlIEFVWF9DSF9EOgo+ICsJCXJldHVybiBQQ0hfRFBf QVVYX0NIX0RBVEEoYXV4X2NoLCBpbmRleCk7Cj4gIAlkZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FT RShwb3J0KTsKPiAtCQlyZXR1cm4gRFBfQVVYX0NIX0RBVEEoUE9SVF9BLCBpbmRleCk7Cj4gKwkJ TUlTU0lOR19DQVNFKGF1eF9jaCk7Cj4gKwkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKEFVWF9DSF9B LCBpbmRleCk7Cj4gIAl9Cj4gIH0KPiAgCj4gIHN0YXRpYyBpOTE1X3JlZ190IHNrbF9hdXhfY3Rs X3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkgIGVudW0gcG9y dCBwb3J0KQo+IC17Cj4gLQlzd2l0Y2ggKHBvcnQpIHsKPiAtCWNhc2UgUE9SVF9BOgo+IC0JY2Fz ZSBQT1JUX0I6Cj4gLQljYXNlIFBPUlRfQzoKPiAtCWNhc2UgUE9SVF9EOgo+IC0JY2FzZSBQT1JU X0Y6Cj4gLQkJcmV0dXJuIERQX0FVWF9DSF9DVEwocG9ydCk7Cj4gKwkJCQkgIGVudW0gYXV4X2No IGF1eF9jaCkKPiArewo+ICsJc3dpdGNoIChhdXhfY2gpIHsKPiArCWNhc2UgQVVYX0NIX0E6Cj4g KwljYXNlIEFVWF9DSF9COgo+ICsJY2FzZSBBVVhfQ0hfQzoKPiArCWNhc2UgQVVYX0NIX0Q6Cj4g KwljYXNlIEFVWF9DSF9GOgo+ICsJCXJldHVybiBEUF9BVVhfQ0hfQ1RMKGF1eF9jaCk7Cj4gIAlk ZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FTRShwb3J0KTsKPiAtCQlyZXR1cm4gRFBfQVVYX0NIX0NU TChQT1JUX0EpOwo+ICsJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOwo+ICsJCXJldHVybiBEUF9BVVhf Q0hfQ1RMKEFVWF9DSF9BKTsKPiAgCX0KPiAgfQo+ICAKPiAgc3RhdGljIGk5MTVfcmVnX3Qgc2ts X2F1eF9kYXRhX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkg ICBlbnVtIHBvcnQgcG9ydCwgaW50IGluZGV4KQo+IC17Cj4gLQlzd2l0Y2ggKHBvcnQpIHsKPiAt CWNhc2UgUE9SVF9BOgo+IC0JY2FzZSBQT1JUX0I6Cj4gLQljYXNlIFBPUlRfQzoKPiAtCWNhc2Ug UE9SVF9EOgo+IC0JY2FzZSBQT1JUX0Y6Cj4gLQkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKHBvcnQs IGluZGV4KTsKPiArCQkJCSAgIGVudW0gYXV4X2NoIGF1eF9jaCwgaW50IGluZGV4KQo+ICt7Cj4g Kwlzd2l0Y2ggKGF1eF9jaCkgewo+ICsJY2FzZSBBVVhfQ0hfQToKPiArCWNhc2UgQVVYX0NIX0I6 Cj4gKwljYXNlIEFVWF9DSF9DOgo+ICsJY2FzZSBBVVhfQ0hfRDoKPiArCWNhc2UgQVVYX0NIX0Y6 Cj4gKwkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKGF1eF9jaCwgaW5kZXgpOwo+ICAJZGVmYXVsdDoK PiAtCQlNSVNTSU5HX0NBU0UocG9ydCk7Cj4gLQkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKFBPUlRf QSwgaW5kZXgpOwo+ICsJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOwo+ICsJCXJldHVybiBEUF9BVVhf Q0hfREFUQShBVVhfQ0hfQSwgaW5kZXgpOwo+ICAJfQo+ICB9Cj4gIAo+ICBzdGF0aWMgaTkxNV9y ZWdfdCBpbnRlbF9hdXhfY3RsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gLQkJCQkgICAgZW51bSBwb3J0IHBvcnQpCj4gKwkJCQkgICAgZW51bSBhdXhfY2ggYXV4X2No KQo+ICB7Cj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+IC0JCXJldHVybiBza2xf YXV4X2N0bF9yZWcoZGV2X3ByaXYsIHBvcnQpOwo+ICsJCXJldHVybiBza2xfYXV4X2N0bF9yZWco ZGV2X3ByaXYsIGF1eF9jaCk7Cj4gIAllbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkK PiAtCQlyZXR1cm4gaWxrX2F1eF9jdGxfcmVnKGRldl9wcml2LCBwb3J0KTsKPiArCQlyZXR1cm4g aWxrX2F1eF9jdGxfcmVnKGRldl9wcml2LCBhdXhfY2gpOwo+ICAJZWxzZQo+IC0JCXJldHVybiBn NHhfYXV4X2N0bF9yZWcoZGV2X3ByaXYsIHBvcnQpOwo+ICsJCXJldHVybiBnNHhfYXV4X2N0bF9y ZWcoZGV2X3ByaXYsIGF1eF9jaCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpOTE1X3JlZ190IGludGVs X2F1eF9kYXRhX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCQkg ICAgIGVudW0gcG9ydCBwb3J0LCBpbnQgaW5kZXgpCj4gKwkJCQkgICAgIGVudW0gYXV4X2NoIGF1 eF9jaCwgaW50IGluZGV4KQo+ICB7Cj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ IC0JCXJldHVybiBza2xfYXV4X2RhdGFfcmVnKGRldl9wcml2LCBwb3J0LCBpbmRleCk7Cj4gKwkJ cmV0dXJuIHNrbF9hdXhfZGF0YV9yZWcoZGV2X3ByaXYsIGF1eF9jaCwgaW5kZXgpOwo+ICAJZWxz ZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCj4gLQkJcmV0dXJuIGlsa19hdXhfZGF0YV9y ZWcoZGV2X3ByaXYsIHBvcnQsIGluZGV4KTsKPiArCQlyZXR1cm4gaWxrX2F1eF9kYXRhX3JlZyhk ZXZfcHJpdiwgYXV4X2NoLCBpbmRleCk7Cj4gIAllbHNlCj4gLQkJcmV0dXJuIGc0eF9hdXhfZGF0 YV9yZWcoZGV2X3ByaXYsIHBvcnQsIGluZGV4KTsKPiArCQlyZXR1cm4gZzR4X2F1eF9kYXRhX3Jl ZyhkZXZfcHJpdiwgYXV4X2NoLCBpbmRleCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVs X2F1eF9yZWdfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRl bF9kcCkpOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9hdXhfcG9ydChkZXZfcHJpdiwKPiAt CQkJCQlkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UucG9ydCk7Cj4gKwllbnVtIGF1eF9j aCBhdXhfY2ggPSBpbnRlbF9kcC0+YXV4X2NoOwo+ICAJaW50IGk7Cj4gIAo+IC0JaW50ZWxfZHAt PmF1eF9jaF9jdGxfcmVnID0gaW50ZWxfYXV4X2N0bF9yZWcoZGV2X3ByaXYsIHBvcnQpOwo+ICsJ aW50ZWxfZHAtPmF1eF9jaF9jdGxfcmVnID0gaW50ZWxfYXV4X2N0bF9yZWcoZGV2X3ByaXYsIGF1 eF9jaCk7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9kcC0+YXV4X2NoX2Rh dGFfcmVnKTsgaSsrKQo+IC0JCWludGVsX2RwLT5hdXhfY2hfZGF0YV9yZWdbaV0gPSBpbnRlbF9h dXhfZGF0YV9yZWcoZGV2X3ByaXYsIHBvcnQsIGkpOwo+ICsJCWludGVsX2RwLT5hdXhfY2hfZGF0 YV9yZWdbaV0gPSBpbnRlbF9hdXhfZGF0YV9yZWcoZGV2X3ByaXYsIGF1eF9jaCwgaSk7Cj4gIH0K PiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAgLTE1MDcsMTQgKzE1MzAsMTcgQEAgaW50ZWxfZHBfYXV4 X2Zpbmkoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxf ZHBfYXV4X2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgewo+IC0Jc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9k cCk7Cj4gLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gKwlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCkt PmJhc2U7Cj4gKwo+ICsJaW50ZWxfZHAtPmF1eF9jaCA9IGludGVsX2F1eF9jaChpbnRlbF9kcCk7 Cj4gKwlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9IGludGVsX2F1eF9wb3dlcl9kb21haW4o aW50ZWxfZHApOwo+ICAKPiAgCWludGVsX2F1eF9yZWdfaW5pdChpbnRlbF9kcCk7Cj4gIAlkcm1f ZHBfYXV4X2luaXQoJmludGVsX2RwLT5hdXgpOwo+ICAKPiAgCS8qIEZhaWx1cmUgdG8gYWxsb2Nh dGUgb3VyIHByZWZlcnJlZCBuYW1lIGlzIG5vdCBjcml0aWNhbCAqLwo+IC0JaW50ZWxfZHAtPmF1 eC5uYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJEUEREQy0lYyIsIHBvcnRfbmFtZShwb3J0 KSk7Cj4gKwlpbnRlbF9kcC0+YXV4Lm5hbWUgPSBrYXNwcmludGYoR0ZQX0tFUk5FTCwgIkRQRERD LSVjIiwKPiArCQkJCSAgICAgICBwb3J0X25hbWUoZW5jb2Rlci0+cG9ydCkpOwo+ICAJaW50ZWxf ZHAtPmF1eC50cmFuc2ZlciA9IGludGVsX2RwX2F1eF90cmFuc2ZlcjsKPiAgfQo+ICAKPiBAQCAt NjI2Niw0MiArNjI5Miw2IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3Rvcihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJcmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+IC0v KiBTZXQgdXAgdGhlIGhvdHBsdWcgcGluIGFuZCBhdXggcG93ZXIgZG9tYWluLiAqLwo+IC1zdGF0 aWMgdm9pZAo+IC1pbnRlbF9kcF9pbml0X2Nvbm5lY3Rvcl9wb3J0X2luZm8oc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+IC0Jc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlciA9ICZpbnRlbF9kaWdfcG9ydC0+YmFzZTsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYp Owo+IC0KPiAtCWVuY29kZXItPmhwZF9waW4gPSBpbnRlbF9ocGRfcGluX2RlZmF1bHQoZGV2X3By aXYsIGVuY29kZXItPnBvcnQpOwo+IC0KPiAtCXN3aXRjaCAoZW5jb2Rlci0+cG9ydCkgewo+IC0J Y2FzZSBQT1JUX0E6Cj4gLQkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01B SU5fQVVYX0E7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIFBPUlRfQjoKPiAtCQlpbnRlbF9kcC0+YXV4 X3Bvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9BVVhfQjsKPiAtCQlicmVhazsKPiAtCWNhc2Ug UE9SVF9DOgo+IC0JCWludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX0FV WF9DOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBQT1JUX0Q6Cj4gLQkJaW50ZWxfZHAtPmF1eF9wb3dl cl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0Q7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIFBPUlRf RToKPiAtCQkvKiBGSVhNRTogQ2hlY2sgVkJUIGZvciBhY3R1YWwgd2lyaW5nIG9mIFBPUlQgRSAq Lwo+IC0JCWludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX0FVWF9EOwo+ IC0JCWJyZWFrOwo+IC0JY2FzZSBQT1JUX0Y6Cj4gLQkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21h aW4gPSBQT1dFUl9ET01BSU5fQVVYX0Y7Cj4gLQkJYnJlYWs7Cj4gLQlkZWZhdWx0Ogo+IC0JCU1J U1NJTkdfQ0FTRShlbmNvZGVyLT5wb3J0KTsKPiAtCX0KPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQg aW50ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK PiAgewo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+IEBAIC02 NDA3LDcgKzYzOTcsNyBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQljb25uZWN0b3ItPmludGVybGFjZV9hbGxv d2VkID0gdHJ1ZTsKPiAgCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2VkID0gMDsKPiAgCj4g LQlpbnRlbF9kcF9pbml0X2Nvbm5lY3Rvcl9wb3J0X2luZm8oaW50ZWxfZGlnX3BvcnQpOwo+ICsJ aW50ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IGludGVsX2hwZF9waW5fZGVmYXVsdChkZXZfcHJpdiwg cG9ydCk7Cj4gIAo+ICAJaW50ZWxfZHBfYXV4X2luaXQoaW50ZWxfZHApOwo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDg5ODA2NGU4YmVhNy4uN2Y2YTdmNTkyZmU2IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTA0OSw2ICsxMDQ5LDcgQEAgc3RydWN0 IGludGVsX2RwIHsKPiAgCWJvb2wgZGV0ZWN0X2RvbmU7Cj4gIAlib29sIGNoYW5uZWxfZXFfc3Rh dHVzOwo+ICAJYm9vbCByZXNldF9saW5rX3BhcmFtczsKPiArCWVudW0gYXV4X2NoIGF1eF9jaDsK PiAgCXVpbnQ4X3QgZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV07Cj4gIAl1aW50OF90IHBzcl9k cGNkW0VEUF9QU1JfUkVDRUlWRVJfQ0FQX1NJWkVdOwo+ICAJdWludDhfdCBkb3duc3RyZWFtX3Bv cnRzW0RQX01BWF9ET1dOU1RSRUFNX1BPUlRTXTsKPiAtLSAKPiAyLjEzLjYKPiAKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==