[alsa-devel] [PATCH v2 4/4] ASoC: tegra: Harmony: Support the internal speaker

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Jan 25 21:29:53 CET 2011


On Wed, Jan 19, 2011 at 01:50:05PM -0700, Stephen Warren wrote:

> -static int __init harmony_soc_modinit(void)
> +static __devinit int tegra_snd_harmony_probe(struct platform_device *pdev)

Unrelated change...

> -	if (!machine_is_harmony()) {
> -		pr_err(PREFIX "Not running on Tegra Harmony!\n");
> -		return -ENODEV;
> +	if (pdev->id != 0) {
> +		dev_err(&pdev->dev, "ID %d out of range\n", pdev->id);
> +		return -EINVAL;
> +	}
> +
> +	pdata = pdev->dev.platform_data;
> +	if (!pdata) {
> +		dev_err(&pdev->dev, "no platform data supplied\n");
> +		return -EINVAL;

Unless you have more than one sound card your device ID should be -1.
I'd also be inclined to keep the machine_is_harmony() check here for
paranoia.

With the recently added exposure of snd_soc_register_card() you *should*
just be able allocate a regular platform device with a regular name in
your arch/arm code and then register that directly with the ASoC core -
something like:

int __devinit harmony_audio_probe(struct platform_device *pdev)
{
	/* Do GPIO stuff */

	card->dev = &pdev->dev;
	snd_soc_register_card(&snd_soc_harmony);

	/* Error handling */
}

ought to do the trick, and is much neater and more idiomatic than the
soc-audio stuff. 


More information about the Alsa-devel mailing list