Help with LCD panel driver for sunxi embedded device: Jinglitai JLT4013A

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux