From: Michele Curti <michele.curti@gmail.com>
To: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Cc: Takashi Iwai <tiwai@suse.de>, Bard Liao <bardliao@realtek.com>,
alsa-devel@alsa-project.org, "Nikula,
Jarkko" <jarkko.nikula@intel.com>
Subject: Re: writing an alsa driver
Date: Thu, 4 Jun 2015 21:39:22 +0200 [thread overview]
Message-ID: <20150604193922.GA627@asus> (raw)
In-Reply-To: <1433156768.2642.21.camel@loki>
On Mon, Jun 01, 2015 at 12:06:08PM +0100, Liam Girdwood wrote:
> + Jarkko
>
> On Fri, 2015-05-29 at 15:17 +0200, Michele Curti wrote:
> > On Fri, May 29, 2015 at 10:42:01AM +0100, Liam Girdwood wrote:
> > > On Thu, 2015-05-28 at 21:17 +0200, Michele Curti wrote:
> > >
> > > > to let the probe continue, the system become quite unusable but I get the
> > > > logs.
> > > >
> > > > May 28 20:34:00 asus kernel: byt-rt5645 byt-rt5645: ASoC: CPU DAI baytrail-pcm-audio not registered
> > > > May 28 20:34:00 asus kernel: baytrail-pcm-audio baytrail-pcm-audio: initialising Byt DSP IPC
> > > > May 28 20:34:00 asus kernel: baytrail-pcm-audio baytrail-pcm-audio: initialising audio DSP id 0xf28
> > > > May 28 20:34:00 asus kernel: irq used for dsp = 6
> > > >
> > > > ---> The IRQ number used is 6
> > > >
>
> Jarkko thinks the IRQ may be incorrectly reported by ACPI and that it
> could be using another ACPI index. This could probably be checked by
> decompiling the ACPi data and searching for the audio DSP.
>
Done an acpidump/iasl and (I think) the interesting part is:
Scope (_SB)
{
Device (LPEA)
{
Name (_ADR, Zero) // _ADR: Address
Name (_HID, "80860F28" /* Intel SST Audio DSP */) // _HID: Hardware ID
Name (_CID, "80860F28" /* Intel SST Audio DSP */) // _CID: Compatible ID
Name (_DDN, "Intel(R) Low Power Audio Controller - 80860F28") // _DDN: DOS Device Name
Name (_SUB, "1043182D") // _SUB: Subsystem ID
Name (_UID, One) // _UID: Unique ID
Name (ADEP, Package (0x01)
{
^I2C2.TTLV
})
Name (_DEP, Package (0x01) // _DEP: Dependencies
{
^I2C2.RTEK
})
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
PLPE
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (((LPEE == 0x02) && (LPED == Zero)))
{
Return (0x0F)
}
Return (Zero)
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
}
Name (RBUF, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x12345678, // Address Base
0x00200000, // Address Length
_Y04)
Memory32Fixed (ReadWrite,
0xFE830000, // Address Base
0x00001000, // Address Length
_Y05)
Memory32Fixed (ReadWrite,
0x55AA55AA, // Address Base
0x00200000, // Address Length
_Y06)
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,
}
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (RBUF, \_SB.LPEA._Y04._BAS, B0BA) // _BAS: Base Address
B0BA = LPE0 /* \LPE0 */
CreateDWordField (RBUF, \_SB.LPEA._Y05._BAS, B1BA) // _BAS: Base Address
B1BA = LPE1 /* \LPE1 */
CreateDWordField (RBUF, \_SB.LPEA._Y06._BAS, B2BA) // _BAS: Base Address
B2BA = LPE2 /* \LPE2 */
Return (RBUF) /* \_SB_.LPEA.RBUF */
}
OperationRegion (KEYS, SystemMemory, LPE1, 0x0100)
Field (KEYS, DWordAcc, NoLock, WriteAsZeros)
{
Offset (0x84),
PSAT, 32
}
PowerResource (PLPE, 0x05, 0x0000)
{
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (One)
}
Method (_ON, 0, NotSerialized) // _ON_: Power On
{
PSAT &= 0xFFFFFFFC
Local0 = PSAT /* \_SB_.LPEA.PSAT */
}
Method (_OFF, 0, NotSerialized) // _OFF: Power Off
{
PSAT |= 0x03
Local0 = PSAT /* \_SB_.LPEA.PSAT */
}
}
So, 6 possible IRQs for the LPE core, from 0x18 to 0x1D?
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".
I'm going to investigate why platform_get_irq() returns 6 instead of something
in the range 0x18-0x1D.. :)
Thanks for the time spent,
Michele
next prev parent reply other threads:[~2015-06-04 19:39 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 [this message]
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=20150604193922.GA627@asus \
--to=michele.curti@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=bardliao@realtek.com \
--cc=jarkko.nikula@intel.com \
--cc=liam.r.girdwood@linux.intel.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).