Hi Tomi, Thank you for the patch. On Wednesday 17 May 2017 10:56:41 Tomi Valkeinen wrote: > Change dispc driver to use the DRM_REFLECT flags instead of a mirror > boolean. Patch 3/7 has /* must use FIR for YUV422 if rotated */ if (rotation != DRM_ROTATE_0) scale_x = scale_y = true; Shouldn't it be (rotation & DRM_ROTATE_MASK) != DRM_ROTATE_0 now ? Apart from that, Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> > --- > drivers/gpu/drm/omapdrm/dss/dispc.c | 24 ++++++++++-------------- > drivers/gpu/drm/omapdrm/dss/omapdss.h | 2 -- > drivers/gpu/drm/omapdrm/omap_plane.c | 1 - > 3 files changed, 10 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c > b/drivers/gpu/drm/omapdrm/dss/dispc.c index 612170a96bdd..a25db6e25165 > 100644 > --- a/drivers/gpu/drm/omapdrm/dss/dispc.c > +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c > @@ -1804,15 +1804,14 @@ static void dispc_ovl_set_scaling(enum omap_plane_id > plane, } > > static void dispc_ovl_set_rotation_attrs(enum omap_plane_id plane, u8 > rotation, - enum omap_dss_rotation_type rotation_type, > - bool mirroring, u32 fourcc) > + enum omap_dss_rotation_type rotation_type, u32 fourcc) > { > bool row_repeat = false; > int vidrot = 0; > > if (fourcc == DRM_FORMAT_YUYV || fourcc == DRM_FORMAT_UYVY) { > > - if (mirroring) { > + if (rotation & DRM_REFLECT_X) { > switch (rotation & DRM_ROTATE_MASK) { > case DRM_ROTATE_0: > vidrot = 2; > @@ -2367,7 +2366,7 @@ static int dispc_ovl_setup_common(enum omap_plane_id > plane, enum omap_overlay_caps caps, u32 paddr, u32 p_uv_addr, > u16 screen_width, int pos_x, int pos_y, u16 width, u16 height, > u16 out_width, u16 out_height, u32 fourcc, > - u8 rotation, bool mirror, u8 zorder, u8 pre_mult_alpha, > + u8 rotation, u8 zorder, u8 pre_mult_alpha, > u8 global_alpha, enum omap_dss_rotation_type rotation_type, > bool replication, const struct videomode *vm, > bool mem_to_mem) > @@ -2515,8 +2514,7 @@ static int dispc_ovl_setup_common(enum omap_plane_id > plane, dispc_ovl_set_vid_color_conv(plane, cconv); > } > > - dispc_ovl_set_rotation_attrs(plane, rotation, rotation_type, mirror, > - fourcc); > + dispc_ovl_set_rotation_attrs(plane, rotation, rotation_type, fourcc); > > dispc_ovl_set_zorder(plane, caps, zorder); > dispc_ovl_set_pre_mult_alpha(plane, caps, pre_mult_alpha); > @@ -2537,17 +2535,17 @@ static int dispc_ovl_setup(enum omap_plane_id plane, > const bool replication = true; > > DSSDBG("dispc_ovl_setup %d, pa %pad, pa_uv %pad, sw %d, %d,%d, %dx%d - >" > - " %dx%d, cmode %x, rot %d, mir %d, chan %d repl %d\n", > + " %dx%d, cmode %x, rot %d, chan %d repl %d\n", > plane, &oi->paddr, &oi->p_uv_addr, oi->screen_width, oi- >pos_x, > oi->pos_y, oi->width, oi->height, oi->out_width, oi- >out_height, > - oi->fourcc, oi->rotation, oi->mirror, channel, replication); > + oi->fourcc, oi->rotation, channel, replication); > > dispc_ovl_set_channel_out(plane, channel); > > r = dispc_ovl_setup_common(plane, caps, oi->paddr, oi->p_uv_addr, > oi->screen_width, oi->pos_x, oi->pos_y, oi->width, oi->height, > oi->out_width, oi->out_height, oi->fourcc, oi->rotation, > - oi->mirror, oi->zorder, oi->pre_mult_alpha, oi->global_alpha, > + oi->zorder, oi->pre_mult_alpha, oi->global_alpha, > oi->rotation_type, replication, vm, mem_to_mem); > > return r; > @@ -2569,13 +2567,12 @@ int dispc_wb_setup(const struct > omap_dss_writeback_info *wi, OMAP_DSS_OVL_CAP_SCALE | > OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA; > > DSSDBG("dispc_wb_setup, pa %x, pa_uv %x, %d,%d -> %dx%d, cmode %x, " > - "rot %d, mir %d\n", wi->paddr, wi->p_uv_addr, in_width, > - in_height, wi->width, wi->height, wi->fourcc, wi->rotation, > - wi->mirror); > + "rot %d\n", wi->paddr, wi->p_uv_addr, in_width, > + in_height, wi->width, wi->height, wi->fourcc, wi->rotation); > > r = dispc_ovl_setup_common(plane, caps, wi->paddr, wi->p_uv_addr, > wi->buf_width, pos_x, pos_y, in_width, in_height, wi->width, > - wi->height, wi->fourcc, wi->rotation, wi->mirror, zorder, > + wi->height, wi->fourcc, wi->rotation, zorder, > wi->pre_mult_alpha, global_alpha, wi->rotation_type, > replication, vm, mem_to_mem); > > @@ -3916,7 +3913,6 @@ static const struct dispc_errata_i734_data { > .fourcc = DRM_FORMAT_XRGB8888, > .rotation = DRM_ROTATE_0, > .rotation_type = OMAP_DSS_ROT_NONE, > - .mirror = 0, > .pos_x = 0, .pos_y = 0, > .out_width = 0, .out_height = 0, > .global_alpha = 0xff, > diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h > b/drivers/gpu/drm/omapdrm/dss/omapdss.h index daf792496882..e9d6b72eb69e > 100644 > --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h > +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h > @@ -259,7 +259,6 @@ struct omap_overlay_info { > u32 fourcc; > u8 rotation; > enum omap_dss_rotation_type rotation_type; > - bool mirror; > > u16 pos_x; > u16 pos_y; > @@ -307,7 +306,6 @@ struct omap_dss_writeback_info { > u32 fourcc; > u8 rotation; > enum omap_dss_rotation_type rotation_type; > - bool mirror; > u8 pre_mult_alpha; > }; > > diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c > b/drivers/gpu/drm/omapdrm/omap_plane.c index 0ea97aa15c19..9fe97c71763f > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_plane.c > +++ b/drivers/gpu/drm/omapdrm/omap_plane.c > @@ -67,7 +67,6 @@ static void omap_plane_atomic_update(struct drm_plane > *plane, info.rotation_type = OMAP_DSS_ROT_NONE; > info.rotation = DRM_ROTATE_0; > info.global_alpha = 0xff; > - info.mirror = 0; > info.zorder = state->zpos; > > /* update scanout: */ -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel