[Letux-kernel] [PATCH 00/20] A bunch of JZ4730 fixups for letux-kernel

H. Nikolaus Schaller hns at goldelico.com
Tue Jan 12 21:58:23 CET 2021


> Am 12.01.2021 um 20:17 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> 
> 
>> Am 12.01.2021 um 19:29 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> 
>> 
>>> Am 12.01.2021 um 19:03 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>> 
>>> Then, scanning starts and I can reset ENA or set DIS to get it stopped. Or restarted. The QD and LDD
>>> bits follow. But no interrupts occur.
>> 
>> Well, interrupts are not disabled or broken. They just do not occur...
>> 
>> I managed to trigger some while playing around with the ENA and DIS flags.
>> But haven't found a pattern.
>> 
>> root at letux:~# devmem2 0x13050030 w 0x2400201c
>> /dev/mem opened.
>> Memory mapped at address 0x77edd000.
>> Value at address 0x13050030 (0x77edd030): 0x2400200C
>> Written 0x2400201C; readback 0x2400201C
>> ** 8263 printk messages dropped **
>> [   10.900766] ingenic_drm_irq_handler 0x00000030
>> [   10.900039] ingenic_drm_irq_handler 0x00000030
>> [   10.899312] ingenic_drm_irq_handler 0x00000030
>> ...
> 
> Just for preparing next steps, here is an analysis how the 2.6.24 kernel
> does set up and enable the LCDC:
> 
> * setting up the descriptors:
> 
> https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=drivers/video/jzlcd.c;h=4ca63f8d9d663594fa632e7b8a7f2725f89f371d;hb=86df48ade42a3e852b10b26f11676da0e8c13ccc#l1029
> 
> * initializing the hardware LCDC and CGU):
> 
> https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=drivers/video/jzlcd.c;h=4ca63f8d9d663594fa632e7b8a7f2725f89f371d;hb=86df48ade42a3e852b10b26f11676da0e8c13ccc#l1083
> 
> * suspend/resume with disable/enable lcd
> 
> https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=drivers/video/jzlcd.c;h=4ca63f8d9d663594fa632e7b8a7f2725f89f371d;hb=86df48ade42a3e852b10b26f11676da0e8c13ccc#l1371
> 
> Note the special code for jz4730!
> 
> * header files - but mainly for panel/board specific gpio and pwm setup:
> 
> https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=drivers/video/jzlcd.h;h=3676b9bc66c9bdfd89ec8c3990664579a2495d4b;hb=86df48ade42a3e852b10b26f11676da0e8c13ccc
> 
> * headers for macros like __lcd_set_ena();
> 
> - to be identified
> 
> BTW: the driver seems to use a palette to handle different depths - at least for small depths.
> And, there is a daemon that can rotate the framebuffer on the fly...
> Quite elaborated in capabilities but >500% different from the modern drm and framebuffer code.
> 
> It is also possible to search for CONFIG_SOC_JZ4730 or CONFIG_SOC_JZ4740 to
> see differences. There aren't many. Of course the additional depths and some different
> clock calculations. And minor differences in suspend/resume.

and here are some of my latest patches to v5.11-rc3:

https://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/letux/jz4730-v6

Not included is the hack for panel-simple since it would break other systems.



More information about the Letux-kernel mailing list