From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915: hsw+ audio regs are per-transocder Date: Thu, 02 May 2019 15:16:37 +0300 Message-ID: <871s1hoxui.fsf@intel.com> References: <20190430142901.7302-1-ville.syrjala@linux.intel.com> <20190430142901.7302-2-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 28DBB893EF for ; Thu, 2 May 2019 12:14:27 +0000 (UTC) In-Reply-To: <20190430142901.7302-2-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAzMCBBcHIgMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBzL3BpcGUvdHJhbnNjb2Rlci8gd2hlbiBkZWFsaW5nIHdpdGgg aHN3KyBhdWRpbyByZWdpc3RlcnMuIFRoaXMKPiB3b24ndCBhY3R1YWxseSBtYWtlIGFueSByZWFs IGRpZmZlcmVuY2Ugc2luY2UgdGhlcmUgaXMgbm8gYXVkaW8KPiBvbiB0aGUgRURQIHRyYW5zY29k ZXIuIEJ1dCB0aGlzIHNob3VsZCBhdm9pZCBhIGJpdCBvZiBjb25mdXNpb24KPiB3aGVuIGNyb3Nz IGNoZWNraW5nIGFnYWluc3QgdGhlIHNwZWMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IEphbmkg TmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oICAgIHwgMTIgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdWRpby5jIHwgNTUgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIDIgZmls ZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiBpbmRleCA2ZjBhMDg2NmM4MDIuLjkyNmUwNThkMDllZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC05MDEwLDMyICs5MDEwLDMyIEBAIGVudW0gewo+ ICAvKiBIU1cgQXVkaW8gKi8KPiAgI2RlZmluZSBfSFNXX0FVRF9DT05GSUdfQQkJMHg2NTAwMAo+ ICAjZGVmaW5lIF9IU1dfQVVEX0NPTkZJR19CCQkweDY1MTAwCj4gLSNkZWZpbmUgSFNXX0FVRF9D RkcocGlwZSkJCV9NTUlPX1BJUEUocGlwZSwgX0hTV19BVURfQ09ORklHX0EsIF9IU1dfQVVEX0NP TkZJR19CKQo+ICsjZGVmaW5lIEhTV19BVURfQ0ZHKHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMs IF9IU1dfQVVEX0NPTkZJR19BLCBfSFNXX0FVRF9DT05GSUdfQikKPiAgCj4gICNkZWZpbmUgX0hT V19BVURfTUlTQ19DVFJMX0EJCTB4NjUwMTAKPiAgI2RlZmluZSBfSFNXX0FVRF9NSVNDX0NUUkxf QgkJMHg2NTExMAo+IC0jZGVmaW5lIEhTV19BVURfTUlTQ19DVFJMKHBpcGUpCQlfTU1JT19QSVBF KHBpcGUsIF9IU1dfQVVEX01JU0NfQ1RSTF9BLCBfSFNXX0FVRF9NSVNDX0NUUkxfQikKPiArI2Rl ZmluZSBIU1dfQVVEX01JU0NfQ1RSTCh0cmFucykJX01NSU9fVFJBTlModHJhbnMsIF9IU1dfQVVE X01JU0NfQ1RSTF9BLCBfSFNXX0FVRF9NSVNDX0NUUkxfQikKPiAgCj4gICNkZWZpbmUgX0hTV19B VURfTV9DVFNfRU5BQkxFX0EJCTB4NjUwMjgKPiAgI2RlZmluZSBfSFNXX0FVRF9NX0NUU19FTkFC TEVfQgkJMHg2NTEyOAo+IC0jZGVmaW5lIEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUpCV9NTUlP X1BJUEUocGlwZSwgX0hTV19BVURfTV9DVFNfRU5BQkxFX0EsIF9IU1dfQVVEX01fQ1RTX0VOQUJM RV9CKQo+ICsjZGVmaW5lIEhTV19BVURfTV9DVFNfRU5BQkxFKHRyYW5zKQlfTU1JT19UUkFOUyh0 cmFucywgX0hTV19BVURfTV9DVFNfRU5BQkxFX0EsIF9IU1dfQVVEX01fQ1RTX0VOQUJMRV9CKQo+ ICAjZGVmaW5lICAgQVVEX01fQ1RTX01fVkFMVUVfSU5ERVgJKDEgPDwgMjEpCj4gICNkZWZpbmUg ICBBVURfTV9DVFNfTV9QUk9HX0VOQUJMRQkoMSA8PCAyMCkKPiAgI2RlZmluZSAgIEFVRF9DT05G SUdfTV9NQVNLCQkweGZmZmZmCj4gIAo+ICAjZGVmaW5lIF9IU1dfQVVEX0RJUF9FTERfQ1RSTF9T VF9BCTB4NjUwYjQKPiAgI2RlZmluZSBfSFNXX0FVRF9ESVBfRUxEX0NUUkxfU1RfQgkweDY1MWI0 Cj4gLSNkZWZpbmUgSFNXX0FVRF9ESVBfRUxEX0NUUkwocGlwZSkJX01NSU9fUElQRShwaXBlLCBf SFNXX0FVRF9ESVBfRUxEX0NUUkxfU1RfQSwgX0hTV19BVURfRElQX0VMRF9DVFJMX1NUX0IpCj4g KyNkZWZpbmUgSFNXX0FVRF9ESVBfRUxEX0NUUkwodHJhbnMpCV9NTUlPX1RSQU5TKHRyYW5zLCBf SFNXX0FVRF9ESVBfRUxEX0NUUkxfU1RfQSwgX0hTV19BVURfRElQX0VMRF9DVFJMX1NUX0IpCj4g IAo+ICAvKiBBdWRpbyBEaWdpdGFsIENvbnZlcnRlciAqLwo+ICAjZGVmaW5lIF9IU1dfQVVEX0RJ R19DTlZUXzEJCTB4NjUwODAKPiAgI2RlZmluZSBfSFNXX0FVRF9ESUdfQ05WVF8yCQkweDY1MTgw Cj4gLSNkZWZpbmUgQVVEX0RJR19DTlZUKHBpcGUpCQlfTU1JT19QSVBFKHBpcGUsIF9IU1dfQVVE X0RJR19DTlZUXzEsIF9IU1dfQVVEX0RJR19DTlZUXzIpCj4gKyNkZWZpbmUgQVVEX0RJR19DTlZU KHRyYW5zKQkJX01NSU9fVFJBTlModHJhbnMsIF9IU1dfQVVEX0RJR19DTlZUXzEsIF9IU1dfQVVE X0RJR19DTlZUXzIpCj4gICNkZWZpbmUgRElQX1BPUlRfU0VMX01BU0sJCTB4Mwo+ICAKPiAgI2Rl ZmluZSBfSFNXX0FVRF9FRElEX0RBVEFfQQkJMHg2NTA1MAo+ICAjZGVmaW5lIF9IU1dfQVVEX0VE SURfREFUQV9CCQkweDY1MTUwCj4gLSNkZWZpbmUgSFNXX0FVRF9FRElEX0RBVEEocGlwZSkJCV9N TUlPX1BJUEUocGlwZSwgX0hTV19BVURfRURJRF9EQVRBX0EsIF9IU1dfQVVEX0VESURfREFUQV9C KQo+ICsjZGVmaW5lIEhTV19BVURfRURJRF9EQVRBKHRyYW5zKQlfTU1JT19UUkFOUyh0cmFucywg X0hTV19BVURfRURJRF9EQVRBX0EsIF9IU1dfQVVEX0VESURfREFUQV9CKQo+ICAKPiAgI2RlZmlu ZSBIU1dfQVVEX1BJUEVfQ09OVl9DRkcJCV9NTUlPKDB4NjUwN2MpCj4gICNkZWZpbmUgSFNXX0FV RF9QSU5fRUxEX0NQX1ZMRAkJX01NSU8oMHg2NTBjMCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMKPiBpbmRleCA2OGEyNGRhZGE0NGMuLjVjMGI3M2Y2Mzg0MyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uYwo+IEBAIC0zMTksOSArMzE5LDggQEAgaHN3X2RwX2F1ZGlvX2Nv bmZpZ191cGRhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIHsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRp b19jb21wb25lbnQ7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2Rl ciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBlbmNv ZGVyLT5wb3J0Owo+IC0JZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAJY29uc3Qgc3Ry dWN0IGRwX2F1ZF9uX20gKm5tOwo+ICAJaW50IHJhdGU7Cj4gIAl1MzIgdG1wOwo+IEBAIC0zMzMs NyArMzMyLDcgQEAgaHN3X2RwX2F1ZGlvX2NvbmZpZ191cGRhdGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gIAllbHNlCj4gIAkJRFJNX0RFQlVHX0tNUygidXNpbmcgYXV0b21hdGlj IE1hdWQsIE5hdWRcbiIpOwo+ICAKPiAtCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBl KSk7Cj4gKwl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcoY3B1X3RyYW5zY29kZXIpKTsKPiAg CXRtcCAmPSB+QVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOwo+ICAJdG1wICY9IH5BVURfQ09ORklH X1BJWEVMX0NMT0NLX0hETUlfTUFTSzsKPiAgCXRtcCAmPSB+QVVEX0NPTkZJR19OX1BST0dfRU5B QkxFOwo+IEBAIC0zNDUsOSArMzQ0LDkgQEAgaHN3X2RwX2F1ZGlvX2NvbmZpZ191cGRhdGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJdG1wIHw9IEFVRF9DT05GSUdfTl9QUk9H X0VOQUJMRTsKPiAgCX0KPiAgCj4gLQlJOTE1X1dSSVRFKEhTV19BVURfQ0ZHKHBpcGUpLCB0bXAp Owo+ICsJSTkxNV9XUklURShIU1dfQVVEX0NGRyhjcHVfdHJhbnNjb2RlciksIHRtcCk7Cj4gIAo+ IC0JdG1wID0gSTkxNV9SRUFEKEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUpKTsKPiArCXRtcCA9 IEk5MTVfUkVBRChIU1dfQVVEX01fQ1RTX0VOQUJMRShjcHVfdHJhbnNjb2RlcikpOwo+ICAJdG1w ICY9IH5BVURfQ09ORklHX01fTUFTSzsKPiAgCXRtcCAmPSB+QVVEX01fQ1RTX01fVkFMVUVfSU5E RVg7Cj4gIAl0bXAgJj0gfkFVRF9NX0NUU19NX1BST0dfRU5BQkxFOwo+IEBAIC0zNTgsNyArMzU3 LDcgQEAgaHN3X2RwX2F1ZGlvX2NvbmZpZ191cGRhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAkJdG1wIHw9IEFVRF9NX0NUU19NX1BST0dfRU5BQkxFOwo+ICAJfQo+ICAKPiAt CUk5MTVfV1JJVEUoSFNXX0FVRF9NX0NUU19FTkFCTEUocGlwZSksIHRtcCk7Cj4gKwlJOTE1X1dS SVRFKEhTV19BVURfTV9DVFNfRU5BQkxFKGNwdV90cmFuc2NvZGVyKSwgdG1wKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQKPiBAQCAtMzY3LDE1ICszNjYsMTQgQEAgaHN3X2hkbWlfYXVkaW9fY29u ZmlnX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlv X2NvbXBvbmVudDsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy ID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGVuY29k ZXItPnBvcnQ7Cj4gLQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gIAlpbnQgbiwgcmF0 ZTsKPiAgCXUzMiB0bXA7Cj4gIAo+ICAJcmF0ZSA9IGFjb21wID8gYWNvbXAtPmF1ZF9zYW1wbGVf cmF0ZVtwb3J0XSA6IDA7Cj4gIAo+IC0JdG1wID0gSTkxNV9SRUFEKEhTV19BVURfQ0ZHKHBpcGUp KTsKPiArCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhjcHVfdHJhbnNjb2RlcikpOwo+ICAJ dG1wICY9IH5BVURfQ09ORklHX05fVkFMVUVfSU5ERVg7Cj4gIAl0bXAgJj0gfkFVRF9DT05GSUdf UElYRUxfQ0xPQ0tfSERNSV9NQVNLOwo+ICAJdG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFC TEU7Cj4gQEAgLTM5MiwxNiArMzkwLDE2IEBAIGhzd19oZG1pX2F1ZGlvX2NvbmZpZ191cGRhdGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJRFJNX0RFQlVHX0tNUygidXNpbmcg YXV0b21hdGljIE5cbiIpOwo+ICAJfQo+ICAKPiAtCUk5MTVfV1JJVEUoSFNXX0FVRF9DRkcocGlw ZSksIHRtcCk7Cj4gKwlJOTE1X1dSSVRFKEhTV19BVURfQ0ZHKGNwdV90cmFuc2NvZGVyKSwgdG1w KTsKPiAgCj4gIAkvKgo+ICAJICogTGV0J3MgZGlzYWJsZSAiRW5hYmxlIENUUyBvciBNIFByb2cg Yml0Igo+ICAJICogYW5kIGxldCBIVyBjYWxjdWxhdGUgdGhlIHZhbHVlCj4gIAkgKi8KPiAtCXRt cCA9IEk5MTVfUkVBRChIU1dfQVVEX01fQ1RTX0VOQUJMRShwaXBlKSk7Cj4gKwl0bXAgPSBJOTE1 X1JFQUQoSFNXX0FVRF9NX0NUU19FTkFCTEUoY3B1X3RyYW5zY29kZXIpKTsKPiAgCXRtcCAmPSB+ QVVEX01fQ1RTX01fUFJPR19FTkFCTEU7Cj4gIAl0bXAgJj0gfkFVRF9NX0NUU19NX1ZBTFVFX0lO REVYOwo+IC0JSTkxNV9XUklURShIU1dfQVVEX01fQ1RTX0VOQUJMRShwaXBlKSwgdG1wKTsKPiAr CUk5MTVfV1JJVEUoSFNXX0FVRF9NX0NUU19FTkFCTEUoY3B1X3RyYW5zY29kZXIpLCB0bXApOwo+ ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IEBAIC00MTksMjggKzQxNywyOCBAQCBzdGF0aWMgdm9p ZCBoc3dfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3Rh dGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwo+ICsJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gb2xkX2NydGNf c3RhdGUtPmNwdV90cmFuc2NvZGVyOwo+ICAJdTMyIHRtcDsKPiAgCj4gLQlEUk1fREVCVUdfS01T KCJEaXNhYmxlIGF1ZGlvIGNvZGVjIG9uIHBpcGUgJWNcbiIsIHBpcGVfbmFtZShwaXBlKSk7Cj4g KwlEUk1fREVCVUdfS01TKCJEaXNhYmxlIGF1ZGlvIGNvZGVjIG9uIHRyYW5zY29kZXIgJXNcbiIs Cj4gKwkJICAgICAgdHJhbnNjb2Rlcl9uYW1lKGNwdV90cmFuc2NvZGVyKSk7Cj4gIAo+ICAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAgCj4gIAkvKiBEaXNhYmxlIHRpbWVzdGFt cHMgKi8KPiAtCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBlKSk7Cj4gKwl0bXAgPSBJ OTE1X1JFQUQoSFNXX0FVRF9DRkcoY3B1X3RyYW5zY29kZXIpKTsKPiAgCXRtcCAmPSB+QVVEX0NP TkZJR19OX1ZBTFVFX0lOREVYOwo+ICAJdG1wIHw9IEFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRTsK PiAgCXRtcCAmPSB+QVVEX0NPTkZJR19VUFBFUl9OX01BU0s7Cj4gIAl0bXAgJj0gfkFVRF9DT05G SUdfTE9XRVJfTl9NQVNLOwo+ICAJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIob2xkX2Ny dGNfc3RhdGUpKQo+ICAJCXRtcCB8PSBBVURfQ09ORklHX05fVkFMVUVfSU5ERVg7Cj4gLQlJOTE1 X1dSSVRFKEhTV19BVURfQ0ZHKHBpcGUpLCB0bXApOwo+ICsJSTkxNV9XUklURShIU1dfQVVEX0NG RyhjcHVfdHJhbnNjb2RlciksIHRtcCk7Cj4gIAo+ICAJLyogSW52YWxpZGF0ZSBFTEQgKi8KPiAg CXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX1BJTl9FTERfQ1BfVkxEKTsKPiAtCXRtcCAmPSB+QVVE SU9fRUxEX1ZBTElEKHBpcGUpOwo+IC0JdG1wICY9IH5BVURJT19PVVRQVVRfRU5BQkxFKHBpcGUp Owo+ICsJdG1wICY9IH5BVURJT19FTERfVkFMSUQoY3B1X3RyYW5zY29kZXIpOwo+ICsJdG1wICY9 IH5BVURJT19PVVRQVVRfRU5BQkxFKGNwdV90cmFuc2NvZGVyKTsKPiAgCUk5MTVfV1JJVEUoSFNX X0FVRF9QSU5fRUxEX0NQX1ZMRCwgdG1wKTsKPiAgCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7Cj4gQEAgLTQ1MSwyMiArNDQ5LDIxIEBAIHN0YXRpYyB2b2lkIGhzd19hdWRp b19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICBj b25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25u X3N0YXRlLT5jb25uZWN0b3I7Cj4gLQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwll bnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rl cjsKPiAgCWNvbnN0IHU4ICplbGQgPSBjb25uZWN0b3ItPmVsZDsKPiAgCXUzMiB0bXA7Cj4gIAlp bnQgbGVuLCBpOwo+ICAKPiAtCURSTV9ERUJVR19LTVMoIkVuYWJsZSBhdWRpbyBjb2RlYyBvbiBw aXBlICVjLCAldSBieXRlcyBFTERcbiIsCj4gLQkJICAgICAgcGlwZV9uYW1lKHBpcGUpLCBkcm1f ZWxkX3NpemUoZWxkKSk7Cj4gKwlEUk1fREVCVUdfS01TKCJFbmFibGUgYXVkaW8gY29kZWMgb24g dHJhbnNjb2RlciAlcywgJXUgYnl0ZXMgRUxEXG4iLAo+ICsJCSAgICAgIHRyYW5zY29kZXJfbmFt ZShjcHVfdHJhbnNjb2RlciksIGRybV9lbGRfc2l6ZShlbGQpKTsKPiAgCj4gIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ICAKPiAgCS8qIEVuYWJsZSBhdWRpbyBwcmVzZW5jZSBk ZXRlY3QsIGludmFsaWRhdGUgRUxEICovCj4gIAl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9QSU5f RUxEX0NQX1ZMRCk7Cj4gLQl0bXAgfD0gQVVESU9fT1VUUFVUX0VOQUJMRShwaXBlKTsKPiAtCXRt cCAmPSB+QVVESU9fRUxEX1ZBTElEKHBpcGUpOwo+ICsJdG1wIHw9IEFVRElPX09VVFBVVF9FTkFC TEUoY3B1X3RyYW5zY29kZXIpOwo+ICsJdG1wICY9IH5BVURJT19FTERfVkFMSUQoY3B1X3RyYW5z Y29kZXIpOwo+ICAJSTkxNV9XUklURShIU1dfQVVEX1BJTl9FTERfQ1BfVkxELCB0bXApOwo+ICAK PiAgCS8qCj4gQEAgLTQ3NywxOCArNDc0LDE4IEBAIHN0YXRpYyB2b2lkIGhzd19hdWRpb19jb2Rl Y19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkgKi8KPiAgCj4gIAkv KiBSZXNldCBFTEQgd3JpdGUgYWRkcmVzcyAqLwo+IC0JdG1wID0gSTkxNV9SRUFEKEhTV19BVURf RElQX0VMRF9DVFJMKHBpcGUpKTsKPiArCXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0RJUF9FTERf Q1RSTChjcHVfdHJhbnNjb2RlcikpOwo+ICAJdG1wICY9IH5JQlhfRUxEX0FERFJFU1NfTUFTSzsK PiAtCUk5MTVfV1JJVEUoSFNXX0FVRF9ESVBfRUxEX0NUUkwocGlwZSksIHRtcCk7Cj4gKwlJOTE1 X1dSSVRFKEhTV19BVURfRElQX0VMRF9DVFJMKGNwdV90cmFuc2NvZGVyKSwgdG1wKTsKPiAgCj4g IAkvKiBVcCB0byA4NCBieXRlcyBvZiBodyBFTEQgYnVmZmVyICovCj4gIAlsZW4gPSBtaW4oZHJt X2VsZF9zaXplKGVsZCksIDg0KTsKPiAgCWZvciAoaSA9IDA7IGkgPCBsZW4gLyA0OyBpKyspCj4g LQkJSTkxNV9XUklURShIU1dfQVVEX0VESURfREFUQShwaXBlKSwgKigoY29uc3QgdTMyICopZWxk ICsgaSkpOwo+ICsJCUk5MTVfV1JJVEUoSFNXX0FVRF9FRElEX0RBVEEoY3B1X3RyYW5zY29kZXIp LCAqKChjb25zdCB1MzIgKillbGQgKyBpKSk7Cj4gIAo+ICAJLyogRUxEIHZhbGlkICovCj4gIAl0 bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9QSU5fRUxEX0NQX1ZMRCk7Cj4gLQl0bXAgfD0gQVVESU9f RUxEX1ZBTElEKHBpcGUpOwo+ICsJdG1wIHw9IEFVRElPX0VMRF9WQUxJRChjcHVfdHJhbnNjb2Rl cik7Cj4gIAlJOTE1X1dSSVRFKEhTV19BVURfUElOX0VMRF9DUF9WTEQsIHRtcCk7Cj4gIAo+ICAJ LyogRW5hYmxlIHRpbWVzdGFtcHMgKi8KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgR3JhcGhpY3MgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==