summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Longerbeam <slongerbeam@gmail.com>2017-05-21 15:02:10 -0700
committerPhilipp Zabel <p.zabel@pengutronix.de>2017-06-08 08:57:20 +0200
commitadd1318723a0d7b1ec974d2d9ba309cc24bb298a (patch)
treea524f3d0fa6cf158fcd87cbfaa2e5dccec91befb
parentffb40733fe432b00fa12ff486364dcfe6d7f247c (diff)
downloadlinux-add1318723a0d7b1ec974d2d9ba309cc24bb298a.tar.gz
linux-add1318723a0d7b1ec974d2d9ba309cc24bb298a.tar.xz
gpu: ipu-v3: vdic: include AUTO field order bit in ipu_vdi_set_field_orderimx-drm-next-2017-06-08
The field order selection in VDIC_C register uses different bits depending on whether the VDIC is receiving from a CSI ("AUTO") or from memory ("MAN"). Since the VDIC cannot receive from both CSI and memory at the same time, set or clear both field order bits to cover both cases. Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
-rw-r--r--drivers/gpu/ipu-v3/ipu-vdi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-vdi.c b/drivers/gpu/ipu-v3/ipu-vdi.c
index f27bf5a12ebc..a66389366af7 100644
--- a/drivers/gpu/ipu-v3/ipu-vdi.c
+++ b/drivers/gpu/ipu-v3/ipu-vdi.c
@@ -88,9 +88,9 @@ void ipu_vdi_set_field_order(struct ipu_vdi *vdi, v4l2_std_id std, u32 field)
reg = ipu_vdi_read(vdi, VDI_C);
if (top_field_0)
- reg &= ~VDI_C_TOP_FIELD_MAN_1;
+ reg &= ~(VDI_C_TOP_FIELD_MAN_1 | VDI_C_TOP_FIELD_AUTO_1);
else
- reg |= VDI_C_TOP_FIELD_MAN_1;
+ reg |= VDI_C_TOP_FIELD_MAN_1 | VDI_C_TOP_FIELD_AUTO_1;
ipu_vdi_write(vdi, reg, VDI_C);
spin_unlock_irqrestore(&vdi->lock, flags);