kernel updates: 4.1.12-ti-r27 (BBB all spi/spidev users rejoice)

The journey into spi & dma..

So for awhile now, we've had a bug for spi users, where the system
would hardlock at the "160" byte threashold:

debian@beaglebone:~$ sudo dd if=/dev/zero of=/dev/spidev1.0 bs=159 count=1
1+0 records in
1+0 records out
159 bytes (159 B) copied, 0.000508833 s, 312 kB/s
debian@beaglebone:/sys$ dd if=/dev/zero of=/dev/spidev1.0 bs=160 count=1


"160" happens to be a the magic number where DMA takes over from PIO mode...

Well as of yesterday:

debian@beaglebone:~$ sudo dd if=/dev/zero of=/dev/spidev1.0 bs=320 count=1
1+0 records in
1+0 records out
320 bytes (320 B) copied, 0.00266366 s, 120 kB/s

So here's the deal, it looks to be a spi/overlay bug, as we don't seem
to get the correct dma tx/rx channels..

What interesting, when the "spi" node is enabled in the main dtb:

it works fine in dma mode...

So with "4.1.12-ti-r27" spi-dma is now disabled..


Late last night i wrote a better fix (will be r28)

where you can disable "spi-dma" via the dt option:



Nice work, Robert.

Are the recent PRU-related changes in this update?

Well everything part of "r26" is still there in r27:


Thanks for your efforts!

drivers/staging/fbtft now works for me. Here is example of using
Adafruit 1.8" TFT LCD as a Framebuffer with 4.1.12-ti-r27 kernel:

Thanks, I lost track of where things were.

Hi Robert,

about this bug, are you also fixing the kernel am33x-rt-v4.1 ?

I’m interested also by the spi in the kernel am33x-rt-v4.1.




and what will become "4.4-rc1"..

Haven't had a chance to apply it "everywhere"..


It is very long time ago, but now I am running into performance issues
with SPI. I see the DMA is still disabled in current
So is the bug for blocks > 160 still there (what about kernel 4.4.x?)

Thanks in advance