This patch passes interlaced field information to frmbuf DMA
based on framebuffer flag.
Signed-off-by: Satish Kumar Nagireddy <satish.nagireddy.nagireddy@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* @drm: core drm object
* @fmt: drm color format
* @vtc_bridge: vtc_bridge structure
+ * @fid: field id
*/
struct xlnx_pl_disp {
struct device *dev;
struct drm_device *drm;
u32 fmt;
struct xlnx_bridge *vtc_bridge;
+ u32 fid;
};
/*
desc->callback = xlnx_pl_disp->callback;
desc->callback_param = xlnx_pl_disp->callback_param;
+ if (plane->state->fb->flags == DRM_MODE_FB_ALTERNATE_TOP ||
+ plane->state->fb->flags == DRM_MODE_FB_ALTERNATE_BOTTOM) {
+ if (plane->state->fb->flags == DRM_MODE_FB_ALTERNATE_TOP)
+ xlnx_pl_disp->fid = 1;
+ else
+ xlnx_pl_disp->fid = 0;
+
+ xilinx_xdma_set_fid(xlnx_dma_chan->dma_chan, desc,
+ xlnx_pl_disp->fid);
+ }
+
dmaengine_submit(desc);
dma_async_issue_pending(xlnx_dma_chan->dma_chan);
}