Closed ShawnHymel closed 3 years ago
@ShawnHymel I ran into a similar problem with the BeagleBone Black. @notro suggested this change to disable DMA: https://github.com/notro/fbtft/issues/337#issuecomment-153534170
Robert C Nelson has now created a flag in SPI driver used by the BeagleBone Black: https://github.com/RobertCNelson/bb-kernel/blob/cef1661f6d27847b7a1f37ab6db2aec397e6388c/patches/beaglebone/dts/0007-spi-omap2-mcspi-ti-pio-mode.patch
@pdp7 Thanks! It looks like DMA_MIN_BYTES is in spi-omap2-mcspi, which I don't believe exists for the Edison source. I'll see if I can find something similar.
Hi @ShawnHymel Any update on your investigation? Did you get it working? I am in the same boat and trying to get 128x128 1.5" using SSD1351 to work.
No dice. I've posted this question on the Intel forums. Apparently, DMA has been enabled on SPI for the Edison. I tried disabling it in a recent kernel build, but I'm still getting the same error. I'm betting I'm not turning off DMA correctly, but I haven't seen anything on which options to disable in the kernel.
Thanks @ShawnHymel for the reply. In case I get lucky, will update here... Fingers crossed :)
@ShawnHymel, check my eds branch. It has now all patches I developed recently to support SPI/DMA for Edison on vanilla kernel. I checked my stuff with Adafruit 2.8" and SparkFun OLED. fbtft related stuff has been submitted today to public mailing list, Cc'ing @notro.
@andy-shev Awesome, thanks!
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.
It can be closed as "Fixed upstream". The kernels (approx. from v5.10.y) works out of the box on Edison WRT fbtft driver. Yeah, there were fixes here and there, but one should use stable kernels.
Fixed upstream. Thanks, @andy-shev !
I managed to get fbtft compiled with the Edison kernel using the Yocto Project and wallacezq's recipe. I have an Adafruit 1.8" LCD connected to the Edison (SPI bus 5.0). I try to load the module with
but
dmesg
gives me the following:I do not get a /dev/fb? device, so it seems the module is running into an issue with DMA buffers. As far as I can tell, between the recipe's patches and
dma=0
, I should be disabling DMA on fbtft, but it does not seem to be the case. I do not want DMA because as far as I know, the Edison does not have DMA on SPI.How do I prevent fbtft from using DMA? Any help would be appreciated!