static irqreturn_t mdss_irq_handler(int irq, void *ptr) { struct mdss_data_type *mdata = ptr; u32 intr = MDSS_MDP_REG_READ(MDSS_REG_HW_INTR_STATUS); if (!mdata) return IRQ_NONE; mdata->irq_buzy = true; if (intr & MDSS_INTR_MDP) { spin_lock(&mdp_lock); mdss_irq_dispatch(MDSS_HW_MDP, irq, ptr); spin_unlock(&mdp_lock); } if (intr & MDSS_INTR_DSI0) mdss_irq_dispatch(MDSS_HW_DSI0, irq, ptr); if (intr & MDSS_INTR_DSI1) mdss_irq_dispatch(MDSS_HW_DSI1, irq, ptr); if (intr & MDSS_INTR_EDP) mdss_irq_dispatch(MDSS_HW_EDP, irq, ptr); if (intr & MDSS_INTR_HDMI) mdss_irq_dispatch(MDSS_HW_HDMI, irq, ptr); mdata->irq_buzy = false; return IRQ_HANDLED; }
static irqreturn_t mdss_irq_handler(int irq, void *ptr) { u32 intr = MDSS_MDP_REG_READ(MDSS_REG_HW_INTR_STATUS); mdss_res->irq_buzy = true; if (intr & MDSS_INTR_MDP) mdss_irq_dispatch(MDSS_HW_MDP, irq, ptr); if (intr & MDSS_INTR_DSI0) mdss_irq_dispatch(MDSS_HW_DSI0, irq, ptr); if (intr & MDSS_INTR_DSI1) mdss_irq_dispatch(MDSS_HW_DSI1, irq, ptr); if (intr & MDSS_INTR_EDP) mdss_irq_dispatch(MDSS_HW_EDP, irq, ptr); if (intr & MDSS_INTR_HDMI) mdss_irq_dispatch(MDSS_HW_HDMI, irq, ptr); mdss_res->irq_buzy = false; return IRQ_HANDLED; }