Hello,
First of all, let me say I'm new to this, so please bear with me.
Here's the situation:
I have a radio [1] that runs a Linux OS over an AllWinner SoC. Pretty
much everything hardware-wise is on the mainline kernel, except for the
LCD panel driver. As (surprise, surprise), the vendor wouldn't comply
with their GPL mandate of sharing the kernel sources, I wrote the panel
driver. This is my first driver. I wrote it by looking at similar code
and with some help from Ghidra.
In [2] you can find the repository with my driver. Yes, it's
out-of-tree, but it simplified my usage with Buildroot, with my repo
available in [3].
My main problem right now is that while I can boot the image I
configured, the panel doesn't display a thing. It does turn on the
backlight tho.
I tried writing random garbage to `/dev/fb0` directly, I tried running
`kmscube`... Nothing...
In [4] you can find the boot log as of now. It also shows some error
messages when I try to run `kmscube` on L308. Please look at lines
256-266, 272-276, and 309. Many of those messages are `printk` calls in
my code (that I added to try and debug this).
Additional info: Buildroot uses mainline kernel. Latest version is using
5.17, and you can find the kernel defconfig in [3], under
br2_external/board/X6100/linux/sun8i-r16-x6100_defconfig.
The driver is currently being loaded via `modprobe` but I have tried
just making it a *.patch file for the kernel, with same results.
The only significant differences from my driver to the vendor's is that
they have a `st7701s_enable()` and a `st7701s__disable()` that do
nothing and just return 0. I just didn't write these functions and
didn't add them to `static struct spi_driver jlt4013a_driver`. I suppose
that's not really what's making the difference? For completeness, they
use the `st7701s_` prefix because that's the controller on the panel.
Anything, if you have any pointers of how can I do more than just have a
panel with a backlight now, I'd appreciative all the help. I'm on the
IRC OFTC channel #dri-devel as LordKalma, and I have a bouncer, so I'm
always on and logging. Feel free to contact me there as well.
Thank you!
[1] https://www.radioddity.com/products/xiegu-x6100
[2] https://github.com/ruilvo/panel-jinglitai-jlt4013a
[3] https://github.com/ruilvo/AetherX6100
[4]
https://gist.github.com/ruilvo/60fa52113cad7ecbd61a07c284f81fc5#file-bootlog-txt