[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