|
@@ -949,6 +949,13 @@ static void fimd_trigger(struct device *dev)
|
|
|
void *timing_base = ctx->regs + driver_data->timing_base;
|
|
|
u32 reg;
|
|
|
|
|
|
+ /*
|
|
|
+ * Skips to trigger if in triggering state, because multiple triggering
|
|
|
+ * requests can cause panel reset.
|
|
|
+ */
|
|
|
+ if (atomic_read(&ctx->triggering))
|
|
|
+ return;
|
|
|
+
|
|
|
atomic_set(&ctx->triggering, 1);
|
|
|
|
|
|
reg = readl(ctx->regs + VIDINTCON0);
|
|
@@ -969,13 +976,6 @@ static void fimd_te_handler(struct exynos_drm_manager *mgr)
|
|
|
if (ctx->pipe < 0 || !ctx->drm_dev)
|
|
|
return;
|
|
|
|
|
|
- /*
|
|
|
- * Skips to trigger if in triggering state, because multiple triggering
|
|
|
- * requests can cause panel reset.
|
|
|
- */
|
|
|
- if (atomic_read(&ctx->triggering))
|
|
|
- return;
|
|
|
-
|
|
|
/*
|
|
|
* If there is a page flip request, triggers and handles the page flip
|
|
|
* event so that current fb can be updated into panel GRAM.
|