From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: [PATCH v2] ASoC: kirkwood: add S/PDIF support Date: Fri, 18 Oct 2013 20:37:50 +0200 Message-ID: <20131018203750.7b981d62@armhf> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by alsa0.perex.cz (Postfix) with ESMTP id 9BF7E261AC4 for ; Fri, 18 Oct 2013 20:37:47 +0200 (CEST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Liam Girdwood , Mark Brown Cc: Thomas Petazzoni , alsa-devel@alsa-project.org, Jason Cooper , Russell King , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth List-Id: alsa-devel@alsa-project.org VGhpcyBwYXRjaCBhZGRzIFMvUERJRiBpbnB1dC9vdXRwdXQgZm9yIG12ZWJ1IERUIGJvYXJkcy4K ClNpZ25lZC1vZmYtYnk6IEplYW4tRnJhbmNvaXMgTW9pbmUgPG1vaW5lamZAZnJlZS5mcj4KLS0t CnYyOiBkZWNsYXJlIDIgREFJJ3MgKE1hcmsgQnJvd24pCi0tLQogc291bmQvc29jL2tpcmt3b29k L2tpcmt3b29kLWkycy5jIHwgOTUgKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc4IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdW5k L3NvYy9raXJrd29vZC9raXJrd29vZC1pMnMuYyBiL3NvdW5kL3NvYy9raXJrd29vZC9raXJrd29v ZC1pMnMuYwppbmRleCAyYmJiYWI1Li4yMGM1NmM4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mva2ly a3dvb2Qva2lya3dvb2QtaTJzLmMKKysrIGIvc291bmQvc29jL2tpcmt3b29kL2tpcmt3b29kLWky cy5jCkBAIC0xNjAsOSArMTYwLDExIEBAIHN0YXRpYyBpbnQga2lya3dvb2RfaTJzX2h3X3BhcmFt cyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAljYXNlIFNORFJWX1BDTV9G T1JNQVRfUzE2X0xFOgogCQlpMnNfdmFsdWUgfD0gS0lSS1dPT0RfSTJTX0NUTF9TSVpFXzE2Owog CQljdGxfcGxheSA9IEtJUktXT09EX1BMQVlDVExfU0laRV8xNl9DIHwKLQkJCSAgIEtJUktXT09E X1BMQVlDVExfSTJTX0VOOworCQkJICAgS0lSS1dPT0RfUExBWUNUTF9JMlNfRU4gfAorCQkJICAg S0lSS1dPT0RfUExBWUNUTF9TUERJRl9FTjsKIAkJY3RsX3JlYyA9IEtJUktXT09EX1JFQ0NUTF9T SVpFXzE2X0MgfAotCQkJICBLSVJLV09PRF9SRUNDVExfSTJTX0VOOworCQkJICBLSVJLV09PRF9S RUNDVExfSTJTX0VOIHwKKwkJCSAgS0lSS1dPT0RfUkVDQ1RMX1NQRElGX0VOOwogCQlicmVhazsK IAkvKgogCSAqIGRvZXNuJ3Qgd29yay4uLiBTMjBfM0xFICE9IGtpcmt3b29kIDIwYml0IGZvcm1h dCA/CkBAIC0xNzgsOSArMTgwLDExIEBAIHN0YXRpYyBpbnQga2lya3dvb2RfaTJzX2h3X3BhcmFt cyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAljYXNlIFNORFJWX1BDTV9G T1JNQVRfUzI0X0xFOgogCQlpMnNfdmFsdWUgfD0gS0lSS1dPT0RfSTJTX0NUTF9TSVpFXzI0Owog CQljdGxfcGxheSA9IEtJUktXT09EX1BMQVlDVExfU0laRV8yNCB8Ci0JCQkgICBLSVJLV09PRF9Q TEFZQ1RMX0kyU19FTjsKKwkJCSAgIEtJUktXT09EX1BMQVlDVExfSTJTX0VOIHwKKwkJCSAgIEtJ UktXT09EX1BMQVlDVExfU1BESUZfRU47CiAJCWN0bF9yZWMgPSBLSVJLV09PRF9SRUNDVExfU0la RV8yNCB8Ci0JCQkgIEtJUktXT09EX1JFQ0NUTF9JMlNfRU47CisJCQkgIEtJUktXT09EX1JFQ0NU TF9JMlNfRU4gfAorCQkJICBLSVJLV09PRF9SRUNDVExfU1BESUZfRU47CiAJCWJyZWFrOwogCWNh c2UgU05EUlZfUENNX0ZPUk1BVF9TMzJfTEU6CiAJCWkyc192YWx1ZSB8PSBLSVJLV09PRF9JMlNf Q1RMX1NJWkVfMzI7CkBAIC0yNDAsNiArMjQ0LDExIEBAIHN0YXRpYyBpbnQga2lya3dvb2RfaTJz X3BsYXlfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAkJCQkg ICBjdGwpOwogCX0KIAorCWlmIChkYWktPm5hbWVbMF0gPT0gJ2knKQorCQljdGwgJj0gfktJUktX T09EX1BMQVlDVExfU1BESUZfRU47CS8qIGkycyAqLworCWVsc2UKKwkJY3RsICY9IH5LSVJLV09P RF9QTEFZQ1RMX0kyU19FTjsJLyogc3BkaWYgKi8KKwogCXN3aXRjaCAoY21kKSB7CiAJY2FzZSBT TkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKIAkJLyogY29uZmlndXJlICovCkBAIC0yNTgsNyArMjY3 LDggQEAgc3RhdGljIGludCBraXJrd29vZF9pMnNfcGxheV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNt X3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgog CQkvKiBzdG9wIGF1ZGlvLCBkaXNhYmxlIGludGVycnVwdHMgKi8KLQkJY3RsIHw9IEtJUktXT09E X1BMQVlDVExfUEFVU0UgfCBLSVJLV09PRF9QTEFZQ1RMX0kyU19NVVRFOworCQljdGwgfD0gS0lS S1dPT0RfUExBWUNUTF9QQVVTRSB8IEtJUktXT09EX1BMQVlDVExfSTJTX01VVEUgfAorCQkJCUtJ UktXT09EX1BMQVlDVExfU1BESUZfTVVURTsKIAkJd3JpdGVsKGN0bCwgcHJpdi0+aW8gKyBLSVJL V09PRF9QTEFZQ1RMKTsKIAogCQl2YWx1ZSA9IHJlYWRsKHByaXYtPmlvICsgS0lSS1dPT0RfSU5U X01BU0spOwpAQCAtMjcyLDEzICsyODIsMTUgQEAgc3RhdGljIGludCBraXJrd29vZF9pMnNfcGxh eV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCiAJY2FzZSBT TkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VT UEVORDoKLQkJY3RsIHw9IEtJUktXT09EX1BMQVlDVExfUEFVU0UgfCBLSVJLV09PRF9QTEFZQ1RM X0kyU19NVVRFOworCQljdGwgfD0gS0lSS1dPT0RfUExBWUNUTF9QQVVTRSB8IEtJUktXT09EX1BM QVlDVExfSTJTX01VVEUgfAorCQkJCUtJUktXT09EX1BMQVlDVExfU1BESUZfTVVURTsKIAkJd3Jp dGVsKGN0bCwgcHJpdi0+aW8gKyBLSVJLV09PRF9QTEFZQ1RMKTsKIAkJYnJlYWs7CiAKIAljYXNl IFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNF X1JFTEVBU0U6Ci0JCWN0bCAmPSB+KEtJUktXT09EX1BMQVlDVExfUEFVU0UgfCBLSVJLV09PRF9Q TEFZQ1RMX0kyU19NVVRFKTsKKwkJY3RsICY9IH4oS0lSS1dPT0RfUExBWUNUTF9QQVVTRSB8IEtJ UktXT09EX1BMQVlDVExfSTJTX01VVEUgfAorCQkJCUtJUktXT09EX1BMQVlDVExfU1BESUZfTVVU RSk7CiAJCXdyaXRlbChjdGwsIHByaXYtPmlvICsgS0lSS1dPT0RfUExBWUNUTCk7CiAJCWJyZWFr OwogCkBAIC0zMDEsNyArMzEzLDEzIEBAIHN0YXRpYyBpbnQga2lya3dvb2RfaTJzX3JlY190cmln Z2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAogCWNhc2UgU05EUlZfUENN X1RSSUdHRVJfU1RBUlQ6CiAJCS8qIGNvbmZpZ3VyZSAqLwogCQljdGwgPSBwcml2LT5jdGxfcmVj OwotCQl2YWx1ZSA9IGN0bCAmIH5LSVJLV09PRF9SRUNDVExfSTJTX0VOOworCQlpZiAoZGFpLT5u YW1lWzBdID09ICdpJykKKwkJCWN0bCAmPSB+S0lSS1dPT0RfUkVDQ1RMX1NQRElGX0VOOwkvKiBp MnMgKi8KKwkJZWxzZQorCQkJY3RsICY9IH5LSVJLV09PRF9SRUNDVExfSTJTX0VOOwkJLyogc3Bk aWYgKi8KKworCQl2YWx1ZSA9IGN0bCAmIH4oS0lSS1dPT0RfUkVDQ1RMX0kyU19FTiB8CisJCQkJ S0lSS1dPT0RfUkVDQ1RMX1NQRElGX0VOKTsKIAkJd3JpdGVsKHZhbHVlLCBwcml2LT5pbyArIEtJ UktXT09EX1JFQ0NUTCk7CiAKIAkJLyogZW5hYmxlIGludGVycnVwdHMgKi8KQEAgLTM2MSw5ICsz NzksOCBAQCBzdGF0aWMgaW50IGtpcmt3b29kX2kyc190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1 YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kLAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGtpcmt3b29kX2kyc19wcm9iZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3N0YXRpYyBpbnQg a2lya3dvb2RfaTJzX2luaXQoc3RydWN0IGtpcmt3b29kX2RtYV9kYXRhICpwcml2KQogewotCXN0 cnVjdCBraXJrd29vZF9kbWFfZGF0YSAqcHJpdiA9IHNuZF9zb2NfZGFpX2dldF9kcnZkYXRhKGRh aSk7CiAJdW5zaWduZWQgbG9uZyB2YWx1ZTsKIAl1bnNpZ25lZCBpbnQgcmVnX2RhdGE7CiAKQEAg LTQwNCw5ICs0MjEsMjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhaV9vcHMga2ly a3dvb2RfaTJzX2RhaV9vcHMgPSB7CiAJLnNldF9mbXQgICAgICAgID0ga2lya3dvb2RfaTJzX3Nl dF9mbXQsCiB9OwogCi0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfZHJpdmVyIGtpcmt3b29k X2kyc19kYWkgPSB7Ci0JLnByb2JlID0ga2lya3dvb2RfaTJzX3Byb2JlLAorc3RhdGljIHN0cnVj dCBzbmRfc29jX2RhaV9kcml2ZXIga2lya3dvb2RfaTJzX2RhaVsyXSA9IHsKKyAgICB7CisJLm5h bWUgPSAiaTJzIiwKKwkucGxheWJhY2sgPSB7CisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hh bm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gU05EUlZfUENNX1JBVEVfNDQxMDAgfCBTTkRSVl9Q Q01fUkFURV80ODAwMCB8CisJCQkJU05EUlZfUENNX1JBVEVfOTYwMDAsCisJCS5mb3JtYXRzID0g S0lSS1dPT0RfSTJTX0ZPUk1BVFMsCisJfSwKKwkuY2FwdHVyZSA9IHsKKwkJLmNoYW5uZWxzX21p biA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBTTkRSVl9QQ01fUkFURV80 NDEwMCB8IFNORFJWX1BDTV9SQVRFXzQ4MDAwIHwKKwkJCQlTTkRSVl9QQ01fUkFURV85NjAwMCwK KwkJLmZvcm1hdHMgPSBLSVJLV09PRF9JMlNfRk9STUFUUywKKwl9LAorCS5vcHMgPSAma2lya3dv b2RfaTJzX2RhaV9vcHMsCisgICAgfSwKKyAgICB7CisJLm5hbWUgPSAic3BkaWYiLAogCS5wbGF5 YmFjayA9IHsKIAkJLmNoYW5uZWxzX21pbiA9IDEsCiAJCS5jaGFubmVsc19tYXggPSAyLApAQCAt NDIyLDEwICs0NTcsMzIgQEAgc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9kcml2ZXIga2lya3dv b2RfaTJzX2RhaSA9IHsKIAkJLmZvcm1hdHMgPSBLSVJLV09PRF9JMlNfRk9STUFUUywKIAl9LAog CS5vcHMgPSAma2lya3dvb2RfaTJzX2RhaV9vcHMsCisgICAgfSwKIH07CiAKLXN0YXRpYyBzdHJ1 Y3Qgc25kX3NvY19kYWlfZHJpdmVyIGtpcmt3b29kX2kyc19kYWlfZXh0Y2xrID0gewotCS5wcm9i ZSA9IGtpcmt3b29kX2kyc19wcm9iZSwKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfZHJpdmVy IGtpcmt3b29kX2kyc19kYWlfZXh0Y2xrWzJdID0geworICAgIHsKKwkubmFtZSA9ICJpMnMiLAor CS5wbGF5YmFjayA9IHsKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAy LAorCQkucmF0ZXMgPSBTTkRSVl9QQ01fUkFURV84MDAwXzE5MjAwMCB8CisJCQkgU05EUlZfUENN X1JBVEVfQ09OVElOVU9VUyB8CisJCQkgU05EUlZfUENNX1JBVEVfS05PVCwKKwkJLmZvcm1hdHMg PSBLSVJLV09PRF9JMlNfRk9STUFUUywKKwl9LAorCS5jYXB0dXJlID0geworCQkuY2hhbm5lbHNf bWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFNORFJWX1BDTV9SQVRF XzgwMDBfMTkyMDAwIHwKKwkJCSBTTkRSVl9QQ01fUkFURV9DT05USU5VT1VTIHwKKwkJCSBTTkRS Vl9QQ01fUkFURV9LTk9ULAorCQkuZm9ybWF0cyA9IEtJUktXT09EX0kyU19GT1JNQVRTLAorCX0s CisJLm9wcyA9ICZraXJrd29vZF9pMnNfZGFpX29wcywKKyAgICB9LAorICAgIHsKKwkubmFtZSA9 ICJzcGRpZiIsCiAJLnBsYXliYWNrID0gewogCQkuY2hhbm5lbHNfbWluID0gMSwKIAkJLmNoYW5u ZWxzX21heCA9IDIsCkBAIC00NDMsNiArNTAwLDcgQEAgc3RhdGljIHN0cnVjdCBzbmRfc29jX2Rh aV9kcml2ZXIga2lya3dvb2RfaTJzX2RhaV9leHRjbGsgPSB7CiAJCS5mb3JtYXRzID0gS0lSS1dP T0RfSTJTX0ZPUk1BVFMsCiAJfSwKIAkub3BzID0gJmtpcmt3b29kX2kyc19kYWlfb3BzLAorICAg IH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfY29tcG9uZW50X2RyaXZlciBr aXJrd29vZF9pMnNfY29tcG9uZW50ID0gewpAQCAtNDUyLDcgKzUxMCw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnRfZHJpdmVyIGtpcmt3b29kX2kyc19jb21wb25lbnQg PSB7CiBzdGF0aWMgaW50IGtpcmt3b29kX2kyc19kZXZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIHsKIAlzdHJ1Y3Qga2lya3dvb2RfYXNvY19wbGF0Zm9ybV9kYXRhICpkYXRh ID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfZGFpX2RyaXZlciAq c29jX2RhaSA9ICZraXJrd29vZF9pMnNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaV9kcml2ZXIg KnNvY19kYWkgPSBraXJrd29vZF9pMnNfZGFpOwogCXN0cnVjdCBraXJrd29vZF9kbWFfZGF0YSAq cHJpdjsKIAlzdHJ1Y3QgcmVzb3VyY2UgKm1lbTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0g cGRldi0+ZGV2Lm9mX25vZGU7CkBAIC01MTksNyArNTc3LDcgQEAgc3RhdGljIGludCBraXJrd29v ZF9pMnNfZGV2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJfQogCiAJZXJy ID0gc25kX3NvY19yZWdpc3Rlcl9jb21wb25lbnQoJnBkZXYtPmRldiwgJmtpcmt3b29kX2kyc19j b21wb25lbnQsCi0JCQkJCSBzb2NfZGFpLCAxKTsKKwkJCQkJIHNvY19kYWksIDIpOwogCWlmIChl cnIpIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAic25kX3NvY19yZWdpc3Rlcl9jb21wb25lbnQg ZmFpbGVkXG4iKTsKIAkJZ290byBlcnJfY29tcG9uZW50OwpAQCAtNTMwLDYgKzU4OCw5IEBAIHN0 YXRpYyBpbnQga2lya3dvb2RfaTJzX2Rldl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJzbmRfc29jX3JlZ2lzdGVyX3BsYXRmb3JtIGZh aWxlZFxuIik7CiAJCWdvdG8gZXJyX3BsYXRmb3JtOwogCX0KKworCWtpcmt3b29kX2kyc19pbml0 KHByaXYpOworCiAJcmV0dXJuIDA7CiAgZXJyX3BsYXRmb3JtOgogCXNuZF9zb2NfdW5yZWdpc3Rl cl9jb21wb25lbnQoJnBkZXYtPmRldik7CgoKLS0gCktlbiBhciBjJ2hlbnRhw7EJfAkgICAgICAq KiBCcmVpemggaGEgTGludXggYXRhdiEgKioKSmVmCQl8CQlodHRwOi8vbW9pbmVqZi5mcmVlLmZy LwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBbHNhLWRl dmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKaHR0cDovL21haWxt YW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK