On Sunday, October 4th, 2026 at 11:49 PM, Ryan Brue <[email protected]> 
wrote:

> mtk_dsi_reset_engine() does not touch DSI_MODE_CTRL, so whatever the
> bootloader left there survives power-on. On boards where the bootloader
> lights the panel for a boot logo and hands the DSI over still running, the
> leftover value is a video mode, and the first mtk_dsi_host_transfer() then
> takes the "already streaming" path: it stops the stream and waits for
> VM_DONE, which never arrives, because the engine reset has already stopped
> the stream. The panel's very first command fails and it is never
> initialised:
> 
>   [drm] Wait DSI IRQ(0x00000008) Timeout
>   *ERROR* failed to switch cmd mode
>   sending dcs data 8f a5 failed: -62
> 
> Set command mode right after the engine reset, so DSI_MODE_CTRL describes
> the state the reset leaves the engine in. The video mode is programmed by
> mtk_dsi_set_mode() when the stream is actually started, exactly as today.
> 
> Seen on the Amazon Fire HD 10 (2017), whose LK bootloader draws its logo
> over DSI in video mode and never stops the stream before jumping to the
> kernel.
> 
> Assisted-by: LLM
> Signed-off-by: Ryan Brue <[email protected]>

This is useful for quite lot of mobile SoCs, at least mt6572 and 6768.

Acked-by: Roman Vivchar <[email protected]>

Best regards,
Roman

Reply via email to