1. 22 6月, 2015 1 次提交
  2. 16 6月, 2015 1 次提交
    • V
      drm/i915: Actually respect DSPSURF alignment restrictions · 4e9a86b6
      Ville Syrjälä 提交于
      Currently intel_gen4_compute_page_offset() simply picks the closest
      page boundary below the linear offset. That however may not be suitably
      aligned to satisfy any hardware specific restrictions. So let's make
      sure the page boundary we choose is properly aligned.
      
      Also to play it a bit safer lets split the remaining linear offset into
      x and y values instead of just x. This should make no difference for
      most platforms since we convert the x and y offsets back into a linear
      offset before feeding them to the hardware. HSW+ are different however
      and use x and y offsets even with linear buffers, so they might have
      trouble if either the x or y get too big.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4e9a86b6
  3. 15 6月, 2015 1 次提交
  4. 28 5月, 2015 1 次提交
    • V
      drm/i915: Kill intel_flush_primary_plane() · b12ce1d8
      Ville Syrjälä 提交于
      The primary plane frobbing was removed from the sprite code in
       commit ecce87ea
       Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
       Date:   Tue Apr 21 17:12:50 2015 +0300
      
          drm/i915: Remove implicitly disabling primary plane for now
      
      but the intel_flush_primary_plane() calls were left behind. Replace them
      with straight forward POSTING_READ() of the sprite surface address
      register.
      
      The other user of intel_flush_primary_plane() is g4x_disable_trickle_feed()
      where we can just inline the steps directly.
      
      This allows intel_flush_primary_plane() to be killed off.
      
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b12ce1d8
  5. 22 5月, 2015 1 次提交
  6. 20 5月, 2015 2 次提交
  7. 08 5月, 2015 5 次提交
  8. 13 4月, 2015 3 次提交
  9. 10 4月, 2015 2 次提交
    • S
      drm/i915/skl: Support for 90/270 rotation · 3b7a5119
      Sonika Jindal 提交于
      v2: Moving creation of property in a function, checking for 90/270
      rotation simultaneously (Chris)
      Letting primary plane to be positioned
      v3: Adding if/else for 90/270 and rest params programming, adding check for
      pixel_format, some cleanup (review comments)
      v4: Adding right pixel_formats, using src_* params instead of crtc_* for offset
      and size programming (Ville)
      v5: Rebased on -nightly and Tvrtko's series for gtt remapping.
      v6: Rebased on -nightly (Tvrtko's series merged)
      v7: Moving pixel_format check to intel_atomic_plane_check (Matt)
      Signed-off-by: NSonika Jindal <sonika.jindal@intel.com>
      Reviewed-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3b7a5119
    • M
      drm/i915: Switch to full atomic helpers for plane updates/disable, take two · 70a101f8
      Matt Roper 提交于
      Switch from our plane update/disable entrypoints to use the full atomic
      helpers (which generate a top-level atomic transaction) rather than the
      transitional helpers (which only create/manipulate orphaned plane states
      independent of a top-level transaction).  Various upcoming work (SKL
      scalers, atomic watermarks, etc.) requires a full atomic transaction to
      behave properly/cleanly.
      
      Last time we tried this, we had to back out the change because we still
      call the drm_plane vfuncs directly from within our legacy modesetting
      code.  This potentially results in nested atomic transactions, locking
      collisions, and other failures.  To avoid that problem again, we
      sidestep the issue by calling the transitional helpers directly (rather
      than through a vfunc) when we're nested inside of other legacy
      modesetting code.  However this does allow legacy SetPlane() ioctl's to
      process an entire drm_atomic_state transaction, which is important for
      upcoming patches.
      
      Cc: Chandra Konduru <chandra.konduru@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      70a101f8
  10. 02 4月, 2015 1 次提交
  11. 27 3月, 2015 1 次提交
  12. 23 3月, 2015 2 次提交
  13. 20 3月, 2015 5 次提交
  14. 18 3月, 2015 1 次提交
  15. 28 2月, 2015 3 次提交
  16. 23 2月, 2015 1 次提交
  17. 14 2月, 2015 2 次提交
    • T
      drm/i915/skl: Use fb modifiers for sprites · 66ebf567
      Tvrtko Ursulin 提交于
      While at it just outright remove the tiling check in
      intel_check_sprite_plane because it's impossible: We only allow
      untiled and X-tiled. This essentially reverts
      
      commit 94c6419e
      Author: Damien Lespiau <damien.lespiau@intel.com>
      Date:   Mon Oct 29 15:14:51 2012 +0000
      
          drm/i915: Error out when trying to set a y-tiled as a sprite
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      [danvet: Drop the hunk in check_sprite, it's impossible.]
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      66ebf567
    • P
      drm/i915: change dev_priv->fbc.plane to dev_priv->fbc.crtc · e35fef21
      Paulo Zanoni 提交于
      Since the mapping from CRTCs to planes is fixed, looking at the CRTC
      is essentially the same as looking at the plane. Also, the next
      patches wil start using the frontbuffer_bits macros, and they take the
      pipe as the parameter instead of the plane, and this could differ on
      gens 2 and 3.
      
      Another nice thing is that we don't risk accidentally initializing
      things to PLANE_A if we don't set the value before it is used for the
      first time. But this shouldn't be a problem with the current code.
      
      V2: Rebase.
      
      Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> (v1)
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e35fef21
  18. 27 1月, 2015 5 次提交
  19. 13 1月, 2015 2 次提交
    • M
      drm/i915: Drop unused position fields (v2) · 53a366b9
      Matt Roper 提交于
      The userspace-requested plane coordinates are now always available via
      plane->state.base (and the i915-adjusted values are stored in
      plane->state), so we no longer use the coordinate fields in intel_plane
      and can drop them.
      
      Also, note that the error case for pageflip calls update_plane() to
      program the values from plane->state; it's simpler to just call
      intel_plane_restore() which does the same thing.
      
      v2: Replace manual update_plane() with intel_plane_restore() in pageflip
          error handler.
      
      Reviewed-by(v1): Bob Paauwe <bob.j.paauwe@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      53a366b9
    • M
      drm/i915: Move to atomic plane helpers (v9) · ea2c67bb
      Matt Roper 提交于
      Switch plane handling to use the atomic plane helpers.  This means that
      rather than provide our own implementations of .update_plane() and
      .disable_plane(), we expose the lower-level check/prepare/commit/cleanup
      entrypoints and let the DRM core implement update/disable for us using
      those entrypoints.
      
      The other main change that falls out of this patch is that our
      drm_plane's will now always have a valid plane->state that contains the
      relevant plane state (initial state is allocated at plane creation).
      The base drm_plane_state pointed to holds the requested source/dest
      coordinates, and the subclassed intel_plane_state holds the adjusted
      values that our driver actually uses.
      
      v2:
       - Renamed file from intel_atomic.c to intel_atomic_plane.c (Daniel)
       - Fix a copy/paste comment mistake (Bob)
      
      v3:
       - Use prepare/cleanup functions that we've already factored out
       - Use newly refactored pre_commit/commit/post_commit to avoid sleeping
         during vblank evasion
      
      v4:
       - Rebase to latest di-nightly requires adding an 'old_state' parameter
         to atomic_update;
      
      v5:
       - Must have botched a rebase somewhere and lost some work.  Restore
         state 'dirty' flag to let begin/end code know which planes to
         run the pre_commit/post_commit hooks for.  This would have actually
         shown up as broken in the next commit rather than this one.
      
      v6:
       - Squash kerneldoc patch into this one.
       - Previous patches have now already taken care of most of the
         infrastructure that used to be in this patch.  All we're adding here
         now is some thin wrappers.
      
      v7:
       - Check return of intel_plane_duplicate_state() for allocation
         failures.
      
      v8:
       - Drop unused drm_plane_state -> intel_plane_state cast.  (Ander)
       - Squash in actual transition to plane helpers.  Significant
         refactoring earlier in the patchset has made the combined
         prep+transition much easier to swallow than it was in earlier
         iterations. (Ander)
      
      v9:
       - s/track_fbs/disabled_planes/ in the atomic crtc flags.  The only fb's
         we need to update frontbuffer tracking for are those on a plane about
         to be disabled (since the atomic helpers never call prepare_fb() when
         disabling a plane), so the new name more accurately describes what
         we're actually tracking.
      
      Testcase: igt/kms_plane
      Testcase: igt/kms_universal_plane
      Testcase: igt/kms_cursor_crc
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NAnder Conselvan de Oliveira <conselvan2@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ea2c67bb