From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Mack Subject: [PATCH] ALSA: ASoC: Add codec driver for AK5386 Date: Fri, 8 Mar 2013 12:07:28 +0100 Message-ID: <1362740848-15752-1-git-send-email-zonque@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.zonque.de (svenfoo.org [82.94.215.22]) by alsa0.perex.cz (Postfix) with ESMTP id 61B9D261703 for ; Fri, 8 Mar 2013 12:07:30 +0100 (CET) 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@alsa-project.org Cc: broonie@opensource.wolfsonmicro.com, lgirdwood@gmail.com, Daniel Mack List-Id: alsa-devel@alsa-project.org QWRkcyBhIGRyaXZlciBmb3IgQXNhaGkgS2FzZWkncyBBSzUzODYgU2luZ2xlLWVuZGVkIDI0LUJp dCAxOTJrSHoKZGVsdGEtc2lnbWEgQURDLiBUaGUgZGV2aWNlIGhhcyBubyBjb250cm9sIHBvcnQg aW50ZXJmYWNlIGJ1dCBhbgpvcHRpb25hbCBSRVNFVC9QRE4gR1BJTyBwaW4uCgpTaWduZWQtb2Zm LWJ5OiBEYW5pZWwgTWFjayA8em9ucXVlQGdtYWlsLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL2Rl dmljZXRyZWUvYmluZGluZ3Mvc291bmQvYWs1Mzg2LnR4dCB8ICAxOSArKysKIHNvdW5kL3NvYy9j b2RlY3MvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNvdW5kL3Nv Yy9jb2RlY3MvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNvdW5k L3NvYy9jb2RlY3MvYWs1Mzg2LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUyICsrKysr KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9h azUzODYudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc291bmQvc29jL2NvZGVjcy9hazUzODYuYwoK ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9hazUz ODYudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3NvdW5kL2FrNTM4Ni50 eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMzOTE0ZgotLS0gL2Rldi9u dWxsCisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9zb3VuZC9hazUzODYu dHh0CkBAIC0wLDAgKzEsMTkgQEAKK0FLNTM4NiBTaW5nbGUtZW5kZWQgMjQtQml0IDE5MmtIeiBk ZWx0YS1zaWdtYSBBREMKKworVGhpcyBkZXZpY2UgaGFzIG5vIGNvbnRyb2wgaW50ZXJmYWNlLgor CitSZXF1aXJlZCBwcm9wZXJ0aWVzOgorCisgIC0gY29tcGF0aWJsZSA6ICJhc2FoaS1rYXNlaSxh azUzODYiCisKK09wdGlvbmFsIHByb3BlcnRpZXM6CisKKyAgLSByZXNldC1ncGlvIDogYSBHUElP IHNwZWMgZm9yIHRoZSByZXNldC9wb3dlciBkb3duIHBpbi4KKwkJIElmIHNwZWNpZmllZCwgaXQg d2lsbCBiZSBkZWFzc2VydGVkIGF0IHByb2JlIHRpbWUuCisKK0V4YW1wbGU6CisKK3NwZGlmOiBh azUzODZAMCB7CisJY29tcGF0aWJsZSA9ICJhc2FoaS1rYXNlaSxhazUzODYiOworCXJlc2V0LWdw aW8gPSA8JmdwaW8wIDIzPjsKK307CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL0tjb25m aWcgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKaW5kZXggODZiMzUyNC4uMThmZWExMCAxMDA2 NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mv S2NvbmZpZwpAQCAtMjYsNiArMjYsNyBAQCBjb25maWcgU05EX1NPQ19BTExfQ09ERUNTCiAJc2Vs ZWN0IFNORF9TT0NfQUs0NjQxIGlmIEkyQwogCXNlbGVjdCBTTkRfU09DX0FLNDY0MiBpZiBJMkMK IAlzZWxlY3QgU05EX1NPQ19BSzQ2NzEgaWYgSTJDCisJc2VsZWN0IFNORF9TT0NfQUs1Mzg2CiAJ c2VsZWN0IFNORF9TT0NfQUxDNTYyMyBpZiBJMkMKIAlzZWxlY3QgU05EX1NPQ19BTEM1NjMyIGlm IEkyQwogCXNlbGVjdCBTTkRfU09DX0NRMDA5M1ZDIGlmIE1GRF9EQVZJTkNJX1ZPSUNFQ09ERUMK QEAgLTIwNCw2ICsyMDUsOSBAQCBjb25maWcgU05EX1NPQ19BSzQ2NDIKIGNvbmZpZyBTTkRfU09D X0FLNDY3MQogCXRyaXN0YXRlCiAKK2NvbmZpZyBTTkRfU09DX0FLNTM4NgorCXRyaXN0YXRlCisK IGNvbmZpZyBTTkRfU09DX0FMQzU2MjMKICAgICAgICB0cmlzdGF0ZQogY29uZmlnIFNORF9TT0Nf QUxDNTYzMgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZSBiL3NvdW5kL3Nv Yy9jb2RlY3MvTWFrZWZpbGUKaW5kZXggODA3N2JjMi4uYjllNDFjOSAxMDA2NDQKLS0tIGEvc291 bmQvc29jL2NvZGVjcy9NYWtlZmlsZQorKysgYi9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCkBA IC0xNCw2ICsxNCw3IEBAIHNuZC1zb2MtYWs0NTM1LW9ianMgOj0gYWs0NTM1Lm8KIHNuZC1zb2Mt YWs0NjQxLW9ianMgOj0gYWs0NjQxLm8KIHNuZC1zb2MtYWs0NjQyLW9ianMgOj0gYWs0NjQyLm8K IHNuZC1zb2MtYWs0NjcxLW9ianMgOj0gYWs0NjcxLm8KK3NuZC1zb2MtYWs1Mzg2LW9ianMgOj0g YWs1Mzg2Lm8KIHNuZC1zb2MtYXJpem9uYS1vYmpzIDo9IGFyaXpvbmEubwogc25kLXNvYy1jcTkz dmMtb2JqcyA6PSBjcTkzdmMubwogc25kLXNvYy1jczQybDUxLW9ianMgOj0gY3M0Mmw1MS5vCkBA IC0xMzgsNiArMTM5LDcgQEAgb2JqLSQoQ09ORklHX1NORF9TT0NfQUs0NTM1KQkrPSBzbmQtc29j LWFrNDUzNS5vCiBvYmotJChDT05GSUdfU05EX1NPQ19BSzQ2NDEpCSs9IHNuZC1zb2MtYWs0NjQx Lm8KIG9iai0kKENPTkZJR19TTkRfU09DX0FLNDY0MikJKz0gc25kLXNvYy1hazQ2NDIubwogb2Jq LSQoQ09ORklHX1NORF9TT0NfQUs0NjcxKQkrPSBzbmQtc29jLWFrNDY3MS5vCitvYmotJChDT05G SUdfU05EX1NPQ19BSzUzODYpCSs9IHNuZC1zb2MtYWs1Mzg2Lm8KIG9iai0kKENPTkZJR19TTkRf U09DX0FMQzU2MjMpICAgICs9IHNuZC1zb2MtYWxjNTYyMy5vCiBvYmotJChDT05GSUdfU05EX1NP Q19BTEM1NjMyKQkrPSBzbmQtc29jLWFsYzU2MzIubwogb2JqLSQoQ09ORklHX1NORF9TT0NfQVJJ Wk9OQSkJKz0gc25kLXNvYy1hcml6b25hLm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mv YWs1Mzg2LmMgYi9zb3VuZC9zb2MvY29kZWNzL2FrNTM4Ni5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjFmMzAzOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29k ZWNzL2FrNTM4Ni5jCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQUxTQSBTb0MgZHJpdmVyIGZv cgorICogICAgQXNhaGkgS2FzZWkgQUs1Mzg2IFNpbmdsZS1lbmRlZCAyNC1CaXQgMTkya0h6IGRl bHRhLXNpZ21hIEFEQworICoKKyAqIChjKSAyMDEzIERhbmllbCBNYWNrIDx6b25xdWVAZ21haWwu Y29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9vZi5oPgorI2lu Y2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KKyNp bmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxz b3VuZC9pbml0dmFsLmg+CisKK3N0cnVjdCBhazUzODZfcHJpdiB7CisJaW50IHJlc2V0X2dwaW87 Cit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfY29kZWNfZHJpdmVyIHNvY19jb2RlY19hazUz ODY7CisKK3N0YXRpYyBpbnQgYWs1Mzg2X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAq Y29kZWNfZGFpLAorCQkJICAgICAgdW5zaWduZWQgaW50IGZvcm1hdCkKK3sKKwlzdHJ1Y3Qgc25k X3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCisJZm9ybWF0ICY9IFNORF9T T0NfREFJRk1UX0ZPUk1BVF9NQVNLOworCWlmIChmb3JtYXQgIT0gU05EX1NPQ19EQUlGTVRfTEVG VF9KICYmCisJICAgIGZvcm1hdCAhPSBTTkRfU09DX0RBSUZNVF9JMlMpIHsKKwkJZGV2X2Vycihj b2RlYy0+ZGV2LCAiSW52YWxpZCBEQUkgZm9ybWF0XG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJ fQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs1Mzg2X2h3X3BhcmFtcyhzdHJ1Y3Qg c25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSAgICBzdHJ1Y3Qgc25kX3BjbV9od19w YXJhbXMgKnBhcmFtcywKKwkJCSAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlzdHJ1 Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOworCXN0cnVjdCBhazUzODZfcHJp diAqcHJpdiA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOworCisJLyoKKwkgKiBG cm9tIHRoZSBkYXRhc2hlZXQ6CisJICoKKwkgKiBBbGwgZXh0ZXJuYWwgY2xvY2tzIChNQ0xLLCBT Q0xLIGFuZCBMUkNLKSBtdXN0IGJlIHByZXNlbnQgdW5sZXNzCisJICogUEROIHBpbiA9IOKAnEzi gJ0uIElmIHRoZXNlIGNsb2NrcyBhcmUgbm90IHByb3ZpZGVkLCB0aGUgQUs1Mzg2IG1heQorCSAq IGRyYXcgZXhjZXNzIGN1cnJlbnQgZHVlIHRvIGl0cyB1c2Ugb2YgaW50ZXJuYWwgZHluYW1pY2Fs bHkKKwkgKiByZWZyZXNoZWQgbG9naWMuIElmIHRoZSBleHRlcm5hbCBjbG9ja3MgYXJlIG5vdCBw cmVzZW50LCBwbGFjZQorCSAqIHRoZSBBSzUzODYgaW4gcG93ZXItZG93biBtb2RlIChQRE4gcGlu ID0g4oCcTOKAnSkuCisJICovCisKKwlpZiAoZ3Bpb19pc192YWxpZChwcml2LT5yZXNldF9ncGlv KSkKKwkJZ3Bpb19zZXRfdmFsdWUocHJpdi0+cmVzZXRfZ3BpbywgMSk7CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIGludCBhazUzODZfaHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0g KnN1YnN0cmVhbSwKKwkJCSAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJc3RydWN0IHNu ZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsKKwlzdHJ1Y3QgYWs1Mzg2X3ByaXYgKnBy aXYgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKKworCWlmIChncGlvX2lzX3Zh bGlkKHByaXYtPnJlc2V0X2dwaW8pKQorCQlncGlvX3NldF92YWx1ZShwcml2LT5yZXNldF9ncGlv LCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFp X29wcyBhazUzODZfZGFpX29wcyA9IHsKKwkuc2V0X2ZtdAk9IGFrNTM4Nl9zZXRfZGFpX2ZtdCwK KwkuaHdfcGFyYW1zCT0gYWs1Mzg2X2h3X3BhcmFtcywKKwkuaHdfZnJlZQk9IGFrNTM4Nl9od19m cmVlLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9kcml2ZXIgYWs1Mzg2X2RhaSA9 IHsKKwkubmFtZQkJPSAiYWs1Mzg2LWhpZmkiLAorCS5jYXB0dXJlCT0geworCQkuc3RyZWFtX25h bWUJPSAiQ2FwdHVyZSIsCisJCS5jaGFubmVsc19taW4JPSAxLAorCQkuY2hhbm5lbHNfbWF4CT0g MiwKKwkJLnJhdGVzCQk9IFNORFJWX1BDTV9SQVRFXzgwMDBfMTkyMDAwLAorCQkuZm9ybWF0cwk9 IFNORFJWX1BDTV9GTVRCSVRfUzggICAgIHwKKwkJCQkgIFNORFJWX1BDTV9GTVRCSVRfUzE2X0xF IHwKKwkJCQkgIFNORFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwKKwkJCQkgIFNORFJWX1BDTV9GTVRC SVRfUzI0XzNMRSwKKwl9LAorCS5vcHMJPSAmYWs1Mzg2X2RhaV9vcHMsCit9OworCisjaWZkZWYg Q09ORklHX09GCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhazUzODZfZHRfaWRz W10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJhc2FoaS1rYXNlaSxhazUzODYiLCB9LAorCXsgfQor fTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFrNTM4Nl9kdF9pZHMpOworI2VuZGlmCisKK3N0 YXRpYyBpbnQgYWs1Mzg2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwlzdHJ1Y3QgYWs1Mzg2X3ByaXYgKnBy aXY7CisKKwlwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXByaXYtPnJlc2V0X2dwaW8g PSAtRUlOVkFMOworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIHByaXYpOworCisJaWYgKG9mX21hdGNo X2RldmljZShvZl9tYXRjaF9wdHIoYWs1Mzg2X2R0X2lkcyksIGRldikpCisJCXByaXYtPnJlc2V0 X2dwaW8gPSBvZl9nZXRfbmFtZWRfZ3BpbyhkZXYtPm9mX25vZGUsCisJCQkJCQkgICAgICAicmVz ZXQtZ3BpbyIsIDApOworCisJaWYgKGdwaW9faXNfdmFsaWQocHJpdi0+cmVzZXRfZ3BpbykpCisJ CWlmIChkZXZtX2dwaW9fcmVxdWVzdF9vbmUoZGV2LCBwcml2LT5yZXNldF9ncGlvLAorCQkJCQkg IEdQSU9GX09VVF9JTklUX0xPVywKKwkJCQkJICAiQUs1Mzg2IFJlc2V0IikpCisJCQlwcml2LT5y ZXNldF9ncGlvID0gLUVJTlZBTDsKKworCXJldHVybiBzbmRfc29jX3JlZ2lzdGVyX2NvZGVjKGRl diwgJnNvY19jb2RlY19hazUzODYsCisJCQkJICAgICAgJmFrNTM4Nl9kYWksIDEpOworfQorCitz dGF0aWMgaW50IGFrNTM4Nl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sK KwlzbmRfc29jX3VucmVnaXN0ZXJfY29kZWMoJnBkZXYtPmRldik7CisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFrNTM4Nl9kcml2ZXIgPSB7CisJLnByb2Jl CQk9IGFrNTM4Nl9wcm9iZSwKKwkucmVtb3ZlCQk9IGFrNTM4Nl9yZW1vdmUsCisJLmRyaXZlcgkJ PSB7CisJCS5uYW1lCT0gImFrNTM4NiIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCQkub2Zf bWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9wdHIoYWs1Mzg2X2R0X2lkcyksCisJfSwKK307CisKK21v ZHVsZV9wbGF0Zm9ybV9kcml2ZXIoYWs1Mzg2X2RyaXZlcik7CisKK01PRFVMRV9ERVNDUklQVElP TigiQVNvQyBkcml2ZXIgZm9yIEFLNTM4NiBBREMiKTsKK01PRFVMRV9BVVRIT1IoIkRhbmllbCBN YWNrIDx6b25xdWVAZ21haWwuY29tPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotLSAKMS44 LjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWxz YS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHA6Ly9t YWlsbWFuLmFsc2EtcHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbHNhLWRldmVsCg==