[alsa-devel] r8a7790 only has audio when clock is forced on

Ben Dooks ben.dooks at codethink.co.uk
Wed Jun 4 11:02:54 CEST 2014


On 04/06/14 01:26, Kuninori Morimoto wrote:
> 
> Hi Violeta, Mark
> 
>> Adding Morimoto-san who does most of the work on those drivers upstream
>> - it's always best to CC relevant maintainers/developers on kernel stuff
>> as things only on the lists are easily missed.  Not deleting context so
>> he sees it.
> 
> Thank you for adding me.
> I want to help you
> 
>>> We have a problem where audio on r8a7790 is not working due to it not
>>> sending interrupts.
> 
> I need to ask you something
> 
> - Are you using lager board ?
> - Which kernel are you using ?
> - Does your kernel booted from legacy code (= using board-lager.c)
>   or from DT code (= using board-lager-referenct.c) ?
> 
>> We've made a hack to force /mstp10_clks /on that makes the audio work.
>> Further investigation showed that it's only needed to force SSI(ALL) on,
>> but, as far as we know, the manual doesn't say anything about it having to
>> be kept on.
> 
> YES. all SSI port needs SSI(ALL).
> (Actually, all SRC needs SRC(ALL) too if you use it)

The result of our investigation is as follows:

- The clock code correctly enables SSI(ALL) but the audio does not work
- If we force SSI(ALL) to be on all the time, we have working audio

> Basically, R-Car sound is very complex IP.
> The interrupt/data register/DMA selection are depends on your "data path"
> 
> This driver is producing many steps to use it.
> 
> At 1st, you can use "PIO transfer". this is not good performance,
> but, very easy settings. you can check your basic setting by this.
> (power/codec/pin/clock...)
> 
> The data path is..
> 
>           PIO
>     [MEM] ---> [SSI]
> 
> Next step is "using DMA". but, R-Car sound has 2 DMAs (Audio DMAC/Audio DMAC peri peri)
> And, these DMAC usage is complex too. So, you can use basic DMA transfer as DMA 1st step.
> The data path is..
> 
>        Audio DMAC
>     [MEM] ---> [SSI]
> 
> Next step is more complex. use SRC
> 
>                      Audio DMAC
>         Audio DMAC    peri peri
>     [MEM] ---> [SRC] --->[SSI]
> 
> Final step is using DVC
> 
>                             Audio DMAC
>         Audio DMAC           peri peri
>     [MEM] ---> [SRC] ---> [DVC] --->[SSI]
> 
> 
> Actually, lagacy boot is supporting above all path.
> But, DT boot is supporting 1st/2nd step only at this point
> (On rsnd driver side, DMAEngine DT is not yet supporing)
> I want to support 3rd/4th step on DT, but I'm busy now...
> 
> I pushed my local patches which are based on LTSI v3.4 + our original patches.
> These are tring to use sound as legacy code (= not DT) for lager/koelsh.
> Maybe not good fit too you, but can help ?
> 
> https://dl.dropboxusercontent.com/u/2774973/lager-koelsh-sound.tar.bz2
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
Ben Dooks				http://www.codethink.co.uk/
Senior Engineer				Codethink - Providing Genius


More information about the Alsa-devel mailing list