Пример #1
0
int mdp4_overlay_writeback_off(struct platform_device *pdev)
{
	int ret;
	struct msm_fb_data_type *mfd =
			(struct msm_fb_data_type *)platform_get_drvdata(pdev);

	mutex_lock(&writeback_lock);

	if (writeback_pipe == NULL) {
		mutex_unlock(&writeback_lock);
		return 0;
	}

	if (mfd && writeback_pipe) {
		mdp4_writeback_dma_busy_wait(mfd);
		mdp4_overlay_pipe_free(writeback_pipe);
		mdp4_overlay_panel_mode_unset(writeback_pipe->mixer_num,
						MDP4_PANEL_WRITEBACK);
		writeback_pipe = NULL;
	}
	ret = panel_next_off(pdev);
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
	
	outpdw(MDP_BASE + 0x100F4, 0x0);
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);
	mdp_clk_ctrl(0);

	mutex_unlock(&writeback_lock);

	return ret;
}
void mdp4_writeback_dma_stop(struct msm_fb_data_type *mfd)
{
	/* mutex holded by caller */
	if (mfd && writeback_pipe) {
		mdp4_writeback_dma_busy_wait(mfd);
		mdp4_overlay_writeback_update(mfd);

		mdp4_writeback_overlay_kickoff(mfd, writeback_pipe);
	}
}
Пример #3
0
void mdp4_writeback_dma_stop(struct msm_fb_data_type *mfd)
{
	
	if (mfd && writeback_pipe) {
		mdp4_writeback_dma_busy_wait(mfd);
		mdp4_overlay_writeback_update(mfd, NULL);

		mdp4_writeback_overlay_kickoff(mfd, writeback_pipe);
	}
}
int mdp4_overlay_writeback_off(struct platform_device *pdev)
{
	int ret;
	struct msm_fb_data_type *mfd =
			(struct msm_fb_data_type *)platform_get_drvdata(pdev);
	if (mfd && writeback_pipe) {
		mdp4_writeback_dma_busy_wait(mfd);
		mdp4_overlay_pipe_free(writeback_pipe);
		mdp4_overlay_panel_mode_unset(writeback_pipe->mixer_num,
						MDP4_PANEL_WRITEBACK);
		writeback_pipe = NULL;
	}
	ret = panel_next_off(pdev);
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_ON, FALSE);
	/* MDP_LAYERMIXER_WB_MUX_SEL to restore to default cfg*/
	outpdw(MDP_BASE + 0x100F4, 0x0);
	mdp_pipe_ctrl(MDP_CMD_BLOCK, MDP_BLOCK_POWER_OFF, FALSE);
	return ret;
}