If I wanna change the video mode behavior, and this is all the available public information
I should add one of the above macros to this part of vc4_dsi.c driver
my question is:
How can i add them?
Let's take DSI_DISP_HACTIVE_NULL for example:
should I add it as a parameter in VC4_SET_FIELD() , if so, should it be the first or the second parameter
and how can I even know if it requires a VC4_SET_FIELD() or not.
another example is DSI_DISP0_LP_STOP_CTRL:
It is not even defined in vc4_dsi.c driver
I was also able to read and write to the LCD Register and enable the BIST Command, and yet the screen is still black
so my conclusion is that, it must be something in how the CM4 transmits in video mode, that the LCD cannot handle
Code:
#define DSI0_DISP0_CTRL0x18# define DSI_DISP0_PIX_CLK_DIV_MASKVC4_MASK(21, 13)# define DSI_DISP0_PIX_CLK_DIV_SHIFT13# define DSI_DISP0_LP_STOP_CTRL_MASKVC4_MASK(12, 11)# define DSI_DISP0_LP_STOP_CTRL_SHIFT11# define DSI_DISP0_LP_STOP_DISABLE0# define DSI_DISP0_LP_STOP_PERLINE1# define DSI_DISP0_LP_STOP_PERFRAME2/* Transmit RGB pixels and null packets only during HACTIVE, instead * of going to LP-STOP. */# define DSI_DISP_HACTIVE_NULLBIT(10)/* Transmit blanking packet only during vblank, instead of allowing LP-STOP. */# define DSI_DISP_VBLP_CTRLBIT(9)/* Transmit blanking packet only during HFP, instead of allowing LP-STOP. */# define DSI_DISP_HFP_CTRLBIT(8)/* Transmit blanking packet only during HBP, instead of allowing LP-STOP. */# define DSI_DISP_HBP_CTRLBIT(7)# define DSI_DISP0_CHANNEL_MASKVC4_MASK(6, 5)# define DSI_DISP0_CHANNEL_SHIFT5/* Enables end events for HSYNC/VSYNC, not just start events. */# define DSI_DISP0_ST_ENDBIT(4)# define DSI_DISP0_PFORMAT_MASKVC4_MASK(3, 2)# define DSI_DISP0_PFORMAT_SHIFT2# define DSI_PFORMAT_RGB5650# define DSI_PFORMAT_RGB666_PACKED1# define DSI_PFORMAT_RGB6662# define DSI_PFORMAT_RGB8883/* Default is VIDEO mode. */# define DSI_DISP0_COMMAND_MODEBIT(1)# define DSI_DISP0_ENABLEBIT(0)Code:
DSI_PORT_WRITE(DISP0_CTRL, VC4_SET_FIELD(dsi->divider, DSI_DISP0_PIX_CLK_DIV) | VC4_SET_FIELD(dsi->format, DSI_DISP0_PFORMAT) | VC4_SET_FIELD(DSI_DISP0_LP_STOP_PERFRAME, DSI_DISP0_LP_STOP_CTRL) | DSI_DISP0_ST_END);How can i add them?
Let's take DSI_DISP_HACTIVE_NULL for example:
should I add it as a parameter in VC4_SET_FIELD() , if so, should it be the first or the second parameter
and how can I even know if it requires a VC4_SET_FIELD() or not.
another example is DSI_DISP0_LP_STOP_CTRL:
It is not even defined in vc4_dsi.c driver
I was also able to read and write to the LCD Register and enable the BIST Command, and yet the screen is still black
so my conclusion is that, it must be something in how the CM4 transmits in video mode, that the LCD cannot handle
Statistics: Posted by ORR — Mon Sep 22, 2025 8:11 am