From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: [PATCH v2 4/6] ALSA: hda - Support led audio trigger Date: Thu, 29 Nov 2018 08:31:29 +0100 Message-ID: <20181129073131.4338-5-tiwai@suse.de> References: <20181129073131.4338-1-tiwai@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181129073131.4338-1-tiwai-l3A5Bk7waGM@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ibm-acpi-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org Cc: Ayman Bagabas , Henrique de Moraes Holschuh , platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Hui Wang , ibm-acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Jacek Anaszewski , Pavel Machek , =?UTF-8?q?Pali=20Roh=C3=A1r?= , Andy Shevchenko , linux-leds-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: platform-driver-x86.vger.kernel.org Tm93IGFsbCByZWxldmFudCBwbGF0Zm9ybSBkcml2ZXJzIGFyZSBwcm92aWRpbmcgdGhlIExFRCBh dWRpbyB0cmlnZ2VyLAp3ZSBjYW4gc3dpdGNoIHRoZSBtdXRlIExFRCBjb250cm9sIHdpdGggdGhl IExFRCB0cmlnZ2VyLCBmaW5hbGx5LgoKRm9yIHRoZSBtaWMtbXV0ZSBMRUQgdHJpZ2dlciwgYSBj b21tb24gZml4dXAgZnVuY3Rpb24sCnNuZF9oZGFfZ2VuX2ZpeHVwX21pY211dGVfbGVkKCksIGlz IHByb3ZpZGVkIHRvIGJlIGNhbGxlZCBmb3IgdGhlCmNvcnJlc3BvbmRpbmcgcXVpcmsgZW50cmll cy4gIFRoaXMgc2V0cyB1cCB0aGUgY2FwdHVyZSBzeW5jIGhvb2sgd2l0aApsZWR0cmlnX2F1ZGlv X3NldCgpIGNhbGwgYXBwcm9wcmlhdGVseS4KCkZvciB0aGUgbXV0ZSBMRUQgdHJpZ2dlciwgd2hp Y2ggaXMgZG9uZSBjdXJyZW50bHkgb25seSBmb3IKdGhpbmtwYWRfYWNwaSwgdGhlIGNhbGwgaXMg cmVwbGFjZWQgd2l0aCBsZWR0cmlnX2F1ZGlvX3NldCgpIGFzIHdlbGwuCgpPdmVyYWxsLCB0aGUg YmVhdXR5IG9mIHRoZSBuZXcgaW1wbGVtZW50YXRpb24gaXMgdGhhdCB0aGUgd2hvbGUgdWdseQpi aW5kaW5ncyB3aXRoIHJlcXVlc3Rfc3ltYm9sKCkgYXJlIGRyb3BwZWQsIGFuZCBhbHNvIHRoYXQg aXQgcHJvdmlkZXMKbW9yZSBmbGV4aWJpbGl0eSB0byB1c2Vycy4KCk9uZSBwb3RlbnRpYWwgYmVo YXZpb3IgY2hhbmdlIGJ5IHRoaXMgcGF0Y2ggaXMgdGhhdCB0aGUgbXV0ZSBMRUQgZW51bQptYXkg YmUgY3JlYXRlZCBvbiBtYWNoaW5lcyB0aGF0IGFjdHVhbGx5IGhhdmUgbm8gTEVEIGRldmljZS4g IEluIHRoZQpmb3JtZXIgY29kZSwgd2UgZGlkIHRlc3QtY2FsbCBhbmQgYWJvcnQgYmluZGluZyBp ZiB0aGUgdGVzdCBmYWlsZWQuCkJ1dCB3aXRoIHRoZSBMRUQtdHJpZ2dlciBiaW5kaW5nLCB0aGlz IHRlc3QgaXNuJ3QgcG9zc2libGUsIGFuZCB0aGUKYWN0dWFsIGNoZWNrIGlzIGRvbmUgaW4gdGhl IExFRCBjbGFzcyBkZXZpY2Ugc2lkZS4gIFNvIGl0J3MgdGhlCmRvd25zaWRlIG9mIHNpbXBsZW5l c3MuCgpBbHNvLCBub3RlIHRoYXQgdGhlIEhELWF1ZGlvIGNvZGVjIGRyaXZlciBkb2Vzbid0IHNl bGVjdCBDT05GSUdfTEVEUwphbmQgY28gYnkgaXRzZWxmLiAgSXQncyBzdXBwb3NlZCB0byBiZSBz ZWxlY3RlZCBieSB0aGUgcGxhdGZvcm0KZHJpdmVycyBpbnN0ZWFkLgoKQWNrZWQtYnk6IEphY2Vr IEFuYXN6ZXdza2kgPGphY2VrLmFuYXN6ZXdza2lAZ21haWwuY29tPgpBY2tlZC1ieTogUGF2ZWwg TWFjaGVrIDxwYXZlbEB1Y3cuY3o+CkFja2VkLWJ5OiBQYWxpIFJvaMOhciA8cGFsaS5yb2hhckBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KLS0t CiBzb3VuZC9wY2kvaGRhL2RlbGxfd21pX2hlbHBlci5jIHwgNDggLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBzb3VuZC9wY2kvaGRhL2hkYV9nZW5lcmljLmMgICAgIHwgMzEgKysr KysrKysrKysrKysrKysrKysrCiBzb3VuZC9wY2kvaGRhL2hkYV9nZW5lcmljLmggICAgIHwgIDIg KysKIHNvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jICAgfCAxNyArKysrKy0tLS0tLS0KIHNv dW5kL3BjaS9oZGEvdGhpbmtwYWRfaGVscGVyLmMgfCA0MyArKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA5NSBkZWxldGlvbnMo LSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzb3VuZC9wY2kvaGRhL2RlbGxfd21pX2hlbHBlci5jCgpk aWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9kZWxsX3dtaV9oZWxwZXIuYyBiL3NvdW5kL3BjaS9o ZGEvZGVsbF93bWlfaGVscGVyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiZDZj ODdhNGVkNi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NvdW5kL3BjaS9oZGEvZGVsbF93bWlfaGVscGVy LmMKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vLyBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogR1BMLTIuMAotLyogSGVscGVyIGZ1bmN0aW9ucyBmb3IgRGVsbCBNaWMgTXV0ZSBMRUQg Y29udHJvbDsKLSAqIHRvIGJlIGluY2x1ZGVkIGZyb20gY29kZWMgZHJpdmVyCi0gKi8KLQotI2lm IElTX0VOQUJMRUQoQ09ORklHX0RFTExfTEFQVE9QKQotI2luY2x1ZGUgPGxpbnV4L2RlbGwtbGVk Lmg+Ci0KLXN0YXRpYyBpbnQgKCpkZWxsX21pY211dGVfbGVkX3NldF9mdW5jKShpbnQpOwotCi1z dGF0aWMgdm9pZCBkZWxsX21pY211dGVfdXBkYXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQot ewotCXN0cnVjdCBoZGFfZ2VuX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKLQotCWRlbGxfbWlj bXV0ZV9sZWRfc2V0X2Z1bmMoc3BlYy0+bWljbXV0ZV9sZWQubGVkX3ZhbHVlKTsKLX0KLQotc3Rh dGljIHZvaWQgYWxjX2ZpeHVwX2RlbGxfd21pKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAotCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCBoZGFfZml4dXAgKmZpeCwgaW50IGFjdGlvbikKLXsKLQlib29s IHJlbW92ZWZ1bmMgPSBmYWxzZTsKLQotCWlmIChhY3Rpb24gPT0gSERBX0ZJWFVQX0FDVF9QUk9C RSkgewotCQlpZiAoIWRlbGxfbWljbXV0ZV9sZWRfc2V0X2Z1bmMpCi0JCQlkZWxsX21pY211dGVf bGVkX3NldF9mdW5jID0gc3ltYm9sX3JlcXVlc3QoZGVsbF9taWNtdXRlX2xlZF9zZXQpOwotCQlp ZiAoIWRlbGxfbWljbXV0ZV9sZWRfc2V0X2Z1bmMpIHsKLQkJCWNvZGVjX3dhcm4oY29kZWMsICJG YWlsZWQgdG8gZmluZCBkZWxsIHdtaSBzeW1ib2wgZGVsbF9taWNtdXRlX2xlZF9zZXRcbiIpOwot CQkJcmV0dXJuOwotCQl9Ci0KLQkJcmVtb3ZlZnVuYyA9IChkZWxsX21pY211dGVfbGVkX3NldF9m dW5jKGZhbHNlKSA8IDApIHx8Ci0JCQkoc25kX2hkYV9nZW5fYWRkX21pY211dGVfbGVkKGNvZGVj LAotCQkJCQkJICAgICBkZWxsX21pY211dGVfdXBkYXRlKSA8IDApOwotCX0KLQotCWlmIChkZWxs X21pY211dGVfbGVkX3NldF9mdW5jICYmIChhY3Rpb24gPT0gSERBX0ZJWFVQX0FDVF9GUkVFIHx8 IHJlbW92ZWZ1bmMpKSB7Ci0JCXN5bWJvbF9wdXQoZGVsbF9taWNtdXRlX2xlZF9zZXQpOwotCQlk ZWxsX21pY211dGVfbGVkX3NldF9mdW5jID0gTlVMTDsKLQl9Ci19Ci0KLSNlbHNlIC8qIENPTkZJ R19ERUxMX0xBUFRPUCAqLwotc3RhdGljIHZvaWQgYWxjX2ZpeHVwX2RlbGxfd21pKHN0cnVjdCBo ZGFfY29kZWMgKmNvZGVjLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBoZGFfZml4dXAgKmZpeCwg aW50IGFjdGlvbikKLXsKLX0KLQotI2VuZGlmIC8qIENPTkZJR19ERUxMX0xBUFRPUCAqLwpkaWZm IC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfZ2VuZXJpYy5jIGIvc291bmQvcGNpL2hkYS9oZGFf Z2VuZXJpYy5jCmluZGV4IDI3NjE1MGYyOWNkYS4uNDA5NWNkN2M1NmM2IDEwMDY0NAotLS0gYS9z b3VuZC9wY2kvaGRhL2hkYV9nZW5lcmljLmMKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfZ2VuZXJp Yy5jCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVk ZSA8bGludXgvYml0b3BzLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8 bGludXgvbGVkcy5oPgogI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9q YWNrLmg+CiAjaW5jbHVkZSA8c291bmQvdGx2Lmg+CkBAIC00MDM1LDYgKzQwMzYsMzYgQEAgaW50 IHNuZF9oZGFfZ2VuX2FkZF9taWNtdXRlX2xlZChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKIH0K IEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFfZ2VuX2FkZF9taWNtdXRlX2xlZCk7CiAKKyNpZiBJ U19SRUFDSEFCTEUoQ09ORklHX0xFRFNfVFJJR0dFUl9BVURJTykKK3N0YXRpYyB2b2lkIGNhbGxf bGVkdHJpZ19taWNtdXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCXN0cnVjdCBoZGFf Z2VuX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKKworCWxlZHRyaWdfYXVkaW9fc2V0KExFRF9B VURJT19NSUNNVVRFLAorCQkJICBzcGVjLT5taWNtdXRlX2xlZC5sZWRfdmFsdWUgPyBMRURfT04g OiBMRURfT0ZGKTsKK30KKyNlbmRpZgorCisvKioKKyAqIHNuZF9oZGFfZ2VuX2ZpeHVwX21pY211 dGVfbGVkIC0gQSBmaXh1cCBmb3IgbWljLW11dGUgTEVEIHRyaWdnZXIKKyAqCisgKiBQYXNzIHRo aXMgZnVuY3Rpb24gdG8gdGhlIHF1aXJrIGVudHJ5IGlmIGFub3RoZXIgZHJpdmVyIHN1cHBvcnRz IHRoZQorICogYXVkaW8gbWljLW11dGUgTEVEIHRyaWdnZXIuICBUaGVuIHRoaXMgd2lsbCBiaW5k IHRoZSBtaXhlciBjYXB0dXJlIHN3aXRjaAorICogY2hhbmdlIHdpdGggdGhlIExFRC4KKyAqCisg KiBOb3RlIHRoYXQgdGhpcyBmaXh1cCBoYXMgdG8gYmUgY2FsbGVkIGFmdGVyIG90aGVyIGZpeHVw IHRoYXQgc2V0cworICogY2FwX3N5bmNfaG9vay4gIE90aGVyd2lzZSB0aGUgY2hhaW5pbmcgd291 bGRuJ3Qgd29yay4KKyAqLwordm9pZCBzbmRfaGRhX2dlbl9maXh1cF9taWNtdXRlX2xlZChzdHJ1 Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaGRhX2ZpeHVwICpmaXgs IGludCBhY3Rpb24pCit7CisjaWYgSVNfUkVBQ0hBQkxFKENPTkZJR19MRURTX1RSSUdHRVJfQVVE SU8pCisJaWYgKGFjdGlvbiA9PSBIREFfRklYVVBfQUNUX1BST0JFKQorCQlzbmRfaGRhX2dlbl9h ZGRfbWljbXV0ZV9sZWQoY29kZWMsIGNhbGxfbGVkdHJpZ19taWNtdXRlKTsKKyNlbmRpZgorfQor RVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYV9nZW5fZml4dXBfbWljbXV0ZV9sZWQpOworCiAvKgog ICogcGFyc2UgZGlnaXRhbCBJL09zIGFuZCBzZXQgdXAgTklEcyBpbiBCSU9TIGF1dG8tcGFyc2Ug bW9kZQogICovCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hkYV9nZW5lcmljLmggYi9zb3Vu ZC9wY2kvaGRhL2hkYV9nZW5lcmljLmgKaW5kZXggMTAxMjM2NjRmYTYxLi43OGQ3NzA0MmIwNWEg MTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2dlbmVyaWMuaAorKysgYi9zb3VuZC9wY2kv aGRhL2hkYV9nZW5lcmljLmgKQEAgLTM1Nyw1ICszNTcsNyBAQCBpbnQgc25kX2hkYV9nZW5fZml4 X3Bpbl9wb3dlcihzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25pZF90IHBpbik7CiAKIGlu dCBzbmRfaGRhX2dlbl9hZGRfbWljbXV0ZV9sZWQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCiAJ CQkJdm9pZCAoKmhvb2spKHN0cnVjdCBoZGFfY29kZWMgKikpOwordm9pZCBzbmRfaGRhX2dlbl9m aXh1cF9taWNtdXRlX2xlZChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkgICBjb25zdCBz dHJ1Y3QgaGRhX2ZpeHVwICpmaXgsIGludCBhY3Rpb24pOwogCiAjZW5kaWYgLyogX19TT1VORF9I REFfR0VORVJJQ19IICovCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsu YyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCmluZGV4IGZhNjE2NzRhNTYwNS4uOTkz ZDM0YzE0MWMyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYworKysg Yi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYwpAQCAtNTM2OCw5ICs1MzY4LDYgQEAgc3Rh dGljIHZvaWQgYWxjX2ZpeHVwX3RoaW5rcGFkX2FjcGkoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMs CiAJaGRhX2ZpeHVwX3RoaW5rcGFkX2FjcGkoY29kZWMsIGZpeCwgYWN0aW9uKTsKIH0KIAotLyog Zm9yIGRlbGwgd21pIG1pYyBtdXRlIGxlZCAqLwotI2luY2x1ZGUgImRlbGxfd21pX2hlbHBlci5j IgotCiAvKiBmb3IgYWxjMjk1X2ZpeHVwX2hwX3RvcF9zcGVha2VycyAqLwogI2luY2x1ZGUgImhw X3gzNjBfaGVscGVyLmMiCiAKQEAgLTU0NDgsNyArNTQ0NSw3IEBAIGVudW0gewogCUFMQzI5Ml9G SVhVUF9UUFQ0NDBfRE9DSywKIAlBTEMyOTJfRklYVVBfVFBUNDQwLAogCUFMQzI4M19GSVhVUF9I RUFEU0VUX01JQywKLQlBTEMyNTVfRklYVVBfREVMTF9XTUlfTUlDX01VVEVfTEVELAorCUFMQzI1 NV9GSVhVUF9NSUNfTVVURV9MRUQsCiAJQUxDMjgyX0ZJWFVQX0FTUElSRV9WNV9QSU5TLAogCUFM QzI4MF9GSVhVUF9IUF9HUElPNCwKIAlBTEMyODZfRklYVVBfSFBfR1BJT19MRUQsCkBAIC01NzQw LDcgKzU3MzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9maXh1cCBhbGMyNjlfZml4dXBz W10gPSB7CiAJCS50eXBlID0gSERBX0ZJWFVQX0ZVTkMsCiAJCS52LmZ1bmMgPSBhbGNfZml4dXBf aGVhZHNldF9tb2RlLAogCQkuY2hhaW5lZCA9IHRydWUsCi0JCS5jaGFpbl9pZCA9IEFMQzI1NV9G SVhVUF9ERUxMX1dNSV9NSUNfTVVURV9MRUQKKwkJLmNoYWluX2lkID0gQUxDMjU1X0ZJWFVQX01J Q19NVVRFX0xFRAogCX0sCiAJW0FMQzI2OV9GSVhVUF9IRUFEU0VUX01PREVfTk9fSFBfTUlDXSA9 IHsKIAkJLnR5cGUgPSBIREFfRklYVVBfRlVOQywKQEAgLTU5NjYsNyArNTk2Myw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgaGRhX2ZpeHVwIGFsYzI2OV9maXh1cHNbXSA9IHsKIAkJLnR5cGUgPSBI REFfRklYVVBfRlVOQywKIAkJLnYuZnVuYyA9IGFsY19maXh1cF9oZWFkc2V0X21vZGVfYWxjMjU1 LAogCQkuY2hhaW5lZCA9IHRydWUsCi0JCS5jaGFpbl9pZCA9IEFMQzI1NV9GSVhVUF9ERUxMX1dN SV9NSUNfTVVURV9MRUQKKwkJLmNoYWluX2lkID0gQUxDMjU1X0ZJWFVQX01JQ19NVVRFX0xFRAog CX0sCiAJW0FMQzI1NV9GSVhVUF9IRUFEU0VUX01PREVfTk9fSFBfTUlDXSA9IHsKIAkJLnR5cGUg PSBIREFfRklYVVBfRlVOQywKQEAgLTYwMDEsOSArNTk5OCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaGRhX2ZpeHVwIGFsYzI2OV9maXh1cHNbXSA9IHsKIAkJCXsgfSwKIAkJfSwKIAl9LAotCVtB TEMyNTVfRklYVVBfREVMTF9XTUlfTUlDX01VVEVfTEVEXSA9IHsKKwlbQUxDMjU1X0ZJWFVQX01J Q19NVVRFX0xFRF0gPSB7CiAJCS50eXBlID0gSERBX0ZJWFVQX0ZVTkMsCi0JCS52LmZ1bmMgPSBh bGNfZml4dXBfZGVsbF93bWksCisJCS52LmZ1bmMgPSBzbmRfaGRhX2dlbl9maXh1cF9taWNtdXRl X2xlZCwKIAl9LAogCVtBTEMyODJfRklYVVBfQVNQSVJFX1Y1X1BJTlNdID0gewogCQkudHlwZSA9 IEhEQV9GSVhVUF9QSU5TLApAQCAtNjA2Miw3ICs2MDU5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBoZGFfZml4dXAgYWxjMjY5X2ZpeHVwc1tdID0gewogCQkudHlwZSA9IEhEQV9GSVhVUF9GVU5D LAogCQkudi5mdW5jID0gYWxjX2ZpeHVwX2hlYWRzZXRfbW9kZV9kZWxsX2FsYzI4OCwKIAkJLmNo YWluZWQgPSB0cnVlLAotCQkuY2hhaW5faWQgPSBBTEMyNTVfRklYVVBfREVMTF9XTUlfTUlDX01V VEVfTEVECisJCS5jaGFpbl9pZCA9IEFMQzI1NV9GSVhVUF9NSUNfTVVURV9MRUQKIAl9LAogCVtB TEMyODhfRklYVVBfREVMTDFfTUlDX05PX1BSRVNFTkNFXSA9IHsKIAkJLnR5cGUgPSBIREFfRklY VVBfUElOUywKQEAgLTY3MTksNyArNjcxNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX21v ZGVsX2ZpeHVwIGFsYzI2OV9maXh1cF9tb2RlbHNbXSA9IHsKIAl7LmlkID0gQUxDMjU1X0ZJWFVQ X0RFTEwyX01JQ19OT19QUkVTRU5DRSwgLm5hbWUgPSAiYWxjMjU1LWRlbGwyIn0sCiAJey5pZCA9 IEFMQzI5M19GSVhVUF9ERUxMMV9NSUNfTk9fUFJFU0VOQ0UsIC5uYW1lID0gImFsYzI5My1kZWxs MSJ9LAogCXsuaWQgPSBBTEMyODNfRklYVVBfSEVBRFNFVF9NSUMsIC5uYW1lID0gImFsYzI4My1o ZWFkc2V0In0sCi0Jey5pZCA9IEFMQzI1NV9GSVhVUF9ERUxMX1dNSV9NSUNfTVVURV9MRUQsIC5u YW1lID0gImFsYzI1NS1kZWxsLW11dGUifSwKKwl7LmlkID0gQUxDMjU1X0ZJWFVQX01JQ19NVVRF X0xFRCwgLm5hbWUgPSAiYWxjMjU1LWRlbGwtbXV0ZSJ9LAogCXsuaWQgPSBBTEMyODJfRklYVVBf QVNQSVJFX1Y1X1BJTlMsIC5uYW1lID0gImFzcGlyZS12NSJ9LAogCXsuaWQgPSBBTEMyODBfRklY VVBfSFBfR1BJTzQsIC5uYW1lID0gImhwLWdwaW80In0sCiAJey5pZCA9IEFMQzI4Nl9GSVhVUF9I UF9HUElPX0xFRCwgLm5hbWUgPSAiaHAtZ3Bpby1sZWQifSwKZGlmZiAtLWdpdCBhL3NvdW5kL3Bj aS9oZGEvdGhpbmtwYWRfaGVscGVyLmMgYi9zb3VuZC9wY2kvaGRhL3RoaW5rcGFkX2hlbHBlci5j CmluZGV4IDU2ODU3NWI3MmYyZi4uNDA4OWZlYjhjNjhlIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kv aGRhL3RoaW5rcGFkX2hlbHBlci5jCisrKyBiL3NvdW5kL3BjaS9oZGEvdGhpbmtwYWRfaGVscGVy LmMKQEAgLTMsMTIgKzMsMTEgQEAKICAqIHRvIGJlIGluY2x1ZGVkIGZyb20gY29kZWMgZHJpdmVy CiAgKi8KIAotI2lmIElTX0VOQUJMRUQoQ09ORklHX1RISU5LUEFEX0FDUEkpCisjaWYgSVNfRU5B QkxFRChDT05GSUdfVEhJTktQQURfQUNQSSkgJiYgSVNfUkVBQ0hBQkxFKENPTkZJR19MRURTX1RS SUdHRVJfQVVESU8pCiAKICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgv dGhpbmtwYWRfYWNwaS5oPgorI2luY2x1ZGUgPGxpbnV4L2xlZHMuaD4KIAotc3RhdGljIGludCAo KmxlZF9zZXRfZnVuYykoaW50LCBib29sKTsKIHN0YXRpYyB2b2lkICgqb2xkX3ZtYXN0ZXJfaG9v aykodm9pZCAqLCBpbnQpOwogCiBzdGF0aWMgYm9vbCBpc190aGlua3BhZChzdHJ1Y3QgaGRhX2Nv ZGVjICpjb2RlYykKQEAgLTIzLDUwICsyMiwyMCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfdHBhY3Bp X211dGVfbGVkKHZvaWQgKnByaXZhdGVfZGF0YSwgaW50IGVuYWJsZWQpCiAJaWYgKG9sZF92bWFz dGVyX2hvb2spCiAJCW9sZF92bWFzdGVyX2hvb2socHJpdmF0ZV9kYXRhLCBlbmFibGVkKTsKIAot CWlmIChsZWRfc2V0X2Z1bmMpCi0JCWxlZF9zZXRfZnVuYyhUUEFDUElfTEVEX01VVEUsICFlbmFi bGVkKTsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX3RwYWNwaV9taWNtdXRlKHN0cnVjdCBoZGFf Y29kZWMgKmNvZGVjKQotewotCXN0cnVjdCBoZGFfZ2VuX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3Bl YzsKLQotCWxlZF9zZXRfZnVuYyhUUEFDUElfTEVEX01JQ01VVEUsIHNwZWMtPm1pY211dGVfbGVk LmxlZF92YWx1ZSk7CisJbGVkdHJpZ19hdWRpb19zZXQoTEVEX0FVRElPX01VVEUsIGVuYWJsZWQg PyBMRURfT0ZGIDogTEVEX09OKTsKIH0KIAogc3RhdGljIHZvaWQgaGRhX2ZpeHVwX3RoaW5rcGFk X2FjcGkoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBoZGFf Zml4dXAgKmZpeCwgaW50IGFjdGlvbikKIHsKIAlzdHJ1Y3QgaGRhX2dlbl9zcGVjICpzcGVjID0g Y29kZWMtPnNwZWM7Ci0JYm9vbCByZW1vdmVmdW5jID0gZmFsc2U7CiAKIAlpZiAoYWN0aW9uID09 IEhEQV9GSVhVUF9BQ1RfUFJPQkUpIHsKIAkJaWYgKCFpc190aGlua3BhZChjb2RlYykpCiAJCQly ZXR1cm47Ci0JCWlmICghbGVkX3NldF9mdW5jKQotCQkJbGVkX3NldF9mdW5jID0gc3ltYm9sX3Jl cXVlc3QodHBhY3BpX2xlZF9zZXQpOwotCQlpZiAoIWxlZF9zZXRfZnVuYykgewotCQkJY29kZWNf d2Fybihjb2RlYywKLQkJCQkgICAiRmFpbGVkIHRvIGZpbmQgdGhpbmtwYWQtYWNwaSBzeW1ib2wg dHBhY3BpX2xlZF9zZXRcbiIpOwotCQkJcmV0dXJuOwotCQl9Ci0KLQkJcmVtb3ZlZnVuYyA9IHRy dWU7Ci0JCWlmIChsZWRfc2V0X2Z1bmMoVFBBQ1BJX0xFRF9NVVRFLCBmYWxzZSkgPj0gMCkgewot CQkJb2xkX3ZtYXN0ZXJfaG9vayA9IHNwZWMtPnZtYXN0ZXJfbXV0ZS5ob29rOwotCQkJc3BlYy0+ dm1hc3Rlcl9tdXRlLmhvb2sgPSB1cGRhdGVfdHBhY3BpX211dGVfbGVkOwotCQkJcmVtb3ZlZnVu YyA9IGZhbHNlOwotCQl9Ci0JCWlmIChsZWRfc2V0X2Z1bmMoVFBBQ1BJX0xFRF9NSUNNVVRFLCBm YWxzZSkgPj0gMCAmJgotCQkgICAgIXNuZF9oZGFfZ2VuX2FkZF9taWNtdXRlX2xlZChjb2RlYywK LQkJCQkJCSB1cGRhdGVfdHBhY3BpX21pY211dGUpKQotCQkJcmVtb3ZlZnVuYyA9IGZhbHNlOwot CX0KLQotCWlmIChsZWRfc2V0X2Z1bmMgJiYgKGFjdGlvbiA9PSBIREFfRklYVVBfQUNUX0ZSRUUg fHwgcmVtb3ZlZnVuYykpIHsKLQkJc3ltYm9sX3B1dCh0cGFjcGlfbGVkX3NldCk7Ci0JCWxlZF9z ZXRfZnVuYyA9IE5VTEw7Ci0JCW9sZF92bWFzdGVyX2hvb2sgPSBOVUxMOworCQlvbGRfdm1hc3Rl cl9ob29rID0gc3BlYy0+dm1hc3Rlcl9tdXRlLmhvb2s7CisJCXNwZWMtPnZtYXN0ZXJfbXV0ZS5o b29rID0gdXBkYXRlX3RwYWNwaV9tdXRlX2xlZDsKKwkJc25kX2hkYV9nZW5fZml4dXBfbWljbXV0 ZV9sZWQoY29kZWMsIGZpeCwgYWN0aW9uKTsKIAl9CiB9CiAKLS0gCjIuMTkuMQoKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppYm0tYWNwaS1kZXZlbCBt YWlsaW5nIGxpc3QKaWJtLWFjcGktZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8v bGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2libS1hY3BpLWRldmVsCg==