1. 15 8月, 2016 31 次提交
  2. 12 8月, 2016 8 次提交
  3. 11 8月, 2016 1 次提交
    • V
      drm/i915: Deal with NV12 CbCr plane AUX surface on SKL+ · 8d970654
      Ville Syrjälä 提交于
      With NV12 we have two color planes to deal with so we must compute the
      surface and x/y offsets for the second plane as well.
      
      What makes this a bit nasty is that the hardware expects the surface
      offset to be specified as a distance from the main surface offset.
      What's worse, the distance must be non-negative (no neat wraparound or
      anything). So we must make sure that the main surface offset is always
      less or equal to the AUX surface offset. We do that by computing the AUX
      offset first and the main surface offset second. If the main surface
      offset ends up being above the AUX offset, we just push it down as far
      as is required while still maintaining the required alignment etc.
      
      Fortunately the AUX offset only reuqires 4K alignment, so we don't need
      to do any of the backwards searching for an acceptable offset that we
      must do for the main surface. And X tiled + NV12 isn't a supported
      combination anyway.
      
      Note that this just computes aux surface offsets, we do not yet program
      them into the actual hardware registers, and hence we can't yet expose
      NV12.
      
      v2: Rebase due to drm_plane_state src/dst rects
          s/TODO.../something else/ in the commit message/ (Daniel)
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1470821001-25272-12-git-send-email-ville.syrjala@linux.intel.comReviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8d970654