[alsa-devel] writing an alsa driver

Michele Curti michele.curti at gmail.com
Thu May 28 14:53:25 CEST 2015


On Thu, May 28, 2015 at 12:31:08PM +0100, Liam Girdwood wrote:
> 
> > [    2.000642] byt-rt5645 byt-rt5645: ASoC: CPU DAI baytrail-pcm-audio not registered
> 
> We are seeing a lot of these. Can you confirm whether this driver has
> probed ? If not can you see it's ACPI ID listed
> under /sys/bus/acpi/devices. 
> 
> If it's not probing, it may also have a different ACPI ID compared to
> the reference driver. You may have to add an entry to sst-acpi.c i.e.
> 
> static struct sst_acpi_mach baytrail_machines[] = {
> 	{ "10EC5640", "byt-rt5640", "intel/fw_sst_0f28.bin-48kHz_i2s_master" },
> 	{ "193C9890", "byt-max98090", "intel/fw_sst_0f28.bin-48kHz_i2s_master" },
> 	{}
> };
> 
> Liam
>

Yes I already added an element in this list, I wrote:

static struct sst_acpi_mach baytrail_machines[] = {
	{ "10EC5640", "byt-rt5640", "intel/fw_sst_0f28.bin-48kHz_i2s_master" },
	{ "10EC5648", "byt-rt5645", "intel/fw_sst_0f28.bin-48kHz_i2s_master" },
	{ "193C9890", "byt-max98090", "intel/fw_sst_0f28.bin-48kHz_i2s_master" },
	{}
};

because in the i2c bus i saw:
[zio at asus linux-next]$ ls /sys/bus/acpi/devices/ | grep 10EC
10EC5648:00



About the probe, if I understood what you mean, the driver fails to probe
because of the DSP boot timeout.

The probe function is called, I added some debug: 

static int sst_byt_pcm_dev_probe(struct platform_device *pdev)
{
	struct sst_pdata *sst_pdata = dev_get_platdata(&pdev->dev);
	int ret;

	ret = sst_byt_dsp_init(&pdev->dev, sst_pdata);
	if (ret < 0) {
		pr_info("sst_byt_pcm_dev_probe failed dsp init\n");
		return -ENODEV;
	}

	ret = snd_soc_register_platform(&pdev->dev, &byt_soc_platform);
	if (ret < 0) {
		pr_info("sst_byt_pcm_dev_probe failed register platform\n");
		goto err_plat;
	}

	ret = snd_soc_register_component(&pdev->dev, &byt_dai_component,
					 byt_dais, ARRAY_SIZE(byt_dais));
	if (ret < 0) {
		pr_info("sst_byt_pcm_dev_probe failed register component\n");
		goto err_comp;
	}

	return 0;

err_comp:
	snd_soc_unregister_platform(&pdev->dev);
err_plat:
	sst_byt_dsp_free(&pdev->dev, sst_pdata);
	return ret;
}

and in dmesg I got:

[zio at asus ~]$ dmesg | grep probe
[    1.794754] sst_byt_pcm_dev_probe failed dsp init

Thanks,
Michele


More information about the Alsa-devel mailing list