[PATCH 3/3] drm/imx: ipuv3-plane: Access old u/vbo properly in ->atomic_check for YU12/YV12
Philipp Zabel
p.zabel at pengutronix.de
Tue Oct 18 08:32:17 UTC 2016
Am Dienstag, den 18.10.2016, 11:39 +0800 schrieb Liu Ying:
[...]
> >> @@ -359,7 +359,7 @@ static int ipu_plane_atomic_check(struct drm_plane *plane,
> >> if ((ubo > 0xfffff8) || (vbo > 0xfffff8))
> >> return -EINVAL;
> >>
> >> - if (old_fb) {
> >> + if (old_fb && old_fb->pixel_format == fb->pixel_format) {
> >> old_ubo = drm_plane_state_to_ubo(old_state);
> >> old_vbo = drm_plane_state_to_vbo(old_state);
> >> if (ubo != old_ubo || vbo != old_vbo)
> >
> > thank you for the patches. I have applied patches 1 and 2, but with this
> > change UBO/VBO changes are ignored when switching from YU12 to YV12.
>
> Good catch. Does this change look okay, then?
>
> - if (old_fb) {
> + if (old_fb &&
> + (old_fb->pixel_format == DRM_FORMAT_YUV420 ||
> + old_fb->pixel_format == DRM_FORMAT_YVU420)) {
>
> >
> > Shouldn't we rather set crtc_state->mode_changed = true if either
> > (fb->pixel_format != old_fb->pixel_format) for any pixel format or
> > (ubo != old_ubo || vbo != old_vbo) for YUV formats, instead of returning
> > -EINVAL?
>
> I thought about this and determined that this could be done
> in an additional patch later.
> It would be good if we change as little as we can in a patch
> with stable Cced.
Alright, the change you suggest above should work then.
regards
Philipp
More information about the dri-devel
mailing list