The patch titled Subject: video: exynos mipi dsi: Avoid races in probe() has been removed from the -mm tree. Its filename was video-exynos-mipi-dsi-avoid-races-in-probe.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ From: Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx> Subject: video: exynos mipi dsi: Avoid races in probe() Make sure all resources are initialized before interrupt handler is registered. Pass full platform device name to request_irq() so it can be distinguished which device has requested an interrupt in cases there are multiple instances in the system. Also enable voltage regulators regardless of they have been enabled by bootloader or not, to make sure other drivers using same regulators don't disable them unexpectedly. 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.c | 26 ++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff -puN drivers/video/exynos/exynos_mipi_dsi.c~video-exynos-mipi-dsi-avoid-races-in-probe drivers/video/exynos/exynos_mipi_dsi.c --- a/drivers/video/exynos/exynos_mipi_dsi.c~video-exynos-mipi-dsi-avoid-races-in-probe +++ a/drivers/video/exynos/exynos_mipi_dsi.c @@ -415,27 +415,30 @@ static int exynos_mipi_dsi_probe(struct goto err_platform_get_irq; } + init_completion(&dsim_wr_comp); + init_completion(&dsim_rd_comp); + platform_set_drvdata(pdev, dsim); + ret = request_irq(dsim->irq, exynos_mipi_dsi_interrupt_handler, - IRQF_SHARED, pdev->name, dsim); + IRQF_SHARED, dev_name(&pdev->dev), dsim); if (ret != 0) { dev_err(&pdev->dev, "failed to request dsim irq\n"); ret = -EINVAL; goto err_bind; } - init_completion(&dsim_wr_comp); - init_completion(&dsim_rd_comp); - - /* enable interrupt */ + /* enable interrupts */ exynos_mipi_dsi_init_interrupt(dsim); /* initialize mipi-dsi client(lcd panel). */ if (dsim_ddi->dsim_lcd_drv && dsim_ddi->dsim_lcd_drv->probe) dsim_ddi->dsim_lcd_drv->probe(dsim_ddi->dsim_lcd_dev); - /* in case that mipi got enabled at bootloader. */ - if (dsim_pd->enabled) - goto out; + /* in case mipi-dsi has been enabled by bootloader */ + if (dsim_pd->enabled) { + exynos_mipi_regulator_enable(dsim); + goto done; + } /* lcd panel power on. */ if (dsim_ddi->dsim_lcd_drv && dsim_ddi->dsim_lcd_drv->power_on) @@ -455,12 +458,11 @@ static int exynos_mipi_dsi_probe(struct dsim->suspended = false; -out: +done: platform_set_drvdata(pdev, dsim); - dev_dbg(&pdev->dev, "mipi-dsi driver(%s mode) has been probed.\n", - (dsim_config->e_interface == DSIM_COMMAND) ? - "CPU" : "RGB"); + dev_dbg(&pdev->dev, "%s() completed sucessfuly (%s mode)\n", __func__, + dsim_config->e_interface == DSIM_COMMAND ? "CPU" : "RGB"); return 0; _ Patches currently in -mm which might be from s.nawrocki@xxxxxxxxxxx are origin.patch linux-next.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