1. 03 9月, 2014 1 次提交
    • S
      drm/i915: Add 180 degree primary plane rotation support · 48404c1e
      Sonika Jindal 提交于
      Primary planes support 180 degree rotation. Expose the feature
      through rotation drm property.
      
      v2: Calculating linear/tiled offsets based on pipe source width and
      height. Added 180 degree rotation support in ironlake_update_plane.
      
      v3: Checking if CRTC is active before issueing update_plane. Added
      wait for vblank to make sure we dont overtake page flips. Disabling
      FBC since it does not work with rotated planes.
      
      v4: Updated rotation checks for pending flips, fbc disable. Creating
      rotation property only for Gen4 onwards. Property resetting as part
      of lastclose.
      
      v5: Resetting property in i915_driver_lastclose properly for planes
      and crtcs. Fixed linear offset calculation that was off by 1 w.r.t
      width in i9xx_update_plane and ironlake_update_plane. Removed tab
      based indentation and unnecessary braces in intel_crtc_set_property
      and intel_update_fbc. FBC and flip related checks should be done only
      for valid crtcs.
      
      v6: Minor nits in FBC disable checks for comments in intel_crtc_set_property
      and positioning the disable code in intel_update_fbc.
      
      v7: In case rotation property on inactive crtc is updated, we return
      successfully printing debug log as crtc is inactive and only property change
      is preserved.
      
      v8: update_plane is changed to update_primary_plane, crtc->fb is changed to
      crtc->primary->fb  and return value of update_primary_plane is ignored.
      
      v9: added rotation property to primary plane instead of crtc. Removing reset
      of rotation property from lastclose. rotation_property is moved to
      drm_mode_config, so drm layer will take care of resetting. Adding updation of
      fbc when rotation is set to 0. Allowing rotation only if value is
      different than old one.
      
      v10: Calling intel_primary_plane_setplane instead of update_primary_plane in
      set_property(Daniel).
      
      v11: Using same set_property function for both primary and sprite, Adding
      primary plane specific code in the same function (Matt).
      
      v12: Removing disabling/ enabling of fbc from set_property because it is done
      from intel_pipe_set_base. Other formatting
      
      v13: we need to call disable_fbc before changing the rotation to 180,
      disable_fbc from intel_pipe_set_base gets called very late, that will
      be used to re-enable fbc if rotation is set to 0 (Ville).
      
      Testcase: igt/kms_rotation_crc
      Signed-off-by: NUma Shankar <uma.shankar@intel.com>
      Signed-off-by: NSagar Kamble <sagar.a.kamble@intel.com>
      Signed-off-by: NSonika Jindal <sonika.jindal@intel.com>
      [danvet: Add FIXME to explain why we need the open-coded update_fbc
      hunk to disable fbc when rotated 180 degree. And make checkpatch
      happier.]
      Acked-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      48404c1e
  2. 11 8月, 2014 1 次提交
  3. 08 8月, 2014 17 次提交
  4. 07 8月, 2014 4 次提交
  5. 24 7月, 2014 1 次提交
  6. 23 7月, 2014 6 次提交
  7. 12 7月, 2014 6 次提交
  8. 11 7月, 2014 3 次提交
  9. 09 7月, 2014 1 次提交
    • M
      drm/i915: Make use of intel_fb_obj() (v2) · 2ff8fde1
      Matt Roper 提交于
      This should hopefully simplify the display code slightly and also
      solves at least one mistake in intel_pipe_set_base() where
      to_intel_framebuffer(fb)->obj is referenced during local variable
      initialization, before 'if (!fb)' gets checked.
      
      Potential uses of this macro were identified via the following
      Coccinelle patch:
      
              @@
              expression E;
              @@
              * to_intel_framebuffer(E)->obj
      
              @@
              expression E;
              identifier I;
              @@
                I = to_intel_framebuffer(E);
                ...
              * I->obj
      
      v2: Rewrite some NULL tests in terms of the obj rather than the fb.
          Also add a WARN() if trying to pageflip with a disabled primary
          plane.  [Suggested by Chris Wilson]
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2ff8fde1