1. 09 7月, 2020 1 次提交
  2. 07 7月, 2020 1 次提交
  3. 23 6月, 2020 1 次提交
    • J
      drm/i915/params: switch to device specific parameters · 8a25c4be
      Jani Nikula 提交于
      Start using device specific parameters instead of module parameters for
      most things. The module parameters become the immutable initial values
      for i915 parameters. The device specific parameters in i915->params
      start life as a copy of i915_modparams. Any later changes are only
      reflected in the debugfs.
      
      The stragglers are:
      
      * i915.force_probe and i915.modeset. Needed before dev_priv is
        available. This is fine because the parameters are read-only and never
        modified.
      
      * i915.verbose_state_checks. Passing dev_priv to I915_STATE_WARN and
        I915_STATE_WARN_ON would result in massive and ugly churn. This is
        handled by not exposing the parameter via debugfs, and leaving the
        parameter writable in sysfs. This may be fixed up in follow-up work.
      
      * i915.inject_probe_failure. Only makes sense in terms of the module,
        not the device. This is handled by not exposing the parameter via
        debugfs.
      
      v2: Fix uc i915 lookup code (Michał Winiarski)
      
      Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
      Cc: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Acked-by: NMichał Winiarski <michal.winiarski@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20200618150402.14022-1-jani.nikula@intel.com
      8a25c4be
  4. 01 6月, 2020 1 次提交
    • C
      drm/i915: Relinquish forcewake immediately after manual grouping · 03c10f47
      Chris Wilson 提交于
      Our forcewake utilisation is split into categories: automatic and
      manual. Around bare register reads, we look up the right forcewake
      domain and automatically acquire and release [upon a timer] the
      forcewake domain. For other access, where we know we require the
      forcewake across a group of register reads, we manually acquire the
      forcewake domain and release it at the end. Again, this currently arms
      the domain timer for a later release.
      
      However, looking at some energy utilisation profiles, we have tried to
      avoid using forcewake [and rely on the natural wake up to post register
      updates] due to that even keep the fw active for a brief period
      contributes to a significant power draw [i.e. when the gpu is sleeping
      with rc6 at high clocks]. But as it turns out, not posting the writes
      immediately also has unintended consequences, such as not reducing the
      clocks and so conserving power while busy.
      
      As a compromise, let us only arm the domain timer for automatic
      forcewake usage around bare register access, but immediately release the
      forcewake when manually acquired by intel_uncore_forcewake_get/_put.
      
      The corollary to this is that we may instead have to take forcewake more
      often, and so incur a latency penalty in doing so. For Sandybridge this
      was significant, and even on the latest machines, taking forcewake at
      interrupt frequency is a huge impact. [So we don't do that anymore!
      Hopefully, this will spare us from still needing the mitigation of the
      timer for steady state execution.]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200601072446.19548-13-chris@chris-wilson.co.uk
      03c10f47
  5. 11 5月, 2020 1 次提交
  6. 18 4月, 2020 1 次提交
  7. 08 4月, 2020 1 次提交
  8. 25 3月, 2020 1 次提交
  9. 22 1月, 2020 2 次提交
    • P
      drm/i915: Make WARN* drm specific where uncore or stream ptr is available · a9f236d1
      Pankaj Bharadiya 提交于
      drm specific WARN* calls include device information in the
      backtrace, so we know what device the warnings originate from.
      
      Covert all the calls of WARN* with device specific drm_WARN*
      variants in functions where intel_uncore/i915_perf_stream  struct
      pointer is readily available.
      
      The conversion was done automatically with below coccinelle semantic
      patch. checkpatch errors/warnings are fixed manually.
      
      @@
      identifier func, T;
      @@
      func(...) {
      ...
      struct intel_uncore *T = ...;
      <...
      (
      -WARN(
      +drm_WARN(&T->i915->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->i915->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->i915->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->i915->drm,
      ...)
      )
      ...>
      
      }
      
      @@
      identifier func, T;
      @@
      func(struct intel_uncore *T,...) {
      <...
      (
      -WARN(
      +drm_WARN(&T->i915->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->i915->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->i915->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->i915->drm,
      ...)
      )
      ...>
      
      }
      
      @@
      identifier func, T;
      @@
      func(struct i915_perf_stream *T,...) {
      +struct drm_i915_private *i915 = T->perf->i915;
      <+...
      (
      -WARN(
      +drm_WARN(&i915->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&i915->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&i915->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&i915->drm,
      ...)
      )
      ...+>
      
      }
      
      command: ls drivers/gpu/drm/i915/*.c | xargs spatch --sp-file <script> \
      					--linux-spacing --in-place
      Signed-off-by: NPankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200115034455.17658-11-pankaj.laxminarayan.bharadiya@intel.com
      a9f236d1
    • P
      drm/i915: Make WARN* drm specific where drm_priv ptr is available · 48a1b8d4
      Pankaj Bharadiya 提交于
      drm specific WARN* calls include device information in the
      backtrace, so we know what device the warnings originate from.
      
      Covert all the calls of WARN* with device specific drm_WARN*
      variants in functions where drm_i915_private struct pointer is readily
      available.
      
      The conversion was done automatically with below coccinelle semantic
      patch. checkpatch errors/warnings are fixed manually.
      
      @rule1@
      identifier func, T;
      @@
      func(...) {
      ...
      struct drm_i915_private *T = ...;
      <+...
      (
      -WARN(
      +drm_WARN(&T->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->drm,
      ...)
      )
      ...+>
      }
      
      @rule2@
      identifier func, T;
      @@
      func(struct drm_i915_private *T,...) {
      <+...
      (
      -WARN(
      +drm_WARN(&T->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->drm,
      ...)
      )
      ...+>
      }
      
      command: ls drivers/gpu/drm/i915/*.c | xargs spatch --sp-file \
      			<script> --linux-spacing --in-place
      Signed-off-by: NPankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200115034455.17658-10-pankaj.laxminarayan.bharadiya@intel.com
      48a1b8d4
  10. 10 1月, 2020 1 次提交
  11. 14 9月, 2019 2 次提交
  12. 10 8月, 2019 1 次提交
  13. 07 8月, 2019 3 次提交
  14. 03 8月, 2019 1 次提交
  15. 02 8月, 2019 2 次提交
  16. 12 7月, 2019 1 次提交
  17. 09 7月, 2019 1 次提交
  18. 07 7月, 2019 1 次提交
  19. 05 7月, 2019 1 次提交
  20. 04 7月, 2019 1 次提交
  21. 20 6月, 2019 6 次提交
  22. 14 6月, 2019 3 次提交
  23. 10 6月, 2019 1 次提交
  24. 08 5月, 2019 1 次提交
  25. 08 4月, 2019 1 次提交
  26. 03 4月, 2019 2 次提交
  27. 29 3月, 2019 1 次提交