alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Jarkko Nikula <jarkko.nikula@intel.com>
To: Michele Curti <michele.curti@gmail.com>,
	Liam Girdwood <liam.r.girdwood@linux.intel.com>
Cc: Takashi Iwai <tiwai@suse.de>, Bard Liao <bardliao@realtek.com>,
	alsa-devel@alsa-project.org
Subject: Re: writing an alsa driver
Date: Fri, 05 Jun 2015 10:00:50 +0300	[thread overview]
Message-ID: <55714922.1080906@intel.com> (raw)
In-Reply-To: <20150604193922.GA627@asus>

Hi

On 06/04/2015 10:39 PM, Michele Curti wrote:
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
>                  {
>                      0x0000001D,
>                  }
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
>                  {
>                      0x00000018,
>                  }
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
>                  {
>                      0x00000019,
>                  }
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
>                  {
>                      0x0000001A,
>                  }
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
>                  {
>                      0x0000001B,
>                  }
>                  Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
>                  {
>                      0x0000001C,
>                  }
...
>
> So, 6 possible IRQs for the LPE core, from 0x18 to 0x1D?
>
2 for DMA, 3 for SSP ports and 1 for host IPC. I don't know does Windows 
use those others as BIOS is exposing them but Linux needs only the host 
IPC irq 0x1d and Linux DSP FW is managing itself the rest.

> Changed the code and tried all six
>
> diff --git a/sound/soc/intel/common/sst-acpi.c b/sound/soc/intel/common/sst-acpi.c
> index bb28e84..a306502 100644
> --- a/sound/soc/intel/common/sst-acpi.c
> +++ b/sound/soc/intel/common/sst-acpi.c
> @@ -149,8 +149,12 @@ static int sst_acpi_probe(struct platform_device *pdev)
>   		sst_pdata->dma_size = desc->dma_size;
>   	}
>
> -	if (desc->irqindex_host_ipc >= 0)
> -		sst_pdata->irq = platform_get_irq(pdev, desc->irqindex_host_ipc);
> +	if (desc->irqindex_host_ipc >= 0) {
> +		sst_pdata->irq = 0x1D; /* acpi-dump, from 0x18 to 0x1D */
> +		pr_info("audio dsp: IRQ # was %d, force to %d\n",
> +				platform_get_irq(pdev, desc->irqindex_host_ipc),
> +				sst_pdata->irq);
> +	}
>
>   	if (desc->resindex_lpe_base >= 0) {
>   		mmio = platform_get_resource(pdev, IORESOURCE_MEM,
>
> without success, I get always the "dsp boot timeout".
>
Above probably won't work as it doesn't set the trigger flags as 
platform_get_irq() does and the Linux irq number is not necessarily the 
same than the HW irq number through the IOAPIC routing.

Your earlier irqindex_host_ipc change should get the right interrupt for 
Linux on your machine.

-	.irqindex_host_ipc = 5,
+	.irqindex_host_ipc = 0,

Unfortunately this index is machine specific and when I looked a few 
DSDT tables earlier I didn't figure out a clean way at which index the 
interrupt should be used in runtime. Probably having quirks for index 5 
needs least amount of quirks as index 0 seems to be constantly used on 
newer machines.

-- 
Jarkko
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

  reply	other threads:[~2015-06-05  7:00 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
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 [this message]
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=55714922.1080906@intel.com \
    --to=jarkko.nikula@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=bardliao@realtek.com \
    --cc=liam.r.girdwood@linux.intel.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).