1. 04 Nov, 2021 2 commits
    • Ville Syrjälä's avatar
      drm/i915: Fix async flip with decryption and/or DPT · 50faf7a1
      Ville Syrjälä authored
      We're currently forgetting to set the PLANE_SURF_DECRYPT
      flag in the async flip path. So if the hardware were to
      latch that bit despite this being an async flip we'd start
      scanning out garbage. And if it doesn't latch it then I
      guess we'd just end up with a weird register value that
      doesn't actually match the hardware state, which isn't
      great for anyone staring at register dumps.
      
      Similarly the async flip path also forgets to call
      skl_surf_address() which means the DPT address space to
      GGTT address space downshift is not being applied to
      the offset. Which means we are pointing PLANE_SURF
      at some random location in GGTT instead of the correct
      DPT page.
      
      So let's fix two birds with one stone and extract the
      PLANE_SURF calculation from skl_program_plane() into
      a small helper and use it in the async flip path as well.
      
      Cc: Anshuman Gupta <anshuman.gupta@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Juston Li <juston.li@intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Uma Shankar <uma.shankar@intel.com>
      Cc: Karthik B S <karthik.b.s@intel.com>
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211018115030.3547-3-ville.syrjala@linux.intel.comReviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      50faf7a1
    • Ville Syrjälä's avatar
      drm/i915: Reject planar formats when doing async flips · aaec72ee
      Ville Syrjälä authored
      Async flips are only capable of changing PLANE_SURF, hence we
      they can't easily be used with planar formats.
      
      Older platforms could require updating AUX_DIST as well, which
      is not possible. We'd have to make sure AUX_DIST doesn't change
      before allowing the async flip through. If we could get async
      flips with CCS then that might be interesting, but since the hw
      doesn't allow async flips with CCS I don't see much point in
      allowing this for planar formats either. No one renders their
      game content in YUV anyway.
      
      icl+ could in theory do this I suppose since each color plane
      has its own PLANE_SURF register, but I don't know if there is
      some magic to guarantee that both the Y and UV plane would
      async flip synchronously if you will. Ie. beyond just a clean
      tear we'd potentially get some kind of weird tear with some
      random mix of luma and chroma from the old and new frames.
      
      So let's just say no to async flips when scanning out planar
      formats.
      
      Cc: Karthik B S <karthik.b.s@intel.com>
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20211018115030.3547-2-ville.syrjala@linux.intel.comReviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      aaec72ee
  2. 03 Nov, 2021 12 commits
  3. 02 Nov, 2021 8 commits
  4. 01 Nov, 2021 4 commits
  5. 29 Oct, 2021 7 commits
  6. 28 Oct, 2021 7 commits