From mboxrd@z Thu Jan 1 00:00:00 1970 From: Janusz Krzysztofik Subject: Re: [PATCH] ASoC: ams-delta: Convert to use snd_soc_register_card() Date: Tue, 02 Oct 2012 23:07:30 +0200 Message-ID: <3016923.ExzrZjbreL@vclass> References: <20120906073633.GC22330@opensource.wolfsonmicro.com> <1347823023-24922-1-git-send-email-jkrzyszt@tis.icnet.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from d1.icnet.pl (d1.icnet.pl [212.160.220.21]) by alsa0.perex.cz (Postfix) with ESMTP id E9DFC261653 for ; Tue, 2 Oct 2012 23:09:23 +0200 (CEST) In-Reply-To: <1347823023-24922-1-git-send-email-jkrzyszt@tis.icnet.pl> 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: Mark Brown Cc: Tony Lindgren , alsa-devel@alsa-project.org, linux-omap@vger.kernel.org, Liam Girdwood , linux-arm-kernel@lists.infradead.org List-Id: alsa-devel@alsa-project.org RG5pYSBuaWVkemllbGEsIDE2IHdyemXFm25pYSAyMDEyIDIxOjE3OjAzIEphbnVzeiBLcnp5c3p0 b2ZpayBwaXN6ZToKPiBUaGUgb2xkIG1ldGhvZCBvZiByZWdpc3RlcmluZyB3aXRoIHRoZSBBU29D IGNvcmUgYnkgY3JlYXRpbmcgYQo+ICJzb2MtYXVkaW8iIHBsYXRmb3JtIGRldmljZSBubyBsb25n ZXIgd29ya3MgZm9yIEFtc3RyYWQgRGVsdGEgc291bmQgY2FyZAo+IGFmdGVyIHJlY2VudCBjaGFu Z2VzIHRvIGRydmRhdGEgaGFuZGxpbmcgKGNvbW1pdAo+IDA5OThkMDYzMTAwMTI4OGE1OTc0YWZj MGIyYTVmNTY4YmNkZWNiNGQsICdkZXZpY2UtY29yZTogRW5zdXJlIGRydmRhdGEgPQo+IE5VTEwg d2hlbiBubyBkcml2ZXIgaXMgYm91bmQnLgo+IAo+IFVzZSBzbmRfc29jX3JlZ2lzdGVyX2NhcmQo KSBtZXRob2QgaW5zdGVhZCwgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBBU29DCj4gY29yZSBnZW5lcmF0 ZWQgd2FybmluZyBtZXNzYWdlLCBhbmQgbW92ZSBib3RoIHRoZSBjYXJkIGFuZCBjb2RlYwo+IHBs YXRmb3JtIGRldmljZSByZWdpc3RyYXRpb24gdG8gdGhlIGFyY2ggYm9hcmQgZmlsZSB3aGVyZSB0 aG9zZSBiZWxvbmcuCgpIaSBNYXJrLApJcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCB0aGlzIHBhdGNo PyBBbnkgY2hhbmNlIGZvciBpdCB0byBmaW5kIGl0cyB3YXkgaW50byAzLjc/CgpUaGFua3MsCkph bnVzegoKPiBDcmVhdGVkIGFuZCB0ZXN0ZWQgYWdhaW5zdCBsaW51eC0zLjYtcmM1Lgo+IAo+IFNp Z25lZC1vZmYtYnk6IEphbnVzeiBLcnp5c3p0b2ZpayA8amtyenlzenRAdGlzLmljbmV0LnBsPgo+ IC0tLQo+IE9uIFRodSwgNiBTZXAgMjAxMiAxNTozNjozNSBNYXJrIEJyb3duIHdyb3RlOgo+ID4g T24gU2F0LCBTZXAgMDEsIDIwMTIgYXQgMTE6MDk6MThBTSArMDIwMCwgSmFudXN6IEtyenlzenRv ZmlrIHdyb3RlOgo+ID4gCj4gPiA+IEkgc2VlIHlvdXIgcG9pbnQsIGhvd2V2ZXIgZm9yIG5vdyBJ IGNhbiBzZWUgbm8gYmV0dGVyIHdheSBvZiByZWZlcmVuY2luZyAKPiA+ID4gdGhlIGRhdGEgKG9m IHR5cGUgc3RydWN0IHNuZF9zb2NfY2FyZCkgdGhlbiBwYXNzaW5nIGl0IHRvIAo+ID4gPiBzbmRf c29jX3JlZ2lzdGVyX2NhcmQoKS4gQnV0IGZvciB0aGlzIHRvIHdvcmssIEkgd291bGQgaGF2ZSB0 byByZWdpc3RlciAKPiA+ID4gc3VjY2Vzc2Z1bGx5IGFuIGFtcy1kZWx0YSBzcGVjaWZpYyBwbGF0 Zm9ybSBkZXZpY2UgZmlyc3QsIG5vdCB0aGUgc29jLQo+ID4gPiBhdWRpby4gVGhpcywgZXZlbiBp ZiBzdGlsbCBkb25lIGZyb20gdGhlIHNvdW5kL3NvYy9vbWFwL2Ftcy1kZWx0YS5jLCBub3QgCj4g PiA+IGZyb20gYW4gYXJjaCBib2FyZCBmaWxlLCB3b3VsZCByZXF1aXJlIG5vdyBub3QgZXhpc3Rp bmcgYW1zLWRlbHRhIEFTb0MgCj4gPiA+IHBsYXRmb3JtIGRyaXZlciBwcm9iZS9yZW1vdmUgY2Fs bGJhY2tzIGF0IGxlYXN0LiBJJ20gc3RpbGwgbm90IGNvbnZpbmNlZCAKPiA+ID4gaWYgc3VjaCBt b2RpZmljYXRpb24gd291bGQgYmUgYWNjZXB0YWJsZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSByYyBj eWNsZS4KPiA+IAo+ID4gPiBJZiB0aGVyZSBpcyBhIHNpbXBsZXIsIGxlc3MgaW50cnVzaXZlIHdh eSB0byBkbyB0aGlzLCB0aGVuIHNvcnJ5LCBJIAo+ID4gPiBzdGlsbCBjYW4ndCBzZWUgaXQuCj4g PiAKPiA+IExpa2UgSSBhbHJlYWR5IHNhaWQganVzdCBtYWtlIGl0IGEgc3RhdGljIHZhcmlhYmxl Lgo+IAo+IE1hcmssCj4gU29ycnksIEkgd2FzIHN0aWxsIG5vdCBhYmxlIHRvIHVuZGVyc3RhbmQg d2hhdCB5b3UgYWN0dWFsbHkgbWVhbnQsIGFuZAo+IHRvIGNvbWUgb3V0IHdpdGggYSB3b3JraW5n IGZpeCBvdGhlciB0aGFuIEkgaW5pdGlhbGx5IHByb3Bvc2VkLiBJZiB3aGF0Cj4gSSd2ZSBwcmVw YXJlZCBub3cgaXMgbm90IGFjY2VwdGFibGUgYXMgYSBmaXgsIHRoYW4gaGFyZCBsdWNrLCBwbGVh c2UKPiBjb25zaWRlciBxdWV1ZWluZyBpdCBmb3IgMy43LCBhbmQgMy42IG11c3QgZ28gd2l0aCBB bXN0cmFkIERlbHRhIHNvdW5kCj4gbm90IHdvcmtpbmcgdW5sZXNzIHNvbWVvbmUgZWxzZSBpcyBz dGlsbCBhYmxlIHRvIGZpeCBpdC4KPiAKPiBUb255LAo+IFBsZWFzZSBnaXZlIHlvdXIgYWNrIG9u IHRoZSBhcmNoL2FybS9tYWNoLW9tYXAxIGJpdHMgaWYgYWNjZXB0YWJsZS4gSQo+IGJlbGlldmUg dGhlcmUgc2hvdWxkIGJlIG5vIG1lcmdlIGNvbmZsaWN0cyBpZiB0aGlzIGNoYW5nZSBnb2VzIHRo cm91Z2gKPiBzb3VuZC9zb2MuCj4gCj4gVGhhbmtzLAo+IEphbnVzego+IAo+ICBhcmNoL2FybS9t YWNoLW9tYXAxL2JvYXJkLWFtcy1kZWx0YS5jIHwgICAxMiArKysrKysKPiAgc291bmQvc29jL29t YXAvYW1zLWRlbHRhLmMgICAgICAgICAgICB8ICAgNjMgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1hbXMtZGVs dGEuYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmMKPiBpbmRleCBjNTM0 Njk4Li41YWI5YzZiIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1z LWRlbHRhLmMKPiArKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLWFtcy1kZWx0YS5jCj4g QEAgLTQ0NCwxNiArNDQ0LDI4IEBAIHN0YXRpYyBzdHJ1Y3Qgb21hcDFfY2FtX3BsYXRmb3JtX2Rh dGEgYW1zX2RlbHRhX2NhbWVyYV9wbGF0Zm9ybV9kYXRhID0gewo+ICAJLmxjbGtfa2h6X21heAk9 IDEzMzQsCQkvKiByZXN1bHRzIGluIDVmcHMgQ0lGLCAxMGZwcyBRQ0lGICovCj4gIH07Cj4gIAo+ ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhbXNfZGVsdGFfYXVkaW9fZGV2aWNlID0g ewo+ICsJLm5hbWUgICA9ICJhbXMtZGVsdGEtYXVkaW8iLAo+ICsJLmlkICAgICA9IC0xLAo+ICt9 Owo+ICsKPiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgY3gyMDQ0Ml9jb2RlY19kZXZp Y2UgPSB7Cj4gKwkubmFtZSAgID0gImN4MjA0NDItY29kZWMiLAo+ICsJLmlkICAgICA9IC0xLAo+ ICt9Owo+ICsKPiAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmFtc19kZWx0YV9kZXZp Y2VzW10gX19pbml0ZGF0YSA9IHsKPiAgCSZsYXRjaDFfZ3Bpb19kZXZpY2UsCj4gIAkmbGF0Y2gy X2dwaW9fZGV2aWNlLAo+ICAJJmFtc19kZWx0YV9rcF9kZXZpY2UsCj4gIAkmYW1zX2RlbHRhX2Nh bWVyYV9kZXZpY2UsCj4gKwkmYW1zX2RlbHRhX2F1ZGlvX2RldmljZSwKPiAgfTsKPiAgCj4gIHN0 YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpsYXRlX2RldmljZXNbXSBfX2luaXRkYXRhID0g ewo+ICAJJmFtc19kZWx0YV9uYW5kX2RldmljZSwKPiAgCSZhbXNfZGVsdGFfbGNkX2RldmljZSwK PiArCSZjeDIwNDQyX2NvZGVjX2RldmljZSwKPiAgfTsKPiAgCj4gIHN0YXRpYyB2b2lkIF9faW5p dCBhbXNfZGVsdGFfaW5pdCh2b2lkKQo+IGRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvb21hcC9hbXMt ZGVsdGEuYyBiL3NvdW5kL3NvYy9vbWFwL2Ftcy1kZWx0YS5jCj4gaW5kZXggN2Q0ZmE4ZS4uN2Ix OGI3NCAxMDA2NDQKPiAtLS0gYS9zb3VuZC9zb2Mvb21hcC9hbXMtZGVsdGEuYwo+ICsrKyBiL3Nv dW5kL3NvYy9vbWFwL2Ftcy1kZWx0YS5jCj4gQEAgLTU3NSw1NiArNTc1LDUzIEBAIHN0YXRpYyBz dHJ1Y3Qgc25kX3NvY19jYXJkIGFtc19kZWx0YV9hdWRpb19jYXJkID0gewo+ICB9Owo+ICAKPiAg LyogTW9kdWxlIGluaXQvZXhpdCAqLwo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAq YW1zX2RlbHRhX2F1ZGlvX3BsYXRmb3JtX2RldmljZTsKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKmN4MjA0NDJfcGxhdGZvcm1fZGV2aWNlOwo+IC0KPiAtc3RhdGljIGludCBfX2lu aXQgYW1zX2RlbHRhX21vZHVsZV9pbml0KHZvaWQpCj4gK3N0YXRpYyBfX2RldmluaXQgaW50IGFt c19kZWx0YV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICB7Cj4gKwlzdHJ1 Y3Qgc25kX3NvY19jYXJkICpjYXJkID0gJmFtc19kZWx0YV9hdWRpb19jYXJkOwo+ICAJaW50IHJl dDsKPiAgCj4gLQlpZiAoIShtYWNoaW5lX2lzX2Ftc19kZWx0YSgpKSkKPiAtCQlyZXR1cm4gLUVO T0RFVjsKPiAtCj4gLQlhbXNfZGVsdGFfYXVkaW9fcGxhdGZvcm1fZGV2aWNlID0KPiAtCQkJcGxh dGZvcm1fZGV2aWNlX2FsbG9jKCJzb2MtYXVkaW8iLCAtMSk7Cj4gLQlpZiAoIWFtc19kZWx0YV9h dWRpb19wbGF0Zm9ybV9kZXZpY2UpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gKwljYXJkLT5kZXYg PSAmcGRldi0+ZGV2Owo+ICAKPiAtCXBsYXRmb3JtX3NldF9kcnZkYXRhKGFtc19kZWx0YV9hdWRp b19wbGF0Zm9ybV9kZXZpY2UsCj4gLQkJCQkmYW1zX2RlbHRhX2F1ZGlvX2NhcmQpOwo+IC0KPiAt CXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoYW1zX2RlbHRhX2F1ZGlvX3BsYXRmb3JtX2Rldmlj ZSk7Cj4gLQlpZiAocmV0KQo+IC0JCWdvdG8gZXJyOwo+IC0KPiAtCS8qCj4gLQkgKiBDb2RlYyBw bGF0Zm9ybSBkZXZpY2UgY291bGQgYmUgcmVnaXN0ZXJlZCBmcm9tIGVsc2V3aGVyZSAoYm9hcmQ/ KSwKPiAtCSAqIGJ1dCBJIGRvIGl0IGhlcmUgYXMgaXQgbWFrZXMgc2Vuc2Ugb25seSBpZiB1c2Vk IHdpdGggdGhlIGNhcmQuCj4gLQkgKi8KPiAtCWN4MjA0NDJfcGxhdGZvcm1fZGV2aWNlID0KPiAt CQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJjeDIwNDQyLWNvZGVjIiwgLTEsIE5V TEwsIDApOwo+ICsJcmV0ID0gc25kX3NvY19yZWdpc3Rlcl9jYXJkKGNhcmQpOwo+ICsJaWYgKHJl dCkgewo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgInNuZF9zb2NfcmVnaXN0ZXJfY2FyZCBmYWls ZWQgKCVkKVxuIiwgcmV0KTsKPiArCQljYXJkLT5kZXYgPSBOVUxMOwo+ICsJCXJldHVybiByZXQ7 Cj4gKwl9Cj4gIAlyZXR1cm4gMDsKPiAtZXJyOgo+IC0JcGxhdGZvcm1fZGV2aWNlX3B1dChhbXNf ZGVsdGFfYXVkaW9fcGxhdGZvcm1fZGV2aWNlKTsKPiAtCXJldHVybiByZXQ7Cj4gIH0KPiAtbGF0 ZV9pbml0Y2FsbChhbXNfZGVsdGFfbW9kdWxlX2luaXQpOwo+ICAKPiAtc3RhdGljIHZvaWQgX19l eGl0IGFtc19kZWx0YV9tb2R1bGVfZXhpdCh2b2lkKQo+ICtzdGF0aWMgaW50IF9fZGV2ZXhpdCBh bXNfZGVsdGFfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiArCXN0 cnVjdCBzbmRfc29jX2NhcmQgKmNhcmQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiAr Cj4gIAlpZiAodHR5X3VucmVnaXN0ZXJfbGRpc2MoTl9WMjUzKSAhPSAwKQo+IC0JCWRldl93YXJu KCZhbXNfZGVsdGFfYXVkaW9fcGxhdGZvcm1fZGV2aWNlLT5kZXYsCj4gKwkJZGV2X3dhcm4oJnBk ZXYtPmRldiwKPiAgCQkJImZhaWxlZCB0byB1bnJlZ2lzdGVyIFYyNTMgbGluZSBkaXNjaXBsaW5l XG4iKTsKPiAgCj4gIAlzbmRfc29jX2phY2tfZnJlZV9ncGlvcygmYW1zX2RlbHRhX2hvb2tfc3dp dGNoLAo+ICAJCQlBUlJBWV9TSVpFKGFtc19kZWx0YV9ob29rX3N3aXRjaF9ncGlvcyksCj4gIAkJ CWFtc19kZWx0YV9ob29rX3N3aXRjaF9ncGlvcyk7Cj4gIAo+IC0JcGxhdGZvcm1fZGV2aWNlX3Vu cmVnaXN0ZXIoY3gyMDQ0Ml9wbGF0Zm9ybV9kZXZpY2UpOwo+IC0JcGxhdGZvcm1fZGV2aWNlX3Vu cmVnaXN0ZXIoYW1zX2RlbHRhX2F1ZGlvX3BsYXRmb3JtX2RldmljZSk7Cj4gKwlzbmRfc29jX3Vu cmVnaXN0ZXJfY2FyZChjYXJkKTsKPiArCWNhcmQtPmRldiA9IE5VTEw7Cj4gKwlyZXR1cm4gMDsK PiAgfQo+IC1tb2R1bGVfZXhpdChhbXNfZGVsdGFfbW9kdWxlX2V4aXQpOwo+ICsKPiArI2RlZmlu ZSBEUlZfTkFNRSAiYW1zLWRlbHRhLWF1ZGlvIgo+ICsKPiArc3RhdGljIHN0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgYW1zX2RlbHRhX2RyaXZlciA9IHsKPiArCS5kcml2ZXIgPSB7Cj4gKwkJLm5hbWUg PSBEUlZfTkFNRSwKPiArCQkub3duZXIgPSBUSElTX01PRFVMRSwKPiArCX0sCj4gKwkucHJvYmUg PSBhbXNfZGVsdGFfcHJvYmUsCj4gKwkucmVtb3ZlID0gX19kZXZleGl0X3AoYW1zX2RlbHRhX3Jl bW92ZSksCj4gK307Cj4gKwo+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGFtc19kZWx0YV9kcml2 ZXIpOwo+ICAKPiAgTU9EVUxFX0FVVEhPUigiSmFudXN6IEtyenlzenRvZmlrIDxqa3J6eXN6dEB0 aXMuaWNuZXQucGw+Iik7Cj4gIE1PRFVMRV9ERVNDUklQVElPTigiQUxTQSBTb0MgZHJpdmVyIGZv ciBBbXN0cmFkIEUzIChEZWx0YSkgdmlkZW9waG9uZSIpOwo+ICBNT0RVTEVfTElDRU5TRSgiR1BM Iik7Cj4gK01PRFVMRV9BTElBUygicGxhdGZvcm06IiBEUlZfTkFNRSk7Cj4gCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFsc2EtZGV2ZWwgbWFpbGluZyBs aXN0CkFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZwpodHRwOi8vbWFpbG1hbi5hbHNhLXByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: jkrzyszt@tis.icnet.pl (Janusz Krzysztofik) Date: Tue, 02 Oct 2012 23:07:30 +0200 Subject: [PATCH] ASoC: ams-delta: Convert to use snd_soc_register_card() In-Reply-To: <1347823023-24922-1-git-send-email-jkrzyszt@tis.icnet.pl> References: <20120906073633.GC22330@opensource.wolfsonmicro.com> <1347823023-24922-1-git-send-email-jkrzyszt@tis.icnet.pl> Message-ID: <3016923.ExzrZjbreL@vclass> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Dnia niedziela, 16 wrze?nia 2012 21:17:03 Janusz Krzysztofik pisze: > The old method of registering with the ASoC core by creating a > "soc-audio" platform device no longer works for Amstrad Delta sound card > after recent changes to drvdata handling (commit > 0998d0631001288a5974afc0b2a5f568bcdecb4d, 'device-core: Ensure drvdata = > NULL when no driver is bound'. > > Use snd_soc_register_card() method instead, as suggested by the ASoC > core generated warning message, and move both the card and codec > platform device registration to the arch board file where those belong. Hi Mark, Is something wrong with this patch? Any chance for it to find its way into 3.7? Thanks, Janusz > Created and tested against linux-3.6-rc5. > > Signed-off-by: Janusz Krzysztofik > --- > On Thu, 6 Sep 2012 15:36:35 Mark Brown wrote: > > On Sat, Sep 01, 2012 at 11:09:18AM +0200, Janusz Krzysztofik wrote: > > > > > I see your point, however for now I can see no better way of referencing > > > the data (of type struct snd_soc_card) then passing it to > > > snd_soc_register_card(). But for this to work, I would have to register > > > successfully an ams-delta specific platform device first, not the soc- > > > audio. This, even if still done from the sound/soc/omap/ams-delta.c, not > > > from an arch board file, would require now not existing ams-delta ASoC > > > platform driver probe/remove callbacks at least. I'm still not convinced > > > if such modification would be acceptable in the middle of the rc cycle. > > > > > If there is a simpler, less intrusive way to do this, then sorry, I > > > still can't see it. > > > > Like I already said just make it a static variable. > > Mark, > Sorry, I was still not able to understand what you actually meant, and > to come out with a working fix other than I initially proposed. If what > I've prepared now is not acceptable as a fix, than hard luck, please > consider queueing it for 3.7, and 3.6 must go with Amstrad Delta sound > not working unless someone else is still able to fix it. > > Tony, > Please give your ack on the arch/arm/mach-omap1 bits if acceptable. I > believe there should be no merge conflicts if this change goes through > sound/soc. > > Thanks, > Janusz > > arch/arm/mach-omap1/board-ams-delta.c | 12 ++++++ > sound/soc/omap/ams-delta.c | 63 +++++++++++++++----------------- > 2 files changed, 42 insertions(+), 33 deletions(-) > > diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c > index c534698..5ab9c6b 100644 > --- a/arch/arm/mach-omap1/board-ams-delta.c > +++ b/arch/arm/mach-omap1/board-ams-delta.c > @@ -444,16 +444,28 @@ static struct omap1_cam_platform_data ams_delta_camera_platform_data = { > .lclk_khz_max = 1334, /* results in 5fps CIF, 10fps QCIF */ > }; > > +static struct platform_device ams_delta_audio_device = { > + .name = "ams-delta-audio", > + .id = -1, > +}; > + > +static struct platform_device cx20442_codec_device = { > + .name = "cx20442-codec", > + .id = -1, > +}; > + > static struct platform_device *ams_delta_devices[] __initdata = { > &latch1_gpio_device, > &latch2_gpio_device, > &ams_delta_kp_device, > &ams_delta_camera_device, > + &ams_delta_audio_device, > }; > > static struct platform_device *late_devices[] __initdata = { > &ams_delta_nand_device, > &ams_delta_lcd_device, > + &cx20442_codec_device, > }; > > static void __init ams_delta_init(void) > diff --git a/sound/soc/omap/ams-delta.c b/sound/soc/omap/ams-delta.c > index 7d4fa8e..7b18b74 100644 > --- a/sound/soc/omap/ams-delta.c > +++ b/sound/soc/omap/ams-delta.c > @@ -575,56 +575,53 @@ static struct snd_soc_card ams_delta_audio_card = { > }; > > /* Module init/exit */ > -static struct platform_device *ams_delta_audio_platform_device; > -static struct platform_device *cx20442_platform_device; > - > -static int __init ams_delta_module_init(void) > +static __devinit int ams_delta_probe(struct platform_device *pdev) > { > + struct snd_soc_card *card = &ams_delta_audio_card; > int ret; > > - if (!(machine_is_ams_delta())) > - return -ENODEV; > - > - ams_delta_audio_platform_device = > - platform_device_alloc("soc-audio", -1); > - if (!ams_delta_audio_platform_device) > - return -ENOMEM; > + card->dev = &pdev->dev; > > - platform_set_drvdata(ams_delta_audio_platform_device, > - &ams_delta_audio_card); > - > - ret = platform_device_add(ams_delta_audio_platform_device); > - if (ret) > - goto err; > - > - /* > - * Codec platform device could be registered from elsewhere (board?), > - * but I do it here as it makes sense only if used with the card. > - */ > - cx20442_platform_device = > - platform_device_register_simple("cx20442-codec", -1, NULL, 0); > + ret = snd_soc_register_card(card); > + if (ret) { > + dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret); > + card->dev = NULL; > + return ret; > + } > return 0; > -err: > - platform_device_put(ams_delta_audio_platform_device); > - return ret; > } > -late_initcall(ams_delta_module_init); > > -static void __exit ams_delta_module_exit(void) > +static int __devexit ams_delta_remove(struct platform_device *pdev) > { > + struct snd_soc_card *card = platform_get_drvdata(pdev); > + > if (tty_unregister_ldisc(N_V253) != 0) > - dev_warn(&ams_delta_audio_platform_device->dev, > + dev_warn(&pdev->dev, > "failed to unregister V253 line discipline\n"); > > snd_soc_jack_free_gpios(&ams_delta_hook_switch, > ARRAY_SIZE(ams_delta_hook_switch_gpios), > ams_delta_hook_switch_gpios); > > - platform_device_unregister(cx20442_platform_device); > - platform_device_unregister(ams_delta_audio_platform_device); > + snd_soc_unregister_card(card); > + card->dev = NULL; > + return 0; > } > -module_exit(ams_delta_module_exit); > + > +#define DRV_NAME "ams-delta-audio" > + > +static struct platform_driver ams_delta_driver = { > + .driver = { > + .name = DRV_NAME, > + .owner = THIS_MODULE, > + }, > + .probe = ams_delta_probe, > + .remove = __devexit_p(ams_delta_remove), > +}; > + > +module_platform_driver(ams_delta_driver); > > MODULE_AUTHOR("Janusz Krzysztofik "); > MODULE_DESCRIPTION("ALSA SoC driver for Amstrad E3 (Delta) videophone"); > MODULE_LICENSE("GPL"); > +MODULE_ALIAS("platform:" DRV_NAME); >