[PATCH RESEND] drm/mediatek: dsi: force command mode in mtk_dsi_poweron()

CK Hu (胡俊光) ck.hu at mediatek.com
Mon Oct 12 01:27:23 PDT 2026


On Sun, 2026-10-04 at 15:48 -0500, Ryan Brue wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
> 
> 
> 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.

Reviewed-by: CK Hu <ck.hu at mediatek.com>

> 
> Assisted-by: LLM
> Signed-off-by: Ryan Brue <ryanbrue.dev at gmail.com>
> ---
> 
> 



More information about the linux-arm-kernel mailing list