irqreturn_t mdss_dsi_isr(int irq, void *ptr) { u32 isr; struct mdss_dsi_ctrl_pdata *ctrl = (struct mdss_dsi_ctrl_pdata *)ptr; if (!ctrl->ctrl_base) pr_err("%s:%d DSI base adr no Initialized", __func__, __LINE__); isr = MIPI_INP(ctrl->ctrl_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(ctrl->ctrl_base + 0x0110, isr); if (ctrl->shared_pdata.broadcast_enable) if ((ctrl->panel_data.panel_info.pdest == DISPLAY_2) && (left_ctrl_pdata != NULL)) { u32 isr0; isr0 = MIPI_INP(left_ctrl_pdata->ctrl_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(left_ctrl_pdata->ctrl_base + 0x0110, isr0); } pr_debug("%s: ndx=%d isr=%x\n", __func__, ctrl->ndx, isr); if (isr & DSI_INTR_ERROR) { pr_err("%s: ndx=%d isr=%x\n", __func__, ctrl->ndx, isr); mdss_dsi_error(ctrl); } if (isr & DSI_INTR_VIDEO_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_VIDEO_TERM); complete(&ctrl->video_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_CMD_DMA_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_CMD_TERM); complete(&ctrl->dma_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_CMD_MDP_DONE) { spin_lock(&ctrl->mdp_lock); ctrl->mdp_busy = false; mdss_dsi_disable_irq_nosync(ctrl, DSI_MDP_TERM); complete(&ctrl->mdp_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_BTA_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_BTA_TERM); complete(&ctrl->bta_comp); spin_unlock(&ctrl->mdp_lock); } return IRQ_HANDLED; }
irqreturn_t mdss_dsi_isr(int irq, void *ptr) { u32 isr; struct mdss_dsi_ctrl_pdata *ctrl = (struct mdss_dsi_ctrl_pdata *)ptr; if (!ctrl->ctrl_base) pr_err("%s:%d DSI base adr no Initialized", __func__, __LINE__); isr = MIPI_INP(ctrl->ctrl_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(ctrl->ctrl_base + 0x0110, isr); pr_debug("%s: ndx=%d isr=%x\n", __func__, ctrl->ndx, isr); if (isr & DSI_INTR_ERROR) { MDSS_XLOG(ctrl->ndx, ctrl->mdp_busy, isr, 0x97); pr_err("%s: ndx=%d isr=%x\n", __func__, ctrl->ndx, isr); mdss_dsi_error(ctrl); } if (isr & DSI_INTR_VIDEO_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_VIDEO_TERM); complete(&ctrl->video_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_CMD_DMA_DONE) { MDSS_XLOG(ctrl->ndx, ctrl->mdp_busy, isr, 0x98); spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_CMD_TERM); complete(&ctrl->dma_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_CMD_MDP_DONE) { MDSS_XLOG(ctrl->ndx, ctrl->mdp_busy, isr, 0x99); spin_lock(&ctrl->mdp_lock); ctrl->mdp_busy = false; mdss_dsi_disable_irq_nosync(ctrl, DSI_MDP_TERM); complete(&ctrl->mdp_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_BTA_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_BTA_TERM); complete(&ctrl->bta_comp); spin_unlock(&ctrl->mdp_lock); } return IRQ_HANDLED; }
irqreturn_t mdss_dsi_isr(int irq, void *ptr) { u32 isr; unsigned char *dsi_base; struct mdss_dsi_ctrl_pdata *ctrl_pdata = (struct mdss_dsi_ctrl_pdata *)ptr; dsi_base = ctrl_pdata->ctrl_base; if (!dsi_base) pr_err("%s:%d DSI base adr no Initialized", __func__, __LINE__); isr = MIPI_INP(dsi_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(dsi_base + 0x0110, isr); if (ctrl_pdata->shared_pdata.broadcast_enable) if ((ctrl_pdata->panel_data.panel_info.pdest == DISPLAY_2) && (left_ctrl_pdata != NULL)) { u32 isr0; isr0 = MIPI_INP(left_ctrl_pdata->ctrl_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(left_ctrl_pdata->ctrl_base + 0x0110, isr0); } pr_debug("%s: isr=%x %x", __func__, isr, (int)DSI_INTR_ERROR); if (isr & DSI_INTR_ERROR) mdss_dsi_error(dsi_base); if (isr & DSI_INTR_VIDEO_DONE) { /* * do something here */ } if (isr & DSI_INTR_CMD_DMA_DONE) complete(&dsi_dma_comp); if (isr & DSI_INTR_CMD_MDP_DONE) { spin_lock(&dsi_mdp_lock); dsi_mdp_busy = false; spin_unlock(&dsi_mdp_lock); } return IRQ_HANDLED; }
irqreturn_t mdss_dsi_isr(int irq, void *ptr) { u32 isr; u32 isr0 = 0; struct mdss_dsi_ctrl_pdata *ctrl = (struct mdss_dsi_ctrl_pdata *)ptr; if (!ctrl) { pr_err("%s unable to access ctrl\n", __func__); return IRQ_HANDLED; } if (!ctrl->ctrl_base) { pr_err("%s:%d DSI base adr no Initialized", __func__, __LINE__); return IRQ_HANDLED; } isr = MIPI_INP(ctrl->ctrl_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(ctrl->ctrl_base + 0x0110, isr); if (ctrl->shared_pdata.broadcast_enable) if ((ctrl->panel_data.panel_info.pdest == DISPLAY_2) && (left_ctrl_pdata != NULL)) { isr0 = MIPI_INP(left_ctrl_pdata->ctrl_base + 0x0110);/* DSI_INTR_CTRL */ MIPI_OUTP(left_ctrl_pdata->ctrl_base + 0x0110, isr0 & (~DSI_INTR_CMD_MDP_DONE)); } pr_debug("%s: isr=%x, isr0=%x", __func__, isr, isr0); if (isr & DSI_INTR_ERROR) { #if defined (CONFIG_FB_MSM_MDSS_DSI_DBG) xlog(__func__, ctrl->ndx, ctrl->mdp_busy, isr, 0, 0, 0x97); #endif pr_err("%s: isr[%d]=%x %x", __func__, ctrl->ndx, isr, (int)DSI_INTR_ERROR); mdss_dsi_error(ctrl); } if (isr & DSI_INTR_VIDEO_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_VIDEO_TERM); complete(&ctrl->video_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_CMD_DMA_DONE) { spin_lock(&ctrl->mdp_lock); #if defined (CONFIG_FB_MSM_MDSS_DSI_DBG) xlog(__func__,ctrl->ndx, ctrl->mdp_busy, isr, 0, 0, 0x98); #endif mdss_dsi_disable_irq_nosync(ctrl, DSI_CMD_TERM); complete(&ctrl->dma_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_CMD_MDP_DONE) { spin_lock(&ctrl->mdp_lock); #if defined (CONFIG_FB_MSM_MDSS_DSI_DBG) xlog(__func__, ctrl->ndx, ctrl->mdp_busy, isr, 0, 0, 0x99); #endif ctrl->mdp_busy = false; mdss_dsi_disable_irq_nosync(ctrl, DSI_MDP_TERM); complete(&ctrl->mdp_comp); spin_unlock(&ctrl->mdp_lock); } if (isr & DSI_INTR_BTA_DONE) { spin_lock(&ctrl->mdp_lock); mdss_dsi_disable_irq_nosync(ctrl, DSI_BTA_TERM); complete(&ctrl->bta_comp); spin_unlock(&ctrl->mdp_lock); } return IRQ_HANDLED; }