From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stas Sergeev Subject: [PATCH] asoc: add dummy codec Date: Thu, 11 Apr 2013 14:36:57 +0400 Message-ID: <51669249.8090100@list.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070909030009040607050909" Return-path: Received: from smtp18.mail.ru (smtp18.mail.ru [94.100.176.155]) by alsa0.perex.cz (Postfix) with ESMTP id E0650265FF2 for ; Thu, 11 Apr 2013 12:37:06 +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: ALSA devel Cc: Steve Chen List-Id: alsa-devel@alsa-project.org This is a multi-part message in MIME format. --------------070909030009040607050909 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi. The attached patch adds a dummy codec for the asoc subsystem. I use it with the driver that programs the soc to drive I2S from an internal PLLs, and the audio then goes to HDMI, so no external codec is used. I've found spdif_transciever.c, which exactly is such a dummy driver, but it is bound to the particular plat device, so I made the device name a config option, and if not set, the plat device is created with the default name. It may be possible to avoid the usage of the codec driver at all, but I haven't succeeded with this, and the existance of spdif_transciever.c suggests there is no such way. Thoughts? Signed-off-by: Stas Sergeev --------------070909030009040607050909 Content-Type: application/x-patch; name="0001-asoc-add-dummy-codec.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-asoc-add-dummy-codec.patch" RnJvbSBkZTczYTdiMzhlNDk3MmFmNjRjNWUzZTEwNzk4YmRmY2EwMjc3YTEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNl Zm9yZ2UubmV0PgpEYXRlOiBUaHUsIDExIEFwciAyMDEzIDEzOjU2OjM0ICswNDAwClN1Ympl Y3Q6IFtQQVRDSF0gYXNvYzogYWRkIGR1bW15IGNvZGVjCgotLS0KIHNvdW5kL3NvYy9jb2Rl Y3MvS2NvbmZpZyAgfCAxMCArKysrKwogc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZSB8ICAy ICsKIHNvdW5kL3NvYy9jb2RlY3MvZHVtbXkuYyAgfCA5NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNvdW5kL3NvYy9jb2RlY3MvZHVtbXku YwoKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZyBiL3NvdW5kL3NvYy9j b2RlY3MvS2NvbmZpZwppbmRleCA0NWI3MjU2Li4xZjVhNzA0IDEwMDY0NAotLS0gYS9zb3Vu ZC9zb2MvY29kZWNzL0tjb25maWcKKysrIGIvc291bmQvc29jL2NvZGVjcy9LY29uZmlnCkBA IC0xMCw2ICsxMCw3IEBAIGNvbmZpZyBTTkRfU09DX0kyQ19BTkRfU1BJCiAKIGNvbmZpZyBT TkRfU09DX0FMTF9DT0RFQ1MKIAl0cmlzdGF0ZSAiQnVpbGQgYWxsIEFTb0MgQ09ERUMgZHJp dmVycyIKKwlzZWxlY3QgU05EX1NPQ19EVU1NWQogCXNlbGVjdCBTTkRfU09DXzg4UE04NjBY IGlmIE1GRF84OFBNODYwWAogCXNlbGVjdCBTTkRfU09DX0wzCiAJc2VsZWN0IFNORF9TT0Nf QUI4NTAwX0NPREVDIGlmIEFCWDUwMF9DT1JFCkBAIC0xMzQsNiArMTM1LDE1IEBAIGNvbmZp ZyBTTkRfU09DX0FMTF9DT0RFQ1MKIAogICAgICAgICAgIElmIHVuc3VyZSBzZWxlY3QgIk4i LgogCitjb25maWcgU05EX1NPQ19EVU1NWQorCXRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09D X0RVTU1ZX05BTUUKKwlzdHJpbmcgIk5hbWUgb2YgdGhlIGR1bW15IGNvZGVjIgorCWRlcGVu ZHMgb24gU05EX1NPQ19EVU1NWQorCWhlbHAKKwkgIFNwZWNpZnkgcGxhdGZvcm0gZGV2aWNl IG5hbWUsIGlmIGFueSwgb3IgbGVhdmUgYmxhbmsKKwogY29uZmlnIFNORF9TT0NfODhQTTg2 MFgKIAl0cmlzdGF0ZQogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxl IGIvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZQppbmRleCA2YTNiM2MzLi43NTE0ZDVlIDEw MDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCisrKyBiL3NvdW5kL3NvYy9j b2RlY3MvTWFrZWZpbGUKQEAgLTEsMyArMSw0IEBACitzbmQtc29jLWR1bW15LW9ianMgOj0g ZHVtbXkubwogc25kLXNvYy04OHBtODYweC1vYmpzIDo9IDg4cG04NjB4LWNvZGVjLm8KIHNu ZC1zb2MtYWI4NTAwLWNvZGVjLW9ianMgOj0gYWI4NTAwLWNvZGVjLm8KIHNuZC1zb2MtYWM5 Ny1vYmpzIDo9IGFjOTcubwpAQCAtMTIxLDYgKzEyMiw3IEBAIHNuZC1zb2Mtd20taHVicy1v YmpzIDo9IHdtX2h1YnMubwogc25kLXNvYy1tYXg5ODc3LW9ianMgOj0gbWF4OTg3Ny5vCiBz bmQtc29jLXRwYTYxMzBhMi1vYmpzIDo9IHRwYTYxMzBhMi5vCiAKK29iai0kKENPTkZJR19T TkRfU09DX0RVTU1ZKQkrPSBzbmQtc29jLWR1bW15Lm8KIG9iai0kKENPTkZJR19TTkRfU09D Xzg4UE04NjBYKQkrPSBzbmQtc29jLTg4cG04NjB4Lm8KIG9iai0kKENPTkZJR19TTkRfU09D X0FCODUwMF9DT0RFQykJKz0gc25kLXNvYy1hYjg1MDAtY29kZWMubwogb2JqLSQoQ09ORklH X1NORF9TT0NfQUM5N19DT0RFQykJKz0gc25kLXNvYy1hYzk3Lm8KZGlmZiAtLWdpdCBhL3Nv dW5kL3NvYy9jb2RlY3MvZHVtbXkuYyBiL3NvdW5kL3NvYy9jb2RlY3MvZHVtbXkuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGUwNGQzCi0tLSAvZGV2L251bGwK KysrIGIvc291bmQvc29jL2NvZGVjcy9kdW1teS5jCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisg KiBBTFNBIFNvQyBkdW1teSBkcml2ZXIKKyAqCisgKiAgVGhpcyBkcml2ZXIgaXMgdXNlZCBi eSBjb250cm9sbGVycyB3aGljaCBjYW4gb3BlcmF0ZSBpbiBESVQgKFNQREkvRikgd2hlcmUK KyAqICBubyBjb2RlYyBpcyBuZWVkZWQuICBUaGlzIGZpbGUgcHJvdmlkZXMgc3R1YiBjb2Rl YyB0aGF0IGNhbiBiZSB1c2VkCisgKiAgaW4gdGhlc2UgY29uZmlndXJhdGlvbnMuIFRJIERh VmluY2kgQXVkaW8gY29udHJvbGxlciB1c2VzIHRoaXMgZHJpdmVyLgorICoKKyAqIEF1dGhv cjogICAgICBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorICoK KyAqIEJhc2VkIG9uIHNwZGlmX3RyYW5zY2lldmVyLmMgYnkgU3RldmUgQ2hlbiwgIDxzY2hl bkBtdmlzdGEuY29tPgorICogQ29weXJpZ2h0OiAgIChDKSAyMDA5IE1vbnRhVmlzdGEgU29m dHdhcmUsIEluYy4sIDxzb3VyY2VAbXZpc3RhLmNvbT4KKyAqIENvcHlyaWdodDogICAoQykg MjAwOSAgVGV4YXMgSW5zdHJ1bWVudHMsIEluZGlhCisgKgorICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8 bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVk ZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291 bmQvaW5pdHZhbC5oPgorCisjZGVmaW5lIERSVl9OQU1FICJkdW1teS1jb2RlYyIKKworI2Rl ZmluZSBTVFVCX1JBVEVTCVNORFJWX1BDTV9SQVRFXzgwMDBfOTYwMDAKKyNkZWZpbmUgU1RV Ql9GT1JNQVRTCVNORFJWX1BDTV9GTVRCSVRfUzE2X0xFCisKKworc3RhdGljIHN0cnVjdCBz bmRfc29jX2NvZGVjX2RyaXZlciBzb2NfY29kZWNfY29kZWNfZGl0OworCitzdGF0aWMgc3Ry dWN0IHNuZF9zb2NfZGFpX2RyaXZlciBkdW1teV9zdHViX2RhaSA9IHsKKwkubmFtZQkJPSAi ZHVtbXktaGlmaSIsCisJLnBsYXliYWNrIAk9IHsKKwkJLnN0cmVhbV9uYW1lCT0gIlBsYXli YWNrIiwKKwkJLmNoYW5uZWxzX21pbgk9IDEsCisJCS5jaGFubmVsc19tYXgJPSAzODQsCisJ CS5yYXRlcwkJPSBTVFVCX1JBVEVTLAorCQkuZm9ybWF0cwk9IFNUVUJfRk9STUFUUywKKwl9 LAorfTsKKworc3RhdGljIGludCBjb2RlY19kdW1teV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQoreworCXJldHVybiBzbmRfc29jX3JlZ2lzdGVyX2NvZGVjKCZwZGV2 LT5kZXYsICZzb2NfY29kZWNfY29kZWNfZGl0LAorCQkJJmR1bW15X3N0dWJfZGFpLCAxKTsK K30KKworc3RhdGljIGludCBjb2RlY19kdW1teV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKK3sKKwlzbmRfc29jX3VucmVnaXN0ZXJfY29kZWMoJnBkZXYtPmRldik7 CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNvZGVj X2R1bW15X2RyaXZlciA9IHsKKwkucHJvYmUJCT0gY29kZWNfZHVtbXlfcHJvYmUsCisJLnJl bW92ZQkJPSBjb2RlY19kdW1teV9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5vd25lcgk9 IFRISVNfTU9EVUxFLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldjsKKworc3RhdGljIGludCBfX2luaXQgZHVtbXlfbW9kaW5pdCh2b2lkKQorewor CWlmICghQ09ORklHX1NORF9TT0NfRFVNTVlfTkFNRVswXSkgeworCQlzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZDsKKwkJcGQgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxl KERSVl9OQU1FLCAtMSwgTlVMTCwgMCk7CisJCWlmIChJU19FUlIocGQpKQorCQkJcmV0dXJu IFBUUl9FUlIocGQpOworCQlwZGV2ID0gcGQ7CisJCWNvZGVjX2R1bW15X2RyaXZlci5kcml2 ZXIubmFtZSA9IERSVl9OQU1FOworCX0gZWxzZSB7CisJCWNvZGVjX2R1bW15X2RyaXZlci5k cml2ZXIubmFtZSA9IENPTkZJR19TTkRfU09DX0RVTU1ZX05BTUU7CisJfQorCXJldHVybiBw bGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmNvZGVjX2R1bW15X2RyaXZlcik7Cit9CisKK3N0 YXRpYyB2b2lkIF9fZXhpdCBkdW1teV9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVy X3VucmVnaXN0ZXIoJmNvZGVjX2R1bW15X2RyaXZlcik7CisJaWYgKHBkZXYpCisJCXBsYXRm b3JtX2RldmljZV91bnJlZ2lzdGVyKHBkZXYpOworfQorCittb2R1bGVfaW5pdChkdW1teV9t b2Rpbml0KTsKK21vZHVsZV9leGl0KGR1bW15X2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCJT dGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9yZ2UubmV0PiIpOworTU9EVUxFX0RF U0NSSVBUSU9OKCJkdW1teSBjb2RlYyBkcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwi KTsKLS0gCjEuNy4xMS43Cgo= --------------070909030009040607050909 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --------------070909030009040607050909--