summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
authorRobby Cai <robby.cai@nxp.com>2017-02-28 21:53:30 +0800
committerRobby Cai <robby.cai@nxp.com>2017-04-18 16:32:55 +0800
commitebcdab9fd127e654568a20f6178818132b625efe (patch)
tree8472db55bd6eac291d3b2550d59ee504b528e34d /drivers/dma
parent340405e776163de60ec6affe7a1303dfa969cd48 (diff)
MLK-14369 epdc: sync LUT status to PXP before enable collision detection
on imx7d and imx6ull/imx6sll, the collision detection logic is implemented in PXP WFE (A on imx7d, or B on imx6ull/imx6sll) instead of the logic implemented on EPDC on previous SoCs (like imx6sl/imx6dl). The driver need read the LUT status and send this information to PXP WFE (A on imx7d, or B on imx6ull/imx6sll) engine, so that PXP WFE engine can detect if there is an active LUT assigned to the pixels affected by current update. Without this patch, there could possibly be some false collision report due to the out-of-sync. The patch intends to fix it. Signed-off-by: Robby Cai <robby.cai@nxp.com> (cherry picked from commit 6c0f529a7bd9f11716579eb30e4e038d77e358f2)
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/pxp/pxp_dma_v3.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/dma/pxp/pxp_dma_v3.c b/drivers/dma/pxp/pxp_dma_v3.c
index dc17d25f996f..b2e68e69e551 100644
--- a/drivers/dma/pxp/pxp_dma_v3.c
+++ b/drivers/dma/pxp/pxp_dma_v3.c
@@ -1,6 +1,8 @@
/*
* Copyright (C) 2010-2016 Freescale Semiconductor, Inc.
*
+ * Copyright 2017 NXP
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -1263,6 +1265,8 @@ static int pxp_config(struct pxps *pxp, struct pxp_channel *pxp_chan)
if ((proc_data->engine_enable & PXP_ENABLE_WFE_A) == PXP_ENABLE_WFE_A)
{
+ pxp_luts_deactivate(pxp, proc_data->lut_sels);
+
if (proc_data->lut_cleanup == 0) {
/* We should enable histogram in standard mode
* in wfe_a processing for waveform mode selection
@@ -1282,8 +1286,6 @@ static int pxp_config(struct pxps *pxp, struct pxp_channel *pxp_chan)
pxp->devdata->pxp_wfe_a_configure(pxp);
if (pxp->devdata && pxp->devdata->pxp_wfe_a_process)
pxp->devdata->pxp_wfe_a_process(pxp);
-
- pxp_luts_deactivate(pxp, proc_data->lut_sels);
}
if ((proc_data->engine_enable & PXP_ENABLE_WFE_B) == PXP_ENABLE_WFE_B) {