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; }
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(); }