From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 4/5] ALSA: hda: add component support Date: Tue, 9 Dec 2014 11:41:18 +0200 Message-ID: <1418118078-3676-3-git-send-email-imre.deak@intel.com> References: <1418118078-3676-1-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1418118078-3676-1-git-send-email-imre.deak@intel.com> In-Reply-To: <1418056929-7977-5-git-send-email-imre.deak@intel.com> References: <1418056929-7977-5-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, alsa-devel@alsa-project.org, Takashi Iwai Cc: Jani Nikula , Daniel Vetter List-Id: alsa-devel@alsa-project.org UmVnaXN0ZXIgYSBjb21wb25lbnQgbWFzdGVyIHRvIGJlIHVzZWQgdG8gaW50ZXJmYWNlIHdpdGgg dGhlIGk5MTUKZHJpdmVyLiBUaGlzIGlzIG1lYW50IHRvIHJlcGxhY2UgdGhlIGN1cnJlbnQgaW50 ZXJmYWNlIHdoaWNoIGlzIGJhc2VkIG9uCm1vZHVsZSBzeW1ib2wgbG9va3Vwcy4KCk5vdGUgdGhh dCBjdXJyZW50bHkgd2Uga2VlcCB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgYW5kIHBpbiB0aGUgaTkx NQptb2R1bGUgd2hpbGUgdGhlIGhkYSBkcml2ZXIgaXMgbG9hZGVkLiBVc2luZyB0aGUgY29tcG9u ZW50IGludGVyZmFjZQphbGxvd3MgdXMgdG8gcmVtb3ZlIHRoaXMgZGVwZW5kZW5jeSBvbmNlIHN1 cHBvcnQgZm9yIGR5bmFtaWNhbGx5CmVuYWJsaW5nIC8gZGlzYWJsaW5nIHRoZSBIRE1JIGZ1bmN0 aW9uYWxpdHkgaXMgYWRkZWQgdG8gdGhlIGRyaXZlci4KCnYyOgotIGNoYW5nZSByb2xlcyBiZXR3 ZWVuIHRoZSBoZGEgYW5kIGk5MTUgY29tcG9uZW50cyAoRGFuaWVsKQoKU2lnbmVkLW9mZi1ieTog SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgotLS0KIHNvdW5kL3BjaS9oZGEvaGRhX2k5 MTUuYyAgfCAxMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LQogc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYyB8ICAgMyArLQogc291bmQvcGNpL2hkYS9oZGFf cHJpdi5oICB8ICAgNCArKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgNDAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfaTkxNS5jIGIvc291 bmQvcGNpL2hkYS9oZGFfaTkxNS5jCmluZGV4IDRlNGI3MzMuLjJiZjZhMWIgMTAwNjQ0Ci0tLSBh L3NvdW5kL3BjaS9oZGEvaGRhX2k5MTUuYworKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9pOTE1LmMK QEAgLTE4LDggKzE4LDEwIEBACiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgv Y29tcG9uZW50Lmg+CisjaW5jbHVkZSA8ZHJtL2k5MTVfY29tcG9uZW50Lmg+CiAjaW5jbHVkZSA8 c291bmQvY29yZS5oPgotI2luY2x1ZGUgPGRybS9pOTE1X3Bvd2Vyd2VsbC5oPgogI2luY2x1ZGUg ImhkYV9wcml2LmgiCiAjaW5jbHVkZSAiaGRhX2k5MTUuaCIKIApAQCAtMzEsMzIgKzMzLDMzIEBA CiAjZGVmaW5lIEFaWF9SRUdfRU00CQkJMHgxMDBjCiAjZGVmaW5lIEFaWF9SRUdfRU01CQkJMHgx MDEwCiAKLXN0YXRpYyBpbnQgKCpnZXRfcG93ZXIpKHZvaWQpOwotc3RhdGljIGludCAoKnB1dF9w b3dlcikodm9pZCk7Ci1zdGF0aWMgaW50ICgqZ2V0X2NkY2xrKSh2b2lkKTsKLQogaW50IGhkYV9k aXNwbGF5X3Bvd2VyKHN0cnVjdCBhenggKmNoaXAsIGJvb2wgZW5hYmxlKQogewotCWlmICghZ2V0 X3Bvd2VyIHx8ICFwdXRfcG93ZXIpCisJc3RydWN0IGk5MTVfZGlzcGxheV9jb21wb25lbnQgKmRj b21wID0gJmNoaXAtPmRpc3BsYXlfY29tcG9uZW50OworCisJaWYgKCFkY29tcC0+b3BzKQogCQly ZXR1cm4gLUVOT0RFVjsKIAogCXByX2RlYnVnKCJIREEgZGlzcGxheSBwb3dlciAlcyBcbiIsCiAJ CQllbmFibGUgPyAiRW5hYmxlIiA6ICJEaXNhYmxlIik7CiAJaWYgKGVuYWJsZSkKLQkJcmV0dXJu IGdldF9wb3dlcigpOworCQlkY29tcC0+b3BzLT5nZXRfcG93ZXIoZGNvbXAtPmRldik7CiAJZWxz ZQotCQlyZXR1cm4gcHV0X3Bvd2VyKCk7CisJCWRjb21wLT5vcHMtPnB1dF9wb3dlcihkY29tcC0+ ZGV2KTsKKworCXJldHVybiAwOwogfQogCiB2b2lkIGhhc3dlbGxfc2V0X2JjbGsoc3RydWN0IGF6 eCAqY2hpcCkKIHsKIAlpbnQgY2RjbGtfZnJlcTsKIAl1bnNpZ25lZCBpbnQgYmNsa19tLCBiY2xr X247CisJc3RydWN0IGk5MTVfZGlzcGxheV9jb21wb25lbnQgKmRjb21wID0gJmNoaXAtPmRpc3Bs YXlfY29tcG9uZW50OwogCi0JaWYgKCFnZXRfY2RjbGspCisJaWYgKCFkY29tcC0+b3BzKQogCQly ZXR1cm47CiAKLQljZGNsa19mcmVxID0gZ2V0X2NkY2xrKCk7CisJY2RjbGtfZnJlcSA9IGRjb21w LT5vcHMtPmdldF9jZGNsa19mcmVxKGRjb21wLT5kZXYpOwogCXN3aXRjaCAoY2RjbGtfZnJlcSkg ewogCWNhc2UgMzM3NTAwOgogCQliY2xrX20gPSAxNjsKQEAgLTg0LDQ3ICs4NywxMDQgQEAgdm9p ZCBoYXN3ZWxsX3NldF9iY2xrKHN0cnVjdCBhenggKmNoaXApCiAJYXp4X3dyaXRldyhjaGlwLCBF TTUsIGJjbGtfbik7CiB9CiAKK3N0YXRpYyBpbnQgaGRhX2NvbXBvbmVudF9tYXN0ZXJfYmluZChz dHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gZGV2X2dldF9k cnZkYXRhKGRldik7CisJc3RydWN0IGF6eCAqY2hpcCA9IGNhcmQtPnByaXZhdGVfZGF0YTsKKwlz dHJ1Y3QgaTkxNV9kaXNwbGF5X2NvbXBvbmVudCAqZGNvbXAgPSAmY2hpcC0+ZGlzcGxheV9jb21w b25lbnQ7CisJaW50IHJldDsKKworCXJldCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYsIGRjb21w KTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWlmIChXQVJOX09OKCEoZGNvbXAt PmRldiAmJiBkY29tcC0+b3BzICYmIGRjb21wLT5vcHMtPmdldF9wb3dlciAmJgorCQkgICAgICBk Y29tcC0+b3BzLT5wdXRfcG93ZXIgJiYgZGNvbXAtPm9wcy0+Z2V0X2NkY2xrX2ZyZXEpKSkgewor CQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dF91bmJpbmQ7CisJfQorCisJLyoKKwkgKiBBdG0s IHdlIGRvbid0IHN1cHBvcnQgZHluYW1pYyB1bmJpbmRpbmcgaW5pdGlhdGVkIGJ5IHRoZSBjaGls ZAorCSAqIGNvbXBvbmVudCwgc28gcGluIGl0cyBjb250YWluaW5nIG1vZHVsZSB1bnRpbCB3ZSB1 bmJpbmQuCisJICovCisJaWYgKCF0cnlfbW9kdWxlX2dldChkY29tcC0+b3BzLT5vd25lcikpIHsK KwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXRfdW5iaW5kOworCX0KKworCXJldHVybiAwOwor CitvdXRfdW5iaW5kOgorCWNvbXBvbmVudF91bmJpbmRfYWxsKGRldiwgZGNvbXApOworCisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgaGRhX2NvbXBvbmVudF9tYXN0ZXJfdW5iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKKwlzdHJ1Y3QgYXp4ICpjaGlwID0gY2FyZC0+cHJpdmF0ZV9kYXRhOworCXN0 cnVjdCBpOTE1X2Rpc3BsYXlfY29tcG9uZW50ICpkY29tcCA9ICZjaGlwLT5kaXNwbGF5X2NvbXBv bmVudDsKKworCW1vZHVsZV9wdXQoZGNvbXAtPm9wcy0+b3duZXIpOworCWNvbXBvbmVudF91bmJp bmRfYWxsKGRldiwgZGNvbXApOworCVdBUk5fT04oZGNvbXAtPm9wcyB8fCBkY29tcC0+ZGV2KTsK K30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfbWFzdGVyX29wcyBoZGFfY29tcG9u ZW50X21hc3Rlcl9vcHMgPSB7CisJLmJpbmQgPSBoZGFfY29tcG9uZW50X21hc3Rlcl9iaW5kLAor CS51bmJpbmQgPSBoZGFfY29tcG9uZW50X21hc3Rlcl91bmJpbmQsCit9OworCitzdGF0aWMgaW50 IGhkYV9jb21wb25lbnRfbWFzdGVyX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSkKK3sKKwkvKiBpOTE1IGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBjb21wb25lbnQgKi8KKwlyZXR1 cm4gIXN0cmNtcChkZXYtPmRyaXZlci0+bmFtZSwgImk5MTUiKTsKK30KIAogaW50IGhkYV9pOTE1 X2luaXQoc3RydWN0IGF6eCAqY2hpcCkKIHsKLQlpbnQgZXJyID0gMDsKKwlzdHJ1Y3QgY29tcG9u ZW50X21hdGNoICptYXRjaCA9IE5VTEw7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJmNoaXAtPnBj aS0+ZGV2OworCXN0cnVjdCBpOTE1X2Rpc3BsYXlfY29tcG9uZW50ICpkY29tcCA9ICZjaGlwLT5k aXNwbGF5X2NvbXBvbmVudDsKKwlpbnQgcmV0OwogCi0JZ2V0X3Bvd2VyID0gc3ltYm9sX3JlcXVl c3QoaTkxNV9yZXF1ZXN0X3Bvd2VyX3dlbGwpOwotCWlmICghZ2V0X3Bvd2VyKSB7Ci0JCXByX3dh cm4oImhkYS1pOTE1OiBnZXRfcG93ZXIgc3ltYm9sIGdldCBmYWlsXG4iKTsKLQkJcmV0dXJuIC1F Tk9ERVY7Ci0JfQotCi0JcHV0X3Bvd2VyID0gc3ltYm9sX3JlcXVlc3QoaTkxNV9yZWxlYXNlX3Bv d2VyX3dlbGwpOwotCWlmICghcHV0X3Bvd2VyKSB7Ci0JCXN5bWJvbF9wdXQoaTkxNV9yZXF1ZXN0 X3Bvd2VyX3dlbGwpOwotCQlnZXRfcG93ZXIgPSBOVUxMOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9 Ci0KLQlnZXRfY2RjbGsgPSBzeW1ib2xfcmVxdWVzdChpOTE1X2dldF9jZGNsa19mcmVxKTsKLQlp ZiAoIWdldF9jZGNsaykJLyogbWF5IGhhdmUgYWJub3JtYWwgQkNMSyBhbmQgYXVkaW8gcGxheWJh Y2sgcmF0ZSAqLwotCQlwcl93YXJuKCJoZGEtaTkxNTogZ2V0X2NkY2xrIHN5bWJvbCBnZXQgZmFp bFxuIik7Ci0KKwljb21wb25lbnRfbWF0Y2hfYWRkKGRldiwgJm1hdGNoLCBoZGFfY29tcG9uZW50 X21hc3Rlcl9tYXRjaCwgY2hpcCk7CisJcmV0ID0gY29tcG9uZW50X21hc3Rlcl9hZGRfd2l0aF9t YXRjaChkZXYsICZoZGFfY29tcG9uZW50X21hc3Rlcl9vcHMsCisJCQkJCSAgICAgIG1hdGNoKTsK KwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfZXJyOworCisJLyoKKwkgKiBBdG0sIHdlIGRvbid0 IHN1cHBvcnQgZGVmZXJyaW5nIHRoZSBjb21wb25lbnQgYmluZGluZywgc28gbWFrZSBzdXJlCisJ ICogaTkxNSBpcyBsb2FkZWQgYW5kIHRoYXQgdGhlIGJpbmRpbmcgc3VjY2Vzc2Z1bGx5IGNvbXBs ZXRlcy4KKwkgKi8KKwlyZXQgPSByZXF1ZXN0X21vZHVsZSgiaTkxNSIpOworCWlmIChyZXQgPCAw KQorCQlnb3RvIG91dF9tYXN0ZXJfZGVsOworCisJaWYgKCFkY29tcC0+b3BzKSB7CisJCXJldCA9 IC1FTk9ERVY7CisJCWdvdG8gb3V0X21hc3Rlcl9kZWw7CisJfQorCi0JcHJfZGVidWcoIkhEQSBk cml2ZXIgZ2V0IHN5bWJvbCBzdWNjZXNzZnVsbHkgZnJvbSBpOTE1IG1vZHVsZVxuIik7CisJcHJf ZGVidWcoImhkYS1pOTE1OiBib3VuZCB0byBpOTE1IGNvbXBvbmVudFxuIik7CisKKwlyZXR1cm4g MDsKK291dF9tYXN0ZXJfZGVsOgorCWNvbXBvbmVudF9tYXN0ZXJfZGVsKGRldiwgJmhkYV9jb21w b25lbnRfbWFzdGVyX29wcyk7CitvdXRfZXJyOgorCXByX3dhcm4oImhkYS1pOTE1OiBmYWlsZWQg dG8gYWRkIGNvbXBvbmVudCBtYXN0ZXIgKCVkKVxuIiwgcmV0KTsKIAotCXJldHVybiBlcnI7CisJ cmV0dXJuIHJldDsKIH0KIAogaW50IGhkYV9pOTE1X2V4aXQoc3RydWN0IGF6eCAqY2hpcCkKIHsK LQlpZiAoZ2V0X3Bvd2VyKSB7Ci0JCXN5bWJvbF9wdXQoaTkxNV9yZXF1ZXN0X3Bvd2VyX3dlbGwp OwotCQlnZXRfcG93ZXIgPSBOVUxMOwotCX0KLQlpZiAocHV0X3Bvd2VyKSB7Ci0JCXN5bWJvbF9w dXQoaTkxNV9yZWxlYXNlX3Bvd2VyX3dlbGwpOwotCQlwdXRfcG93ZXIgPSBOVUxMOwotCX0KLQlp ZiAoZ2V0X2NkY2xrKSB7Ci0JCXN5bWJvbF9wdXQoaTkxNV9nZXRfY2RjbGtfZnJlcSk7Ci0JCWdl dF9jZGNsayA9IE5VTEw7Ci0JfQorCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZjaGlwLT5wY2ktPmRl djsKKworCWNvbXBvbmVudF9tYXN0ZXJfZGVsKGRldiwgJmhkYV9jb21wb25lbnRfbWFzdGVyX29w cyk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVs LmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCmluZGV4IGYzYjVkY2QuLmUxNWIzMGUgMTAw NjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMKKysrIGIvc291bmQvcGNpL2hkYS9o ZGFfaW50ZWwuYwpAQCAtMTkxMiw4ICsxOTEyLDcgQEAgc3RhdGljIGludCBhenhfcHJvYmVfY29u dGludWUoc3RydWN0IGF6eCAqY2hpcCkKICNpZmRlZiBDT05GSUdfU05EX0hEQV9JOTE1CiAJCWVy ciA9IGhkYV9pOTE1X2luaXQoY2hpcCk7CiAJCWlmIChlcnIgPCAwKSB7Ci0JCQlkZXZfZXJyKGNo aXAtPmNhcmQtPmRldiwKLQkJCQkiRXJyb3IgcmVxdWVzdCBwb3dlci13ZWxsIGZyb20gaTkxNVxu Iik7CisJCQlkZXZfZXJyKGNoaXAtPmNhcmQtPmRldiwgIkVycm9yIGJpbmRpbmcgdG8gaTkxNVxu Iik7CiAJCQlnb3RvIG91dF9mcmVlOwogCQl9CiAJCWVyciA9IGhkYV9kaXNwbGF5X3Bvd2VyKGNo aXAsIHRydWUpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfcHJpdi5oIGIvc291bmQv cGNpL2hkYS9oZGFfcHJpdi5oCmluZGV4IGFhNDg0ZmQuLmFmMjI3ZjMgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3BjaS9oZGEvaGRhX3ByaXYuaAorKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9wcml2LmgKQEAg LTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgogI2luY2x1ZGUg PHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxkcm0vaTkx NV9jb21wb25lbnQuaD4KIAogLyoKICAqIHJlZ2lzdGVycwpAQCAtMjkxLDYgKzI5Miw5IEBAIHN0 cnVjdCBhenggewogCXN0cnVjdCBwY2lfZGV2ICpwY2k7CiAJaW50IGRldl9pbmRleDsKIAorCS8q IGk5MTUgY29tcG9uZW50IGludGVyZmFjZSAqLworCXN0cnVjdCBpOTE1X2Rpc3BsYXlfY29tcG9u ZW50IGRpc3BsYXlfY29tcG9uZW50OworCiAJLyogY2hpcCB0eXBlIHNwZWNpZmljICovCiAJaW50 IGRyaXZlcl90eXBlOwogCXVuc2lnbmVkIGludCBkcml2ZXJfY2FwczsKLS0gCjEuOC40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=