1. 18 12月, 2019 1 次提交
  2. 01 11月, 2019 7 次提交
  3. 25 10月, 2019 1 次提交
    • V
      drm/i915: Allow planes to declare their minimum acceptable cdclk · bb6ae9e6
      Ville Syrjälä 提交于
      Various pixel formats and plane scaling impose additional constraints
      on the cdclk frequency. Provide a new plane->min_cdclk() hook that
      will be used to compute the minimum acceptable cdclk frequency for
      each plane.
      
      Annoyingly on some platforms the numer of active planes affects
      this calculation so we must also toss in more planes into the
      state when the number of active planes changes.
      
      The sequence of state computation must also be changed:
      1. check_plane() (updates plane's visibility etc.)
      2. figure out if more planes now require update min_cdclk
         computaion
      3. calculate the new min cdclk for each plane in the state
      4. if the minimum of any plane now exceeds the current
         logical cdclk we recompute the cdclk
      4. during cdclk computation take the planes' min_cdclk into
         accoutn
      5. follow the normal cdclk programming to change the
         cdclk frequency. This may now require a modeset (except
         on bxt/glk in some cases), which either succeeds or
         fails depending on whether userspace has given
         us permission to perform a modeset or not.
      
      v2: Fix plane id check in intel_crtc_add_planes_to_state()
          Only print the debug message when cdclk needs bumping
          Use dev_priv->cdclk... as the old state explicitly
      Reviewed-by: NJuha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191015193035.25982-5-ville.syrjala@linux.intel.com
      bb6ae9e6
  4. 15 10月, 2019 1 次提交
  5. 25 9月, 2019 1 次提交
  6. 16 9月, 2019 1 次提交
  7. 07 8月, 2019 2 次提交
  8. 01 7月, 2019 1 次提交
  9. 17 6月, 2019 2 次提交
  10. 28 5月, 2019 1 次提交
    • V
      drm/i915: Make sure we have enough memory bandwidth on ICL · c457d9cf
      Ville Syrjälä 提交于
      ICL has so many planes that it can easily exceed the maximum
      effective memory bandwidth of the system. We must therefore check
      that we don't exceed that limit.
      
      The algorithm is very magic number heavy and lacks sufficient
      explanation for now. We also have no sane way to query the
      memory clock and timings, so we must rely on a combination of
      raw readout from the memory controller and hardcoded assumptions.
      The memory controller values obviously change as the system
      jumps between the different SAGV points, so we try to stabilize
      it first by disabling SAGV for the duration of the readout.
      
      The utilized bandwidth is tracked via a device wide atomic
      private object. That is actually not robust because we can't
      afford to enforce strict global ordering between the pipes.
      Thus I think I'll need to change this to simply chop up the
      available bandwidth between all the active pipes. Each pipe
      can then do whatever it wants as long as it doesn't exceed
      its budget. That scheme will also require that we assume that
      any number of planes could be active at any time.
      
      TODO: make it robust and deal with all the open questions
      
      v2: Sleep longer after disabling SAGV
      v3: Poll for the dclk to get raised (seen it take 250ms!)
          If the system has 2133MT/s memory then we pointlessly
          wait one full second :(
      v4: Use the new pcode interface to get the qgv points rather
          that using hardcoded numbers
      v5: Move the pcode stuff into intel_bw.c (Matt)
          s/intel_sagv_info/intel_qgv_info/
          Do the NV12/P010 as per spec for now (Matt)
          s/IS_ICELAKE/IS_GEN11/
      v6: Ignore bandwidth limits if the pcode query fails
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NMatt Roper <matthew.d.roper@intel.com>
      Acked-by: NClint Taylor <Clinton.A.Taylor@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190524153614.32410-1-ville.syrjala@linux.intel.com
      c457d9cf
  11. 08 4月, 2019 3 次提交
  12. 05 3月, 2019 1 次提交
  13. 16 2月, 2019 1 次提交
  14. 08 2月, 2019 2 次提交
  15. 26 1月, 2019 1 次提交
  16. 17 1月, 2019 1 次提交
  17. 09 1月, 2019 1 次提交
  18. 29 11月, 2018 3 次提交
  19. 15 11月, 2018 1 次提交
  20. 24 10月, 2018 1 次提交
    • M
      drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v5. · 1ab554b0
      Maarten Lankhorst 提交于
      To make NV12 working on icl, we need to update 2 planes simultaneously.
      I've chosen to do this in the CRTC step after plane validation is done,
      so we know what planes are (in)visible. The linked Y plane will get
      updated in intel_plane_update_planes_on_crtc(), by the call to
      update_slave, which gets the master's plane_state as argument.
      
      The link requires both planes for atomic_update to work,
      so make sure skl_ddb_add_affected_planes() adds both states.
      
      Changes since v1:
      - Introduce icl_is_nv12_y_plane(), instead of hardcoding sprite numbers.
      - Put all the state updating login in intel_plane_atomic_check_with_state().
      - Clean up changes in intel_plane_atomic_check().
      Changes since v2:
      - Fix intel_atomic_get_old_plane_state() to actually return old state.
      - Move visibility changes to preparation patch.
      - Only try to find a Y plane on gen11, earlier platforms only require
        a single plane.
      Changes since v3:
      - Fix checkpatch warning about to_intel_crtc() usage.
      - Add affected planes from icl_add_linked_planes() before check_planes(),
        it's a cleaner way to do this. (Ville)
      Changes since v4:
      - Clear plane links in icl_check_nv12_planes() for clarity.
      - Only pass crtc_state to icl_check_nv12_planes().
      - Use for_each_new_intel_plane_in_state() in icl_check_nv12_planes.
      - Rename aux to linked. (Ville)
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20181022135152.15324-1-maarten.lankhorst@linux.intel.com
      [mlankhorst: Change bool slave to u32, to satisfy checkpatch]
      [mlankhorst: Add WARN_ON's based on Ville's suggestion]
      1ab554b0
  21. 08 10月, 2018 1 次提交
  22. 22 9月, 2018 2 次提交
  23. 12 9月, 2018 2 次提交
  24. 29 8月, 2018 2 次提交