summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
71d339b)
Adding drm sdi vblank support in xilinx crtc
Signed-off-by: Saurabh Sengar <saurabhs@xilinx.com>
Acked-by: Hyun Kwon <hyun.kwon@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
#include "xilinx_cresample.h"
#include "xilinx_rgb2yuv.h"
#include "xilinx_vtc.h"
#include "xilinx_cresample.h"
#include "xilinx_rgb2yuv.h"
#include "xilinx_vtc.h"
+#include "xilinx_drm_sdi.h"
struct xilinx_drm_crtc {
struct drm_crtc base;
struct xilinx_drm_crtc {
struct drm_crtc base;
unsigned int alpha;
struct drm_pending_vblank_event *event;
struct xilinx_drm_dp_sub *dp_sub;
unsigned int alpha;
struct drm_pending_vblank_event *event;
struct xilinx_drm_dp_sub *dp_sub;
+ struct xilinx_sdi *sdi;
};
#define to_xilinx_crtc(x) container_of(x, struct xilinx_drm_crtc, base)
};
#define to_xilinx_crtc(x) container_of(x, struct xilinx_drm_crtc, base)
xilinx_drm_dp_sub_enable_vblank(crtc->dp_sub,
xilinx_drm_crtc_vblank_handler,
base_crtc);
xilinx_drm_dp_sub_enable_vblank(crtc->dp_sub,
xilinx_drm_crtc_vblank_handler,
base_crtc);
+ if (crtc->sdi)
+ xilinx_drm_sdi_enable_vblank(crtc->sdi,
+ xilinx_drm_crtc_vblank_handler,
+ base_crtc);
}
/* disable vblank interrupt */
}
/* disable vblank interrupt */
xilinx_drm_dp_sub_disable_vblank(crtc->dp_sub);
if (crtc->vtc)
xilinx_vtc_disable_vblank_intr(crtc->vtc);
xilinx_drm_dp_sub_disable_vblank(crtc->dp_sub);
if (crtc->vtc)
xilinx_vtc_disable_vblank_intr(crtc->vtc);
+ if (crtc->sdi)
+ xilinx_drm_sdi_disable_vblank(crtc->sdi);
+ crtc->sdi = xilinx_drm_sdi_of_get(drm->dev->of_node);
+ if (IS_ERR(crtc->sdi)) {
+ ret = PTR_ERR(crtc->sdi);
+ if (ret != -EPROBE_DEFER)
+ DRM_ERROR("failed to get a sdi\n");
+ goto err_pixel_clk;
+ }
crtc->dpms = DRM_MODE_DPMS_OFF;
/* initialize drm crtc */
crtc->dpms = DRM_MODE_DPMS_OFF;
/* initialize drm crtc */