From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vinod Koul Subject: Re: [PATCH v3 4/4] ALSA: hda - Move audio component accesses to hdac_i915.c Date: Mon, 7 Dec 2015 10:18:37 +0530 Message-ID: <20151207044837.GI1854@localhost> References: <1449249169-20602-1-git-send-email-tiwai@suse.de> <1449249169-20602-5-git-send-email-tiwai@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1449249169-20602-5-git-send-email-tiwai@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Takashi Iwai Cc: alsa-devel@alsa-project.org, Mengdong Lin , patches.audio@intel.com, intel-gfx@lists.freedesktop.org, David Henningsson , Daniel Vetter List-Id: alsa-devel@alsa-project.org T24gRnJpLCBEZWMgMDQsIDIwMTUgYXQgMDY6MTI6NDlQTSArMDEwMCwgVGFrYXNoaSBJd2FpIHdy b3RlOgo+IEEgY291cGxlIG9mIGk5MTVfYXVkaW9fY29tcG9uZW50IG9wcyBoYXZlIGJlZW4gYWRk ZWQgYW5kIGFjY2Vzc2VkCj4gZGlyZWN0bHkgZnJvbSBwYXRjaF9oZG1pLmMuICBJZGVhbGx5IGFs bCB0aGVzZSBzaG91bGQgYmUgZmFjdG9yZWQgb3V0Cj4gaW50byBoZGFjX2k5MTUuYy4KPiAKPiBU aGlzIHBhdGNoIGRvZXMgaXQsIGFkZHMgdHdvIG5ldyBoZWxwZXIgZnVuY3Rpb25zIGZvciBzZXR0 aW5nIE4vQ1RTCj4gYW5kIGZldGNoaW5nIEVMRCBieXRlcy4gIE9uZSBib251cyBpcyB0aGF0IHRo ZSBoYWNraXNoIHdpZGdldCB2cyBwb3J0Cj4gbWFwcGluZyBpcyBhbHNvIG1vdmVkIHRvIGhkYWNf aTkxNS5jLCBzbyB0aGF0IGl0IGNhbiBiZSBmaXhlZCAvCj4gZW5oYW5jZWQgbW9yZSBjbGVhbmx5 Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KClJldmll d2VkLWJ5OiBWaW5vZCBLb3VsIDx2aW5vZC5rb3VsQGludGVsLmNvbT4KCi0tIAp+Vmlub2QKPiAt LS0KPiAgaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAgfCAxNCArKysrKysrKysrCj4gIHNvdW5k L2hkYS9oZGFjX2k5MTUuYyAgICAgIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgfCA2OSArKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDMgZmlsZXMgY2hhbmdl ZCwgMTA2IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9p bmNsdWRlL3NvdW5kL2hkYV9pOTE1LmggYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKPiBpbmRl eCA5MzBiNDFlNWFjZjQuLmZhMzQxZmNiNTgyOSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3NvdW5k L2hkYV9pOTE1LmgKPiArKysgYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKPiBAQCAtMTAsNiAr MTAsOSBAQAo+ICBpbnQgc25kX2hkYWNfc2V0X2NvZGVjX3dha2V1cChzdHJ1Y3QgaGRhY19idXMg KmJ1cywgYm9vbCBlbmFibGUpOwo+ICBpbnQgc25kX2hkYWNfZGlzcGxheV9wb3dlcihzdHJ1Y3Qg aGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwo+ICBpbnQgc25kX2hkYWNfZ2V0X2Rpc3BsYXlf Y2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiAraW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0 ZShzdHJ1Y3QgaGRhY19idXMgKmJ1cywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpOwo+ICtpbnQg c25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgaGRhX25pZF90IG5p ZCwKPiArCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5 dGVzKTsKPiAgaW50IHNuZF9oZGFjX2k5MTVfaW5pdChzdHJ1Y3QgaGRhY19idXMgKmJ1cyk7Cj4g IGludCBzbmRfaGRhY19pOTE1X2V4aXQoc3RydWN0IGhkYWNfYnVzICpidXMpOwo+ICBpbnQgc25k X2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25zdCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnRfYXVkaW9fb3BzICopOwo+IEBAIC0yNiw2ICsyOSwxNyBAQCBzdGF0aWMgaW5saW5lIGlu dCBzbmRfaGRhY19nZXRfZGlzcGxheV9jbGsoc3RydWN0IGhkYWNfYnVzICpidXMpCj4gIHsKPiAg CXJldHVybiAwOwo+ICB9Cj4gK3N0YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9f cmF0ZShzdHJ1Y3QgaGRhY19idXMgKmJ1cywgaGRhX25pZF90IG5pZCwKPiArCQkJCQkgICBpbnQg cmF0ZSkKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KPiArc3RhdGljIGlubGluZSBpbnQgc25kX2hk YWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgaGRhX25pZF90IG5pZCwKPiAr CQkJCQkgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLAo+ICsJCQkJCSBpbnQgbWF4 X2J5dGVzKQo+ICt7Cj4gKwlyZXR1cm4gLUVOT0RFVjsKPiArfQo+ICBzdGF0aWMgaW5saW5lIGlu dCBzbmRfaGRhY19pOTE1X2luaXQoc3RydWN0IGhkYWNfYnVzICpidXMpCj4gIHsKPiAgCXJldHVy biAtRU5PREVWOwo+IGRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMgYi9zb3VuZC9o ZGEvaGRhY19pOTE1LmMKPiBpbmRleCA4ZmVmMWI4ZDFmZDguLmM1MDE3N2ZiNDY5ZiAxMDA2NDQK PiAtLS0gYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMKPiArKysgYi9zb3VuZC9oZGEvaGRhY19pOTE1 LmMKPiBAQCAtMTE4LDYgKzExOCw3MiBAQCBpbnQgc25kX2hkYWNfZ2V0X2Rpc3BsYXlfY2xrKHN0 cnVjdCBoZGFjX2J1cyAqYnVzKQo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX2dl dF9kaXNwbGF5X2Nsayk7Cj4gIAo+ICsvKiBUaGVyZSBpcyBhIGZpeGVkIG1hcHBpbmcgYmV0d2Vl biBhdWRpbyBwaW4gbm9kZSBhbmQgZGlzcGxheSBwb3J0Cj4gKyAqIG9uIGN1cnJlbnQgSW50ZWwg cGxhdGZvcm1zOgo+ICsgKiBQaW4gV2lkZ2V0IDUgLSBQT1JUIEIgKHBvcnQgPSAxIGluIGk5MTUg ZHJpdmVyKQo+ICsgKiBQaW4gV2lkZ2V0IDYgLSBQT1JUIEMgKHBvcnQgPSAyIGluIGk5MTUgZHJp dmVyKQo+ICsgKiBQaW4gV2lkZ2V0IDcgLSBQT1JUIEQgKHBvcnQgPSAzIGluIGk5MTUgZHJpdmVy KQo+ICsgKi8KPiArc3RhdGljIGludCBwaW4ycG9ydChoZGFfbmlkX3QgcGluX25pZCkKPiArewo+ ICsJcmV0dXJuIHBpbl9uaWQgLSA0Owo+ICt9Cj4gKwo+ICsvKioKPiArICogc25kX2hkYWNfc3lu Y19hdWRpb19yYXRlIC0gU2V0IE4vQ1RTIGJhc2VkIG9uIHRoZSBzYW1wbGUgcmF0ZQo+ICsgKiBA YnVzOiBIREEgY29yZSBidXMKPiArICogQG5pZDogdGhlIHBpbiB3aWRnZXQgTklECj4gKyAqIEBy YXRlOiB0aGUgc2FtcGxlIHJhdGUgdG8gc2V0Cj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gaXMg c3VwcG9zZWQgdG8gYmUgdXNlZCBvbmx5IGJ5IGEgSEQtYXVkaW8gY29udHJvbGxlcgo+ICsgKiBk cml2ZXIgdGhhdCBuZWVkcyB0aGUgaW50ZXJhY3Rpb24gd2l0aCBpOTE1IGdyYXBoaWNzLgo+ICsg Kgo+ICsgKiBUaGlzIGZ1bmN0aW9uIHNldHMgTi9DVFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVu IHNhbXBsZSByYXRlLgo+ICsgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3MsIG9yIGEgbmVnYXRp dmUgZXJyb3IgY29kZS4KPiArICovCj4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3Ry dWN0IGhkYWNfYnVzICpidXMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQo+ICt7Cj4gKwlzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7Cj4g Kwo+ICsJaWYgKCFhY29tcCB8fCAhYWNvbXAtPm9wcyB8fCAhYWNvbXAtPm9wcy0+c3luY19hdWRp b19yYXRlKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsJcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNf YXVkaW9fcmF0ZShhY29tcC0+ZGV2LCBwaW4ycG9ydChuaWQpLCByYXRlKTsKPiArfQo+ICtFWFBP UlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOwo+ICsKPiArLyoqCj4gKyAq IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQgLSBHZXQgdGhlIGF1ZGlvIHN0YXRlIGFuZCBFTEQgdmlh IGNvbXBvbmVudAo+ICsgKiBAYnVzOiBIREEgY29yZSBidXMKPiArICogQG5pZDogdGhlIHBpbiB3 aWRnZXQgTklECj4gKyAqIEBhdWRpb19lbmFibGVkOiB0aGUgcG9pbnRlciB0byBzdG9yZSB0aGUg Y3VycmVudCBhdWRpbyBzdGF0ZQo+ICsgKiBAYnVmZmVyOiB0aGUgYnVmZmVyIHBvaW50ZXIgdG8g c3RvcmUgRUxEIGJ5dGVzCj4gKyAqIEBtYXhfYnl0ZXM6IHRoZSBtYXggYnl0ZXMgdG8gYmUgc3Rv cmVkIG9uIEBidWZmZXIKPiArICoKPiArICogVGhpcyBmdW5jdGlvbiBpcyBzdXBwb3NlZCB0byBi ZSB1c2VkIG9ubHkgYnkgYSBIRC1hdWRpbyBjb250cm9sbGVyCj4gKyAqIGRyaXZlciB0aGF0IG5l ZWRzIHRoZSBpbnRlcmFjdGlvbiB3aXRoIGk5MTUgZ3JhcGhpY3MuCj4gKyAqCj4gKyAqIFRoaXMg ZnVuY3Rpb24gcXVlcmllcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXVkaW8gb24gdGhlIGdp dmVuCj4gKyAqIGRpZ2l0YWwgcG9ydCBhbmQgZmV0Y2hlcyB0aGUgRUxEIGJ5dGVzIG9udG8gdGhl IGdpdmVuIGJ1ZmZlci4KPiArICogSXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGZvciB0 aGUgdG90YWwgRUxEIGRhdGEsIHplcm8gZm9yCj4gKyAqIGludmFsaWQgRUxELCBvciBhIG5lZ2F0 aXZlIGVycm9yIGNvZGUuCj4gKyAqCj4gKyAqIFRoZSByZXR1cm4gc2l6ZSBpcyB0aGUgdG90YWwg Ynl0ZXMgcmVxdWlyZWQgZm9yIHRoZSB3aG9sZSBFTEQgYnl0ZXMsCj4gKyAqIHRodXMgaXQgbWF5 IGJlIG92ZXIgQG1heF9ieXRlcy4gIElmIGl0J3Mgb3ZlciBAbWF4X2J5dGVzLCBpdCBpbXBsaWVz Cj4gKyAqIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGJ5dGVzIGhhdmUgYmVlbiBmZXRjaGVkLgo+ ICsgKi8KPiAraW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfYnVzICpidXMs IGhkYV9uaWRfdCBuaWQsCj4gKwkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZl ciwgaW50IG1heF9ieXRlcykKPiArewo+ICsJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICph Y29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICsKPiArCWlmICghYWNvbXAgfHwgIWFjb21w LT5vcHMgfHwgIWFjb21wLT5vcHMtPmdldF9lbGQpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ ICsJcmV0dXJuIGFjb21wLT5vcHMtPmdldF9lbGQoYWNvbXAtPmRldiwgcGluMnBvcnQobmlkKSwg YXVkaW9fZW5hYmxlZCwKPiArCQkJCSAgIGJ1ZmZlciwgbWF4X2J5dGVzKTsKPiArfQo+ICtFWFBP UlRfU1lNQk9MX0dQTChzbmRfaGRhY19hY29tcF9nZXRfZWxkKTsKPiArCj4gIHN0YXRpYyBpbnQg aGRhY19jb21wb25lbnRfbWFzdGVyX2JpbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gIAlz dHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gaGRhY19hY29tcDsKPiBkaWZmIC0t Z2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hk bWkuYwo+IGluZGV4IDYxZjAwNGE3MzU5MC4uMWVmMGM2OTU5ZTc1IDEwMDY0NAo+IC0tLSBhL3Nv dW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1p LmMKPiBAQCAtMTQzOCwxNyArMTQzOCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX25vdF9zaGFyZV9h c3NpZ25lZF9jdnQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAl9Cj4gIH0KPiAgCj4gLS8q IFRoZXJlIGlzIGEgZml4ZWQgbWFwcGluZyBiZXR3ZWVuIGF1ZGlvIHBpbiBub2RlIGFuZCBkaXNw bGF5IHBvcnQKPiAtICogb24gY3VycmVudCBJbnRlbCBwbGF0Zm9ybXM6Cj4gLSAqIFBpbiBXaWRn ZXQgNSAtIFBPUlQgQiAocG9ydCA9IDEgaW4gaTkxNSBkcml2ZXIpCj4gLSAqIFBpbiBXaWRnZXQg NiAtIFBPUlQgQyAocG9ydCA9IDIgaW4gaTkxNSBkcml2ZXIpCj4gLSAqIFBpbiBXaWRnZXQgNyAt IFBPUlQgRCAocG9ydCA9IDMgaW4gaTkxNSBkcml2ZXIpCj4gLSAqLwo+IC1zdGF0aWMgaW50IGlu dGVsX3BpbjJwb3J0KGhkYV9uaWRfdCBwaW5fbmlkKQo+IC17Cj4gLQlyZXR1cm4gcGluX25pZCAt IDQ7Cj4gLX0KPiAtCj4gIC8qCj4gICAqIEhEQSBQQ00gY2FsbGJhY2tzCj4gICAqLwo+IEBAIC0x NjYwLDM4ICsxNjQ5LDM2IEBAIHN0YXRpYyBib29sIGhkbWlfcHJlc2VudF9zZW5zZV92aWFfdmVy YnMoc3RydWN0IGhkbWlfc3BlY19wZXJfcGluICpwZXJfcGluLAo+ICBzdGF0aWMgdm9pZCBzeW5j X2VsZF92aWFfYWNvbXAoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gIAkJCSAgICAgICBzdHJ1 Y3QgaGRtaV9zcGVjX3Blcl9waW4gKnBlcl9waW4pCj4gIHsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudCAqYWNvbXAgPSBjb2RlYy0+YnVzLT5jb3JlLmF1ZGlvX2NvbXBvbmVudDsKPiAg CXN0cnVjdCBoZG1pX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKPiAgCXN0cnVjdCBoZG1pX2Vs ZCAqZWxkID0gJnNwZWMtPnRlbXBfZWxkOwo+ICAJaW50IHNpemU7Cj4gIAo+IC0JaWYgKGFjb21w ICYmIGFjb21wLT5vcHMgJiYgYWNvbXAtPm9wcy0+Z2V0X2VsZCkgewo+IC0JCW11dGV4X2xvY2so JnBlcl9waW4tPmxvY2spOwo+IC0JCXNpemUgPSBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5k ZXYsCj4gLQkJCQkJICAgaW50ZWxfcGluMnBvcnQocGVyX3Bpbi0+cGluX25pZCksCj4gLQkJCQkJ ICAgJmVsZC0+bW9uaXRvcl9wcmVzZW50LAo+IC0JCQkJCSAgIGVsZC0+ZWxkX2J1ZmZlciwKPiAt CQkJCQkgICBFTERfTUFYX1NJWkUpOwo+IC0JCWlmIChzaXplID4gMCkgewo+IC0JCQlzaXplID0g bWluKHNpemUsIEVMRF9NQVhfU0laRSk7Cj4gLQkJCWlmIChzbmRfaGRtaV9wYXJzZV9lbGQoY29k ZWMsICZlbGQtPmluZm8sCj4gLQkJCQkJICAgICAgIGVsZC0+ZWxkX2J1ZmZlciwgc2l6ZSkgPCAw KQo+IC0JCQkJc2l6ZSA9IC1FSU5WQUw7Cj4gLQkJfQo+IC0KPiAtCQlpZiAoc2l6ZSA+IDApIHsK PiAtCQkJZWxkLT5lbGRfdmFsaWQgPSB0cnVlOwo+IC0JCQllbGQtPmVsZF9zaXplID0gc2l6ZTsK PiAtCQl9IGVsc2Ugewo+IC0JCQllbGQtPmVsZF92YWxpZCA9IGZhbHNlOwo+IC0JCQllbGQtPmVs ZF9zaXplID0gMDsKPiAtCQl9Cj4gLQo+IC0JCXVwZGF0ZV9lbGQoY29kZWMsIHBlcl9waW4sIGVs ZCk7Cj4gLQkJc25kX2phY2tfcmVwb3J0KHBlcl9waW4tPmFjb21wX2phY2ssCj4gLQkJCQllbGQt Pm1vbml0b3JfcHJlc2VudCA/IFNORF9KQUNLX0FWT1VUIDogMCk7Cj4gLQkJbXV0ZXhfdW5sb2Nr KCZwZXJfcGluLT5sb2NrKTsKPiArCW11dGV4X2xvY2soJnBlcl9waW4tPmxvY2spOwo+ICsJc2l6 ZSA9IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoJmNvZGVjLT5idXMtPmNvcmUsIHBlcl9waW4tPnBp bl9uaWQsCj4gKwkJCQkgICAgICAmZWxkLT5tb25pdG9yX3ByZXNlbnQsIGVsZC0+ZWxkX2J1ZmZl ciwKPiArCQkJCSAgICAgIEVMRF9NQVhfU0laRSk7Cj4gKwlpZiAoc2l6ZSA8IDApCj4gKwkJZ290 byB1bmxvY2s7Cj4gKwlpZiAoc2l6ZSA+IDApIHsKPiArCQlzaXplID0gbWluKHNpemUsIEVMRF9N QVhfU0laRSk7Cj4gKwkJaWYgKHNuZF9oZG1pX3BhcnNlX2VsZChjb2RlYywgJmVsZC0+aW5mbywK PiArCQkJCSAgICAgICBlbGQtPmVsZF9idWZmZXIsIHNpemUpIDwgMCkKPiArCQkJc2l6ZSA9IC1F SU5WQUw7Cj4gKwl9Cj4gKwo+ICsJaWYgKHNpemUgPiAwKSB7Cj4gKwkJZWxkLT5lbGRfdmFsaWQg PSB0cnVlOwo+ICsJCWVsZC0+ZWxkX3NpemUgPSBzaXplOwo+ICsJfSBlbHNlIHsKPiArCQllbGQt PmVsZF92YWxpZCA9IGZhbHNlOwo+ICsJCWVsZC0+ZWxkX3NpemUgPSAwOwo+ICAJfQo+ICsKPiAr CXVwZGF0ZV9lbGQoY29kZWMsIHBlcl9waW4sIGVsZCk7Cj4gKwlzbmRfamFja19yZXBvcnQocGVy X3Bpbi0+YWNvbXBfamFjaywKPiArCQkJZWxkLT5tb25pdG9yX3ByZXNlbnQgPyBTTkRfSkFDS19B Vk9VVCA6IDApOwo+ICsgdW5sb2NrOgo+ICsJbXV0ZXhfdW5sb2NrKCZwZXJfcGluLT5sb2NrKTsK PiAgfQo+ICAKPiAgc3RhdGljIGJvb2wgaGRtaV9wcmVzZW50X3NlbnNlKHN0cnVjdCBoZG1pX3Nw ZWNfcGVyX3BpbiAqcGVyX3BpbiwgaW50IHJlcG9sbCkKPiBAQCAtMTg1Nyw3ICsxODQ0LDYgQEAg c3RhdGljIGludCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9w Y21fc3RyZWFtICpoaW5mbywKPiAgCXN0cnVjdCBoZG1pX3NwZWNfcGVyX3BpbiAqcGVyX3BpbiA9 IGdldF9waW4oc3BlYywgcGluX2lkeCk7Cj4gIAloZGFfbmlkX3QgcGluX25pZCA9IHBlcl9waW4t PnBpbl9uaWQ7Cj4gIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFt LT5ydW50aW1lOwo+IC0Jc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGNvZGVj LT5idXMtPmNvcmUuYXVkaW9fY29tcG9uZW50Owo+ICAJYm9vbCBub25fcGNtOwo+ICAJaW50IHBp bmN0bDsKPiAgCj4gQEAgLTE4NzYsMTAgKzE4NjIsNyBAQCBzdGF0aWMgaW50IGdlbmVyaWNfaGRt aV9wbGF5YmFja19wY21fcHJlcGFyZShzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAo+ICAK PiAgCS8qIENhbGwgc3luY19hdWRpb19yYXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxseSBp ZiBuZWNlc3NhcnkgKi8KPiAgCS8qIFRvZG86IGFkZCBEUDEuMiBNU1QgYXVkaW8gc3VwcG9ydCBs YXRlciAqLwo+IC0JaWYgKGFjb21wICYmIGFjb21wLT5vcHMgJiYgYWNvbXAtPm9wcy0+c3luY19h dWRpb19yYXRlKQo+IC0JCWFjb21wLT5vcHMtPnN5bmNfYXVkaW9fcmF0ZShhY29tcC0+ZGV2LAo+ IC0JCQkJaW50ZWxfcGluMnBvcnQocGluX25pZCksCj4gLQkJCQlydW50aW1lLT5yYXRlKTsKPiAr CXNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmJ1cy0+Y29yZSwgcGluX25pZCwgcnVu dGltZS0+cmF0ZSk7Cj4gIAo+ICAJbm9uX3BjbSA9IGNoZWNrX25vbl9wY21fcGVyX2N2dChjb2Rl YywgY3Z0X25pZCk7Cj4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsKPiAtLSAKPiAyLjYu Mwo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=