mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
drm: xlnx: zynqmp: Add support for Y8 and XYYY2101010
Add support for Y8 and XYYY2101010 formats. We also need to add new csc matrices for these y-only formats. Reviewed-by: Vishal Sagar <vishal.sagar@amd.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://patch.msgid.link/20260423-xilinx-formats-v10-9-c690c2b8ea89@ideasonboard.com Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
This commit is contained in:
parent
33822407c4
commit
ed920c2abb
|
|
@ -307,6 +307,16 @@ static const struct zynqmp_disp_format avbuf_vid_fmts[] = {
|
|||
.buf_fmt = ZYNQMP_DISP_AV_BUF_FMT_NL_VID_YV16CI_10,
|
||||
.swap = false,
|
||||
.sf = scaling_factors_101010,
|
||||
}, {
|
||||
.drm_fmt = DRM_FORMAT_Y8,
|
||||
.buf_fmt = ZYNQMP_DISP_AV_BUF_FMT_NL_VID_MONO,
|
||||
.swap = false,
|
||||
.sf = scaling_factors_888,
|
||||
}, {
|
||||
.drm_fmt = DRM_FORMAT_XYYY2101010,
|
||||
.buf_fmt = ZYNQMP_DISP_AV_BUF_FMT_NL_VID_YONLY_10,
|
||||
.swap = false,
|
||||
.sf = scaling_factors_101010,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
@ -697,6 +707,17 @@ static const u32 csc_sdtv_to_rgb_offsets[] = {
|
|||
0x0, 0x1800, 0x1800
|
||||
};
|
||||
|
||||
/* In Y-only mode the single Y channel is on the third column */
|
||||
static const u16 csc_sdtv_to_rgb_yonly_matrix[] = {
|
||||
0x0, 0x0, 0x1000,
|
||||
0x0, 0x0, 0x1000,
|
||||
0x0, 0x0, 0x1000,
|
||||
};
|
||||
|
||||
static const u32 csc_sdtv_to_rgb_yonly_offsets[] = {
|
||||
0x0, 0x0, 0x0
|
||||
};
|
||||
|
||||
/**
|
||||
* zynqmp_disp_blend_set_output_format - Set the output format of the blender
|
||||
* @disp: Display controller
|
||||
|
|
@ -846,7 +867,11 @@ static void zynqmp_disp_blend_layer_enable(struct zynqmp_disp *disp,
|
|||
ZYNQMP_DISP_V_BLEND_LAYER_CONTROL(layer->id),
|
||||
val);
|
||||
|
||||
if (layer->drm_fmt->is_yuv) {
|
||||
if (layer->drm_fmt->format == DRM_FORMAT_Y8 ||
|
||||
layer->drm_fmt->format == DRM_FORMAT_XYYY2101010) {
|
||||
coeffs = csc_sdtv_to_rgb_yonly_matrix;
|
||||
offsets = csc_sdtv_to_rgb_yonly_offsets;
|
||||
} else if (layer->drm_fmt->is_yuv) {
|
||||
coeffs = csc_sdtv_to_rgb_matrix;
|
||||
offsets = csc_sdtv_to_rgb_offsets;
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user