> On Apr 19, 2016, at 3:44 AM, Rick Mann <
rm...@latencyzero.com> wrote:
>
>>
>> On Apr 19, 2016, at 03:29 , John Syne <
john...@gmail.com> wrote:
>>
>> It was part of this discussion in which you participated.
>>
>>
https://groups.google.com/forum/#!msg/beagleboard/TMGEWjBLsok/ALk4h_jrCwAJ
>
> Ooof, months ago. I can barely remember what I did last week. ;-)
>
> In any case, I didn't put it together back then. This is the first time I've gotten a 4+ kernel to do everything I need (e.g. pruss, adc, and audio). It's still not all quite there, but I'm much farther along than I was. I may have also missed the follow-on posts on that thread.
>
> In any case, it doesn't seem to allow audio to be overlayed when enabled in the boot DTB.
>
>> Robert spoke about this on Jan 12, 2016:
>>
>> it's a big workaround hack, the bug seems to be in edma_probe:
>>
>>
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/dma/edma.c#n2118
>>
>> On first load of the board *.dtb, edma_probe is called and all the 'active' nodes get an edma slot, while the in-active nodes get disabled.. (power savings? for am335x, every ip has it's own edma channel, but maybe some parts need sharing?)
>>
>> So, next when we load an overlay, for uart0, uart1, uart2, spi0, spi1, mcasp0, and mcasp1 the edma channel would be disabled, (they still load, but every transfer fails when it switches from pio-dma spi=160 bytes) as we don't re-call edma_probe to enable them*..
>>
>> * that seems like the better fix.
>
> I think I understand what's going on. However, I'm not seeing the result of failed transfers. Audio actually works for me now.
>
> In any case, for my primary application, I can make a single comprehensive DTB to load at boot, so I should be able to get edma and audio, right? I'll try this after I sleep and wake up.
>
> Also, those discussions were for 4.1.x. Does all that still hold true for 4.4.x?
My guess if Robert still has the workarround applied, then it applies to 4.4.x as well. Best to ask Robert about this.