|
@@ -129,7 +129,6 @@ static void mxsfb_enable_controller(struct mxsfb_drm_private *mxsfb)
|
|
|
if (mxsfb->clk_disp_axi)
|
|
|
clk_prepare_enable(mxsfb->clk_disp_axi);
|
|
|
clk_prepare_enable(mxsfb->clk);
|
|
|
- mxsfb_enable_axi_clk(mxsfb);
|
|
|
|
|
|
/* If it was disabled, re-enable the mode again */
|
|
|
writel(CTRL_DOTCLK_MODE, mxsfb->base + LCDC_CTRL + REG_SET);
|
|
@@ -159,8 +158,6 @@ static void mxsfb_disable_controller(struct mxsfb_drm_private *mxsfb)
|
|
|
reg &= ~VDCTRL4_SYNC_SIGNALS_ON;
|
|
|
writel(reg, mxsfb->base + LCDC_VDCTRL4);
|
|
|
|
|
|
- mxsfb_disable_axi_clk(mxsfb);
|
|
|
-
|
|
|
clk_disable_unprepare(mxsfb->clk);
|
|
|
if (mxsfb->clk_disp_axi)
|
|
|
clk_disable_unprepare(mxsfb->clk_disp_axi);
|
|
@@ -208,7 +205,6 @@ static void mxsfb_crtc_mode_set_nofb(struct mxsfb_drm_private *mxsfb)
|
|
|
* running. This may lead to shifted pictures (FIFO issue?), so
|
|
|
* first stop the controller and drain its FIFOs.
|
|
|
*/
|
|
|
- mxsfb_enable_axi_clk(mxsfb);
|
|
|
|
|
|
/* Mandatory eLCDIF reset as per the Reference Manual */
|
|
|
err = mxsfb_reset_block(mxsfb->base);
|
|
@@ -269,12 +265,11 @@ static void mxsfb_crtc_mode_set_nofb(struct mxsfb_drm_private *mxsfb)
|
|
|
|
|
|
writel(SET_DOTCLK_H_VALID_DATA_CNT(m->hdisplay),
|
|
|
mxsfb->base + LCDC_VDCTRL4);
|
|
|
-
|
|
|
- mxsfb_disable_axi_clk(mxsfb);
|
|
|
}
|
|
|
|
|
|
void mxsfb_crtc_enable(struct mxsfb_drm_private *mxsfb)
|
|
|
{
|
|
|
+ mxsfb_enable_axi_clk(mxsfb);
|
|
|
mxsfb_crtc_mode_set_nofb(mxsfb);
|
|
|
mxsfb_enable_controller(mxsfb);
|
|
|
}
|
|
@@ -282,6 +277,7 @@ void mxsfb_crtc_enable(struct mxsfb_drm_private *mxsfb)
|
|
|
void mxsfb_crtc_disable(struct mxsfb_drm_private *mxsfb)
|
|
|
{
|
|
|
mxsfb_disable_controller(mxsfb);
|
|
|
+ mxsfb_disable_axi_clk(mxsfb);
|
|
|
}
|
|
|
|
|
|
void mxsfb_plane_atomic_update(struct mxsfb_drm_private *mxsfb,
|