示例#1
0
static int mdp3_ctrl_res_req_clk(struct msm_fb_data_type *mfd, int status)
{
	int rc = 0;
	if (status) {

		mdp3_clk_set_rate(MDP3_CLK_CORE, MDP_CORE_CLK_RATE,
				MDP3_CLIENT_DMA_P);
		mdp3_clk_set_rate(MDP3_CLK_VSYNC, MDP_VSYNC_CLK_RATE,
				MDP3_CLIENT_DMA_P);

		rc = mdp3_clk_prepare();
		if (rc) {
			pr_err("mdp3 clk prepare fail\n");
			return rc;
		}

		rc = mdp3_clk_enable(1, 1);
		if (rc) {
			pr_err("mdp3 clk enable fail\n");
			mdp3_clk_unprepare();
			return rc;
		}
	} else {
		rc = mdp3_clk_enable(0, 1);
		if (rc)
			pr_err("mdp3 clk disable fail\n");
		else
			mdp3_clk_unprepare();
	}
	return rc;
}
示例#2
0
void mdp3_dump_dma(void *data)
{
	struct mdp3_dma *dma = (struct mdp3_dma *)data;
	u32 isr, mask;

	mdp3_clk_prepare();
	mdp3_clk_enable(1, 0);

	isr = MDP3_REG_READ(MDP3_REG_INTR_STATUS);
	mask = MDP3_REG_READ(MDP3_REG_INTR_ENABLE);
	MDSS_TIMEOUT_LOG("-------- MDP3 INTERRUPT DATA ---------\n");
	MDSS_TIMEOUT_LOG("MDP3_REG_INTR_STATUS: 0x%08X\n", isr);
	MDSS_TIMEOUT_LOG("MDP3_REG_INTR_ENABLE: 0x%08X\n", mask);
	MDSS_TIMEOUT_LOG("global irqs disabled: %d\n", irqs_disabled());
	MDSS_TIMEOUT_LOG("------ MDP3 INTERRUPT DATA DONE ------\n");

	if (dma) {
		MDSS_TIMEOUT_LOG("-------- MDP3 DMA DATA ---------\n");
		MDSS_TIMEOUT_LOG("vsync_cnt=%u\n", dma->vsync_cnt);
		MDSS_TIMEOUT_LOG("------ MDP3 DMA DATA DONE ------\n");
	}

	mdp3_clk_enable(0, 0);
	mdp3_clk_unprepare();
}