The patch titled Subject: video: exynos mipi dsi: Properly interpret the interrupt source flags has been added to the -mm tree. Its filename is video-exynos-mipi-dsi-properly-interpret-the-interrupt-source-flags.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> Subject: video: exynos mipi dsi: Properly interpret the interrupt source flags Rework the interrupt handler so the RX_DONE, FIFO_EMPTY interrupts are properly detected. This prevents missing the interrupts when there are other bits set in the INTSRC register than just RX_DONE and FIFO_EMPTY. Signed-off-by: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> Signed-off-by: Donghwa Lee <dh09.lee@xxxxxxxxxxx> Signed-off-by: Inki Dae <inki.dae@xxxxxxxxxxx> Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> Cc: Florian Tobias Schandinat <FlorianSchandinat@xxxxxx> Cc: Richard Purdie <rpurdie@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/video/exynos/exynos_mipi_dsi_common.c | 28 +++++----------- 1 file changed, 10 insertions(+), 18 deletions(-) diff -puN drivers/video/exynos/exynos_mipi_dsi_common.c~video-exynos-mipi-dsi-properly-interpret-the-interrupt-source-flags drivers/video/exynos/exynos_mipi_dsi_common.c --- a/drivers/video/exynos/exynos_mipi_dsi_common.c~video-exynos-mipi-dsi-properly-interpret-the-interrupt-source-flags +++ a/drivers/video/exynos/exynos_mipi_dsi_common.c @@ -76,33 +76,25 @@ static unsigned int dpll_table[15] = { irqreturn_t exynos_mipi_dsi_interrupt_handler(int irq, void *dev_id) { - unsigned int intsrc = 0; - unsigned int intmsk = 0; - struct mipi_dsim_device *dsim = NULL; - - dsim = dev_id; - if (!dsim) { - dev_dbg(dsim->dev, KERN_ERR "%s:error: wrong parameter\n", - __func__); - return IRQ_HANDLED; + struct mipi_dsim_device *dsim = dev_id; + unsigned int intsrc, intmsk; + + if (dsim == NULL) { + dev_err(dsim->dev, "%s: wrong parameter\n", __func__); + return IRQ_NONE; } intsrc = exynos_mipi_dsi_read_interrupt(dsim); intmsk = exynos_mipi_dsi_read_interrupt_mask(dsim); + intmsk = ~intmsk & intsrc; - intmsk = ~(intmsk) & intsrc; - - switch (intmsk) { - case INTMSK_RX_DONE: + if (intsrc & INTMSK_RX_DONE) { complete(&dsim_rd_comp); dev_dbg(dsim->dev, "MIPI INTMSK_RX_DONE\n"); - break; - case INTMSK_FIFO_EMPTY: + } + if (intsrc & INTMSK_FIFO_EMPTY) { complete(&dsim_wr_comp); dev_dbg(dsim->dev, "MIPI INTMSK_FIFO_EMPTY\n"); - break; - default: - break; } exynos_mipi_dsi_clear_interrupt(dsim, intmsk); _ Subject: Subject: video: exynos mipi dsi: Properly interpret the interrupt source flags Patches currently in -mm which might be from s.nawrocki@xxxxxxxxxxx are linux-next.patch video-exynos-mipi-dsi-do-not-use-deprecated-suspend-resume-callbacks.patch video-exynos-mipi-dsi-avoid-races-in-probe.patch video-exynos-mipi-dsi-properly-interpret-the-interrupt-source-flags.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html