diff --git a/drivers/video/fbdev/exynos/dpu_7885/decon_core.c b/drivers/video/fbdev/exynos/dpu_7885/decon_core.c index 1e0a8fb46..5dabb38a8 100644 --- a/drivers/video/fbdev/exynos/dpu_7885/decon_core.c +++ b/drivers/video/fbdev/exynos/dpu_7885/decon_core.c @@ -2715,7 +2715,7 @@ static int decon_create_update_thread(struct decon_device *decon, char *name) { INIT_LIST_HEAD(&decon->up.list); init_kthread_worker(&decon->up.worker); - decon->up.thread = kthread_run(kthread_worker_fn, + decon->up.thread = kthread_run_perf_critical(kthread_worker_fn, &decon->up.worker, name); if (IS_ERR(decon->up.thread)) { decon->up.thread = NULL; diff --git a/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c b/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c index 6061f9ea5..397808eea 100644 --- a/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c +++ b/drivers/video/fbdev/exynos/dpu_7885/decon_dsi.c @@ -111,8 +111,8 @@ int decon_register_irq(struct decon_device *decon) return -ENOENT; } - ret = devm_request_irq(dev, res->start, decon_irq_handler, 0, - pdev->name, decon); + ret = devm_request_irq(dev, res->start, decon_irq_handler, + IRQF_PERF_CRITICAL, pdev->name, decon); if (ret) { decon_err("failed to install FIFO irq\n"); return ret; @@ -127,7 +127,7 @@ int decon_register_irq(struct decon_device *decon) } ret = devm_request_irq(dev, res->start, decon_irq_handler, - 0, pdev->name, decon); + IRQF_PERF_CRITICAL, pdev->name, decon); if (ret) { decon_err("failed to install FRAME START irq\n"); return ret; @@ -141,7 +141,7 @@ int decon_register_irq(struct decon_device *decon) } ret = devm_request_irq(dev, res->start, decon_irq_handler, - 0, pdev->name, decon); + IRQF_PERF_CRITICAL, pdev->name, decon); if (ret) { decon_err("failed to install FRAME DONE irq\n"); return ret; @@ -155,7 +155,7 @@ int decon_register_irq(struct decon_device *decon) } ret = devm_request_irq(dev, res->start, decon_irq_handler, - 0, pdev->name, decon); + IRQF_PERF_CRITICAL, pdev->name, decon); if (ret) { decon_err("failed to install EXTRA irq\n"); return ret; @@ -329,7 +329,8 @@ int decon_register_ext_irq(struct decon_device *decon) decon_info("%s: gpio(%d)\n", __func__, decon->res.irq); ret = devm_request_irq(dev, decon->res.irq, decon_ext_irq_handler, - IRQF_TRIGGER_RISING, pdev->name, decon); + IRQF_TRIGGER_RISING | IRQF_PERF_CRITICAL, + pdev->name, decon); decon->eint_status = 1; @@ -387,7 +388,7 @@ int decon_create_vsync_thread(struct decon_device *decon) } sprintf(name, "decon%d-vsync", decon->id); - decon->vsync.thread = kthread_run(decon_vsync_thread, decon, name); + decon->vsync.thread = kthread_run_perf_critical(decon_vsync_thread, decon, name); if (IS_ERR_OR_NULL(decon->vsync.thread)) { decon_err("failed to run vsync thread\n"); decon->vsync.thread = NULL; diff --git a/drivers/video/fbdev/exynos/dpu_7885/dpp_drv.c b/drivers/video/fbdev/exynos/dpu_7885/dpp_drv.c index c05f93edb..690a5f62a 100644 --- a/drivers/video/fbdev/exynos/dpu_7885/dpp_drv.c +++ b/drivers/video/fbdev/exynos/dpu_7885/dpp_drv.c @@ -1067,8 +1067,8 @@ static int dpp_init_resources(struct dpp_device *dpp, struct platform_device *pd dpp_info("irq no = %lld\n", res->start); dpp->res.dma_irq = res->start; - ret = devm_request_irq(dpp->dev, res->start, dma_irq_handler, 0, - pdev->name, dpp); + ret = devm_request_irq(dpp->dev, res->start, dma_irq_handler, + IRQF_PERF_CRITICAL, pdev->name, dpp); if (ret) { dpp_err("failed to install DPU DMA irq\n"); return -EINVAL; @@ -1084,8 +1084,8 @@ static int dpp_init_resources(struct dpp_device *dpp, struct platform_device *pd dpp_info("dpp irq no = %lld\n", res->start); dpp->res.irq = res->start; - ret = devm_request_irq(dpp->dev, res->start, dpp_irq_handler, 0, - pdev->name, dpp); + ret = devm_request_irq(dpp->dev, res->start, dpp_irq_handler, + IRQF_PERF_CRITICAL, pdev->name, dpp); if (ret) { dpp_err("failed to install DPP irq\n"); return -EINVAL; diff --git a/drivers/video/fbdev/exynos/dpu_7885/dsim_drv.c b/drivers/video/fbdev/exynos/dpu_7885/dsim_drv.c index 3983333bf..7eb86b98f 100644 --- a/drivers/video/fbdev/exynos/dpu_7885/dsim_drv.c +++ b/drivers/video/fbdev/exynos/dpu_7885/dsim_drv.c @@ -1378,7 +1378,8 @@ static int dsim_init_resources(struct dsim_device *dsim, struct platform_device dsim->res.irq = res->start; dsim_info("dsim irq (%d)\n", (u32)dsim->res.irq); ret = devm_request_irq(dsim->dev, res->start, - dsim_irq_handler, 0, pdev->name, dsim); + dsim_irq_handler, IRQF_PERF_CRITICAL, + pdev->name, dsim); if (ret) { dsim_err("failed to install DSIM irq\n"); return -EINVAL;