Dear Sir,
Thanks for the information.
But whenever I dump the data to /dev/fb0 it is displayed on the screen. So think below driver will be used, which will once again may use DCSS driver in linux:
drivers/gpu/drm/drm_fb_helper.c -> drivers/video/fbdev/core/fb_sys_fops.c
Currently I am not looking for a this existing frame buffer driver.
We are using DCSS controller and MIPI DSI interface.
Actually, what I am looking is like, inside the DCSS or MIPI DSI driver where frame buffer is updating as I mentioned in previous comment for LCDIF controller case.
I tried to refer U-Boot and Linux source code and came to know that if we use DCSS controller, the physical address of frame buffer need to be update in below registers:
Frame 1-Plane Base Address Control 0 (FRAME_1P_BASE_ADDR_CTRL0)
Frame 2-Plane Base Address Control 0 (FRAME_2P_BASE_ADDR_CTRL0)
Above information I got by refering U-Boot 2018 source code :
arch/arm/mach-imx/imx8m/video_common.c -> imx8m_display_init()
/* CHAN1_DPR */
reg32_write(REG_BASE_ADDR + 0x180c0, (unsigned int)buffer);
reg32_write(REG_BASE_ADDR + 0x18110,
(unsigned int)buffer + vms->xres * vms->yres);
As in LCDIF controller case, just updating the frame buffer physical address is enough? or Do we need to set or clear any bit in any of register, after data comes in frame buffer ?
In datasheet, there is a section like "DPR Memory map",
15.7.3.1.2 System Control 0 (SYSTEM_CTRL0) its mentioned like for next frame "Shadow Load Enable" bit need to set. similarly RUN_EN need to set.
In "Scale Control Register (SCALE_CTRL)" register it mentioned like we need to set "ENABLE_SCALR" bit.
Assume I have own FB driver and configured the shared memory for writing frame buffer data.
If I have custom DCSS driver will all basic setup/register initalization done (by Refering U-boot code as above mentioned -> imx8m_display_init()), whenevr I write the data to /dev/fb, for updating DCSS side what operation I need to do ?
Is above steps enough ? i.e
1. Update frame buffer address to FRAME_1P_BASE_ADDR_CTRL0 and FRAME_2P_BASE_ADDR_CTRL0
2. In register SYSTEM_CTRL0, set the bits SHADOW_LOAD_EN and RUN_EN
3. In register SCALE_CTRL, set ENABLE_SCALR bit
Thank you in advance. Waiting for any ones reply/help.
Regards,
Devendra