I don't have a problem with enabling the dma's in the <device>-overlay.dtb's. I just didn't know if it was appropriate to do so or if it was the best approach. For 4.1.x it may very well be the best solution.
On Monday, January 11, 2016 at 12:47:03 PM UTC-6, RobertCNelson wrote: > > > > On Mon, Jan 11, 2016 at 12:45 PM, Robert Nelson <[email protected] > <javascript:>> wrote: > >> >> >> On Mon, Jan 11, 2016 at 9:54 AM, <[email protected] <javascript:>> >> wrote: >> >>> It looks to me like the problem came about because the function >>> prepare_unused_channel_list() in arch/arm/common/edma.c for 4.1 kernels was >>> modified to use the device tree for determining which dma channels to >>> enable (by clearing appropriate edma_unused bits in the edma struct). >>> However, this function is called before processing of the cape device tree >>> overlays begins. Since the base dtbo files do not have appropriate >>> references to the McASPs, their dmas are not enabled. When the cape is >>> loaded, it appears that everything works, but since dma is not enabled, the >>> required dma transfers do not occur. Hence the underrun errors for play >>> and overrun errors for record. >>> >>> A simple workaround that worked for me was to add the following to >>> arch/arm/boot/dts/am335x-boneblack.dts: >>> >>> &mcasp0 { >>> status = "okay"; >>> }; >>> >>> This may not be the best solution. It seems to me that a better >>> solution would be to modify the kernel so that if a device that uses DMA is >>> enabled by a device tree overlay, the kernel would enable the DMA when it >>> parses the overlay. However, I have practically no experience or knowledge >>> of Linux at the kernel level, so may be completely off base. >>> >> >> Nice find! (this explains why spidev0/spidev1 don't work, without my dma >> disable hack) >> >> For v4.1.x, i wonder if we just enable everything like you did for mcasp0 >> by default.. in the <device>-overlay.dtb's.. >> > > btw, this should be safe, as all the channels seem to not overlap: > > > http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=blob;f=arch/arm/boot/dts/am33xx.dtsi;h=a0fbe071299c53c9bf1c6627c29326bea0f71fdf;hb=refs/heads/ti-linux-4.1.y > > Regards, > > -- > Robert Nelson > https://rcn-ee.com/ > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
