[alsa-devel] S6000 ASoC drivers with multi-component
I'm a little concerned that there have been no updates to the s6000 audio drivers since the merge of multi-component ASoC (which is now in mainline and should be released as part of 2.6.37). This was a very big and invasive update, and experience with other architectures has been that there's usually at least some typos that need fixing. It'd be good to get some confirmation that the audio drivers have at least been tested with current mainline - if everything worked fine that's obviously excellent but it'd be good if someone could confirm that this is the case.
On 11/28/2010 01:07 PM, Mark Brown wrote:
I'm a little concerned that there have been no updates to the s6000 audio drivers since the merge of multi-component ASoC (which is now in mainline and should be released as part of 2.6.37). This was a very big and invasive update, and experience with other architectures has been that there's usually at least some typos that need fixing. It'd be good to get some confirmation that the audio drivers have at least been tested with current mainline - if everything worked fine that's obviously excellent but it'd be good if someone could confirm that this is the case.
Oh dear, you killed Schrödinger's cat..
Yes there are some bugs in the s6000 ASoC code. A missing semicolon at the end of s6000_i2s_dai, a lacking forward declaration of s6000_soc_platform in the request_irq line, and a reference to codec->snd_card which should probably be changed to codec->card->snd_card.
But trying to build a s6105 kernel from vanilla sources made me realize two things: 1. Nobody ever tried to do that before as s6000 support has been merged incompletely and in some cases with merge errors (variant_irq_disable declaration, I2C_BOARD_INFO in struct platform_device[], clk framework missing completely). 2. Compiling Xtensa kernels in general is broken at least since 2.6.35-rc1 because of e520c41085
So for now I could just compile-test the ASoC changes. Actually booting a kernel will probably take more of my spare time.. Would you like to have patches for the found ASoC bugs now or do you prefer waiting until I could make it work on hardware?
Daniel
On Mon, Nov 29, 2010 at 11:34:03AM +0100, Daniel Glöckner wrote:
But trying to build a s6105 kernel from vanilla sources made me realize two things:
- Nobody ever tried to do that before as s6000 support has been merged incompletely and in some cases with merge errors (variant_irq_disable declaration, I2C_BOARD_INFO in struct platform_device[], clk framework missing completely).
Actually, Liam did try and fail when he was testing the changes.
So for now I could just compile-test the ASoC changes. Actually booting a kernel will probably take more of my spare time.. Would you like to have patches for the found ASoC bugs now or do you prefer waiting until I could make it work on hardware?
Just send stuff as you find it, no problem sending multiple patches and it's less diff to carry.
A semicolon was missing.
Signed-off-by: Daniel Glöckner daniel-gl@gmx.net --- sound/soc/s6000/s6000-i2s.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/s6000/s6000-i2s.c b/sound/soc/s6000/s6000-i2s.c index 8778faa..3052f64 100644 --- a/sound/soc/s6000/s6000-i2s.c +++ b/sound/soc/s6000/s6000-i2s.c @@ -434,7 +434,7 @@ static struct snd_soc_dai_driver s6000_i2s_dai = { .rate_max = 1562500, }, .ops = &s6000_i2s_dai_ops, -} +};
static int __devinit s6000_i2s_probe(struct platform_device *pdev) {
On Tue, 2010-11-30 at 01:00 +0100, Daniel Glöckner wrote:
A semicolon was missing.
Signed-off-by: Daniel Glöckner daniel-gl@gmx.net
sound/soc/s6000/s6000-i2s.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/s6000/s6000-i2s.c b/sound/soc/s6000/s6000-i2s.c index 8778faa..3052f64 100644 --- a/sound/soc/s6000/s6000-i2s.c +++ b/sound/soc/s6000/s6000-i2s.c @@ -434,7 +434,7 @@ static struct snd_soc_dai_driver s6000_i2s_dai = { .rate_max = 1562500, }, .ops = &s6000_i2s_dai_ops, -} +};
static int __devinit s6000_i2s_probe(struct platform_device *pdev) {
All
Acked-by: Liam Girdwood lrg@slimlogic.co.uk
On Tue, Nov 30, 2010 at 11:21:25AM +0000, Liam Girdwood wrote:
All
Acked-by: Liam Girdwood lrg@slimlogic.co.uk
...and applied, thanks!
s6000_soc_platform has lost its forward declaration and there no longer is a name element in it, so use a string constant when calling request_irq.
Signed-off-by: Daniel Glöckner daniel-gl@gmx.net --- sound/soc/s6000/s6000-pcm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/s6000/s6000-pcm.c b/sound/soc/s6000/s6000-pcm.c index 271fd22..ab3ccae 100644 --- a/sound/soc/s6000/s6000-pcm.c +++ b/sound/soc/s6000/s6000-pcm.c @@ -473,7 +473,7 @@ static int s6000_pcm_new(struct snd_card *card, }
res = request_irq(params->irq, s6000_pcm_irq, IRQF_SHARED, - s6000_soc_platform.name, pcm); + "s6000-audio", pcm); if (res) { printk(KERN_ERR "s6000-pcm couldn't get IRQ\n"); return res;
When the s6105-ipcam ASoC driver had been converted to the multi-component API, a single reference to a former structure element remained, blocking successful compilation.
Signed-off-by: Daniel Glöckner daniel-gl@gmx.net --- sound/soc/s6000/s6105-ipcam.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/s6000/s6105-ipcam.c b/sound/soc/s6000/s6105-ipcam.c index 96c05e1..c1244c5 100644 --- a/sound/soc/s6000/s6105-ipcam.c +++ b/sound/soc/s6000/s6105-ipcam.c @@ -167,7 +167,7 @@ static int s6105_aic3x_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_dapm_sync(codec);
- snd_ctl_add(codec->snd_card, snd_ctl_new1(&audio_out_mux, codec)); + snd_ctl_add(codec->card->snd_card, snd_ctl_new1(&audio_out_mux, codec));
return 0; }
participants (4)
-
Daniel Glöckner
-
Daniel Glöckner
-
Liam Girdwood
-
Mark Brown