linux/drivers/gpu/drm/mediatek
Hsin-Yi Wang 2458d9d6d9 drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable()
mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(), which
needs ovl irq for drm_crtc_wait_one_vblank(), since after mtk_dsi_stop() is
called, ovl irq will be disabled. If drm_crtc_wait_one_vblank() is called
after last irq, it will timeout with this message: "vblank wait timed out
on crtc 0". This happens sometimes when turning off the screen.

In drm_atomic_helper.c#disable_outputs(),
the calling sequence when turning off the screen is:

1. mtk_dsi_encoder_disable()
     --> mtk_output_dsi_disable()
       --> mtk_dsi_stop();  /* sometimes make vblank timeout in
                               atomic_disable */
       --> mtk_dsi_poweroff();
2. mtk_drm_crtc_atomic_disable()
     --> drm_crtc_wait_one_vblank();
     ...
       --> mtk_dsi_ddp_stop()
         --> mtk_dsi_poweroff();

mtk_dsi_poweroff() has reference count design, change to make
mtk_dsi_stop() called in mtk_dsi_poweroff() when refcount is 0.

Fixes: 0707632b5b ("drm/mediatek: update DSI sub driver flow for sending commands to panel")
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Signed-off-by: CK Hu <ck.hu@mediatek.com>
2019-06-04 09:54:42 +08:00
..
Kconfig drm/mediatek: Using the function drm_display_mode_to_videomode 2018-05-02 14:20:47 +08:00
Makefile drm/mediatek: add hdmi driver for MT2701 and MT7623 2018-10-03 11:56:33 +08:00
mtk_cec.c headers: separate linux/mod_devicetable.h from linux/platform_device.h 2018-07-07 17:52:26 +02:00
mtk_cec.h
mtk_disp_color.c drm: Convert to using %pOF instead of full_name 2017-07-26 13:45:06 +02:00
mtk_disp_ovl.c drm/mediatek: add function to return OVL layer number 2018-08-27 11:24:36 +08:00
mtk_disp_rdma.c drm/mediatek: add function to return RDMA layer number 2018-08-27 11:24:37 +08:00
mtk_dpi_regs.h drm/mediatek: adjust EDGE to match clock and data 2018-10-03 11:56:32 +08:00
mtk_dpi.c drm/mediatek: using new factor for tvdpll for MT2701 hdmi phy 2019-04-09 17:47:01 +08:00
mtk_drm_crtc.c drm/mediatek: adjust ddp clock control flow 2019-05-29 14:54:38 +08:00
mtk_drm_crtc.h drm/mediatek: update some variable name from ovl to comp 2018-08-27 11:24:37 +08:00
mtk_drm_ddp_comp.c drm/mediatek: add a error return value when clock driver has been prepared 2018-10-03 11:56:33 +08:00
mtk_drm_ddp_comp.h drm/mediatek: add function to get layer number for component 2018-08-27 11:24:36 +08:00
mtk_drm_ddp.c drm/mediatek: implement connection from BLS to DPI0 2018-10-03 11:56:33 +08:00
mtk_drm_ddp.h drm/mediatek: add shadow register support 2017-04-08 00:02:13 +08:00
mtk_drm_drv.c drm/mediatek: clear num_pipes when unbind driver 2019-06-04 09:29:22 +08:00
mtk_drm_drv.h drm/mediatek: add third ddp path 2018-06-24 12:09:01 +08:00
mtk_drm_fb.c drm: Split out drm_probe_helper.h 2019-01-24 13:20:42 +01:00
mtk_drm_fb.h drm/mtk: Move GEM BO to drm_framebuffer 2018-06-28 00:27:36 +08:00
mtk_drm_gem.c drm/mediatek: respect page offset for PRIME mmap calls 2019-05-29 14:55:26 +08:00
mtk_drm_gem.h drm/mediatek: Implement gem prime vmap/vunmap function 2019-03-19 10:37:40 +08:00
mtk_drm_plane.c drm/mtk: Move GEM BO to drm_framebuffer 2018-06-28 00:27:36 +08:00
mtk_drm_plane.h drm/mediatek: Remove mtk_drm_plane 2016-08-08 14:20:00 -04:00
mtk_dsi.c drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable() 2019-06-04 09:54:42 +08:00
mtk_hdmi_ddc.c
mtk_hdmi_phy.c drm/mediatek: no change parent rate in round_rate() for MT2701 hdmi phy 2019-04-09 17:47:01 +08:00
mtk_hdmi_phy.h drm/mediatek: no change parent rate in round_rate() for MT2701 hdmi phy 2019-04-09 17:47:01 +08:00
mtk_hdmi_regs.h drm/mediatek: enable hdmi output control bit 2016-06-16 16:30:38 +02:00
mtk_hdmi.c drm/mediatek: fix possible object reference leak 2019-04-09 13:09:43 +08:00
mtk_hdmi.h drm/mediatek: separate hdmi phy to different file 2018-10-03 11:56:32 +08:00
mtk_mipi_tx.c drm/mediatek: add support for Mediatek SoC MT2701 2017-04-08 00:02:17 +08:00
mtk_mt2701_hdmi_phy.c drm/mediatek: no change parent rate in round_rate() for MT2701 hdmi phy 2019-04-09 17:47:01 +08:00
mtk_mt8173_hdmi_phy.c drm/mediatek: no change parent rate in round_rate() for MT2701 hdmi phy 2019-04-09 17:47:01 +08:00