[Intel-gfx] [PATCH 15/15] drm/i915: Add 90/270 rotation for NV12 format.
Ville Syrjälä
ville.syrjala at linux.intel.com
Sat Sep 5 07:48:34 PDT 2015
On Sat, Sep 05, 2015 at 01:38:14AM +0000, Konduru, Chandra wrote:
> > > /* Adjust (macro)pixel boundary */
> > > if (fb && intel_format_is_yuv(fb->pixel_format)) {
> > > - to_intel_plane_state(plane_state)->src.x1 &= ~0x10000;
> > > - to_intel_plane_state(plane_state)->src.x2 &= ~0x10000;
> > > + if (intel_rotation_90_or_270(plane_state->rotation)) {
> > > + to_intel_plane_state(plane_state)->src.y1 &=
> > ~0x10000;
> > > + to_intel_plane_state(plane_state)->src.y2 &=
> > ~0x10000;
> > > + } else {
> > > + to_intel_plane_state(plane_state)->src.x1 &=
> > ~0x10000;
> > > + to_intel_plane_state(plane_state)->src.x2 &=
> > ~0x10000;
> > > + }
> >
> > IIRC we concluded (with Art's help) that this is not needed. We always
> > want to align in src.x.
>
> Initial code that I added was making both X and Y offsets as even
> when 90/270 as per bspec at that time.
>
> But later Art update is as below:
> >> " the X offset must always be even for YUV422+NV12, and
> >> the Y offset must be even when rotated 90/270 degrees."
>
> So, above code change is needed.
That's the orignal text, later update from Art was:
"They don't both have to be even when roated. The text should say " the
X offset must be even for YUV422+NV12 ***when not rotated 90/270***, and
the Y offset must be even when rotated 90/270 degrees.""
And the spec has been updated since to include the same information. For
us we just need to align src.x? since that's what gets programmed into
the X offset for 0/180, and into the Y offset for 90/270. So the current
code is fine as is.
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list