summaryrefslogtreecommitdiff
path: root/drivers/gpu/imx
diff options
context:
space:
mode:
authorLiu Ying <victor.liu@nxp.com>2018-09-19 13:10:40 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:34:09 +0800
commit7abf69414b166b46c121e071135b7c9fc2c6172c (patch)
tree75afba1624b1bba0295d5b8f74000640a1cb1611 /drivers/gpu/imx
parentfa70d45bdb779fac0adbd93d3563abc9fcfc4626 (diff)
MLK-19622 gpu: imx: dpu: Improve FrameGen kick and TCON kachuck signal
This patch improves FrameGen kick and TCON kachuck signal configurations as recommended by SoC designer. This should achieve more stability and safety to set up a display pipeline and load prefetch engine shadow registers. Signed-off-by: Liu Ying <victor.liu@nxp.com>
Diffstat (limited to 'drivers/gpu/imx')
-rw-r--r--drivers/gpu/imx/dpu/dpu-framegen.c6
-rw-r--r--drivers/gpu/imx/dpu/dpu-tcon.c14
2 files changed, 9 insertions, 11 deletions
diff --git a/drivers/gpu/imx/dpu/dpu-framegen.c b/drivers/gpu/imx/dpu/dpu-framegen.c
index 93a1b38b0524..e39d5d8cf839 100644
--- a/drivers/gpu/imx/dpu/dpu-framegen.c
+++ b/drivers/gpu/imx/dpu/dpu-framegen.c
@@ -347,15 +347,15 @@ framegen_cfg_videomode(struct dpu_framegen *fg,
dpu_fg_write(fg, VACT(vact) | VTOTAL(vtotal), VTCFG1);
dpu_fg_write(fg, VSYNC(vsync) | VSBP(vsbp) | VSEN, VTCFG2);
- kick_col = hact;
+ kick_col = hact + 1;
kick_row = vact;
/*
* FrameGen as slave needs to be kicked later for
- * more than 64 pixels comparing to the master.
+ * one line comparing to the master.
*/
if (side_by_side && framegen_is_slave(fg) &&
devtype->has_syncmode_fixup)
- kick_col += 65;
+ kick_row++;
/* pkickconfig */
dpu_fg_write(fg, COL(kick_col) | ROW(kick_row) | EN, PKICKCONFIG);
diff --git a/drivers/gpu/imx/dpu/dpu-tcon.c b/drivers/gpu/imx/dpu/dpu-tcon.c
index a4ba1e702d50..0bb8f62bbadf 100644
--- a/drivers/gpu/imx/dpu/dpu-tcon.c
+++ b/drivers/gpu/imx/dpu/dpu-tcon.c
@@ -194,20 +194,18 @@ void tcon_cfg_videomode(struct dpu_tcon *tcon,
dpu_tcon_write(tcon, 0x8, SMXFCTTABLE(2));
/* dsp_control[3]: kachuck */
- y = m->vdisplay;
+ y = m->vdisplay + 1;
/*
* If sync mode fixup is present, the kachuck signal from slave tcon
- * should be two lines later than the one from master tcon.
+ * should be one line later than the one from master tcon.
*/
- if (side_by_side && tcon_is_slave(tcon) &&
- devtype->has_syncmode_fixup) {
+ if (side_by_side && tcon_is_slave(tcon) && devtype->has_syncmode_fixup)
y++;
- y++;
- }
- dpu_tcon_write(tcon, X(0xa) | Y(y), SPGPOSON(4));
+
+ dpu_tcon_write(tcon, X(0x0) | Y(y), SPGPOSON(4));
dpu_tcon_write(tcon, 0x0, SPGMASKON(4));
- dpu_tcon_write(tcon, X(0x2a) | Y(y), SPGPOSOFF(4));
+ dpu_tcon_write(tcon, X(0x20) | Y(y), SPGPOSOFF(4));
dpu_tcon_write(tcon, 0x0, SPGMASKOFF(4));
dpu_tcon_write(tcon, 0x6, SMXSIGS(3));