alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
To: Michele Curti <michele.curti@gmail.com>
Cc: Takashi Iwai <tiwai@suse.de>, Bard Liao <bardliao@realtek.com>,
	alsa-devel@alsa-project.org
Subject: Re: writing an alsa driver
Date: Thu, 28 May 2015 14:21:34 +0100	[thread overview]
Message-ID: <1432819294.2726.33.camel@loki> (raw)
In-Reply-To: <20150528125325.GA418@asus>

On Thu, 2015-05-28 at 14:53 +0200, Michele Curti wrote:
> 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@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@asus ~]$ dmesg | grep probe
> [    1.794754] sst_byt_pcm_dev_probe failed dsp init
> 

Ok, so the DSP FW has been loaded but the FW is failing to boot. The FW
is just copied with memcpy() from the host to the DSP memory. Some
things to check :-

1) Does the DSP have a valid IRQ number and handler. The IRQ is used to
signal FW boot has completed.

2) Can you verify the FW data copied with memcpy by reading it back from
DSP memory. The DSP device may be in D3 here...

3) can you send the output of sst_byt_dump_shim() when boot fails.

Liam

  reply	other threads:[~2015-05-28 13:21 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-21 14:52 writing an alsa driver Michele Curti
2015-05-23 16:32 ` Michele Curti
2015-05-27  6:45   ` Takashi Iwai
2015-05-27  8:54     ` Michele Curti
2015-05-27 18:41       ` Liam Girdwood
2015-05-27 20:13         ` Michele Curti
2015-05-28 11:31           ` Liam Girdwood
2015-05-28 12:53             ` Michele Curti
2015-05-28 13:21               ` Liam Girdwood [this message]
2015-05-28 19:17                 ` Michele Curti
2015-05-29  9:42                   ` Liam Girdwood
2015-05-29 13:17                     ` Michele Curti
2015-06-01 11:06                       ` Liam Girdwood
2015-06-04  7:09                         ` Marcus Bannerman
2015-06-04  9:04                           ` Michele Curti
2015-06-04  8:59                         ` Michele Curti
2015-06-04 10:33                           ` Liam Girdwood
2015-06-04 17:44                             ` Juergen Bausa
2015-06-04 19:39                         ` Michele Curti
2015-06-05  7:00                           ` Jarkko Nikula
2015-06-08  8:26                             ` Michele Curti
2015-06-08  8:49                         ` Michele Curti
2015-06-13 13:47                           ` Luka Karinja
2015-06-15 16:46                             ` Michele Curti
2015-06-15 17:04                               ` Liam Girdwood
2015-06-16 20:50                                 ` Michele Curti
2015-06-17  9:16                                   ` Liam Girdwood
2015-06-17 21:34                                     ` Michele Curti
2015-06-18 11:14                                       ` Vinod Koul
2015-06-18 18:47                                         ` Michele Curti
2015-06-19  7:54                                           ` Vinod Koul
2015-06-19  8:12                                             ` Michele Curti
2015-06-17  6:39                                 ` Jarkko Nikula
2015-06-23  9:09                                 ` Michele Curti
2015-06-23  9:51                                   ` Liam Girdwood
2015-06-24 10:21                                   ` Vinod Koul
2015-06-24 11:31                                     ` Antonio Ospite
2015-06-24 11:40                                       ` Liam Girdwood
2015-06-24 16:04                                         ` Vinod Koul
2015-06-24 18:21                                     ` Michele Curti
2015-06-25  3:24                                       ` Vinod Koul
2015-06-25  7:39                                         ` Michele Curti
2016-03-03 11:11                                         ` Michele Curti
2016-03-03 11:27                                           ` Vinod Koul
2016-03-03 13:08                                             ` Michele Curti
2016-03-03 16:20                                             ` Pierre-Louis Bossart
2016-03-04 11:07                                               ` Michele Curti
  -- strict thread matches above, loose matches on Subject: below --
2015-07-22 20:05 Marco Bodega
2015-07-24 20:54 ` Michele Curti
2015-08-10 14:12 Johnny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1432819294.2726.33.camel@loki \
    --to=liam.r.girdwood@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=bardliao@realtek.com \
    --cc=michele.curti@gmail.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).