1. 13 5月, 2014 2 次提交
    • C
      drm/i915/chv: Add DPIO offset for Cherryview. v3 · a09caddd
      Chon Ming Lee 提交于
      CHV has 2 display phys.  First phy (IOSF offset 0x1A) has two channels,
      and second phy (IOSF offset 0x12) has single channel.  The first phy is
      used for port B and port C, while second phy is only for port D.
      
      v2: Move the pipe to determine which phy to select for
      vlv_dpio_read/vlv_dpio_write to another patch. (Daniel)
      v3: Rebase the code based on rework on how to calculate DPIO offset.
      Signed-off-by: NChon Ming Lee <chon.ming.lee@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a09caddd
    • B
      drm/i915: Use hash tables for the command parser · 44e895a8
      Brad Volkin 提交于
      For clients that submit large batch buffers the command parser has
      a substantial impact on performance. On my HSW ULT system performance
      drops as much as ~20% on some tests. Most of the time is spent in the
      command lookup code. Converting that from the current naive search to
      a hash table lookup reduces the performance drop to ~10%.
      
      The choice of value for I915_CMD_HASH_ORDER allows all commands
      currently used in the parser tables to hash to their own bucket (except
      for one collision on the render ring). The tradeoff is that it wastes
      memory. Because the opcodes for the commands in the tables are not
      particularly well distributed, reducing the order still leaves many
      buckets empty. The increased collisions don't seem to have a huge
      impact on the performance gain, but for now anyhow, the parser trades
      memory for performance.
      
      NB: Ville noticed that the error paths through the ring init code
      will leak memory. I've not addressed that here. We can do a follow
      up pass to handle all of the leaks.
      
      v2: improved comment describing selection of hash key mask (Damien)
      replace a BUG_ON() with an error return (Tvrtko, Ville)
      commit message improvements
      Signed-off-by: NBrad Volkin <bradley.d.volkin@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      44e895a8
  2. 08 5月, 2014 1 次提交
  3. 07 5月, 2014 3 次提交
  4. 05 5月, 2014 6 次提交
  5. 14 4月, 2014 1 次提交
  6. 11 4月, 2014 2 次提交
  7. 10 4月, 2014 3 次提交
  8. 09 4月, 2014 1 次提交
  9. 03 4月, 2014 1 次提交
    • D
      drm/i915: Add debug module option for VTd validation · 7a10dfa6
      Daniel Vetter 提交于
      VTd has a few too many "outright disable the damn thing" workarounds
      accumulated and for validation we want a simple knob to make sure we
      disable them all.
      
      Since this is for bdw+ validation and atm we don't have any
      workarounds for bdw this option currently does nothing. So currently
      this is just a placeholder to make sure reality will match with the
      documented process for our validation people.
      
      v2: Fix up param description (Jani).
      
      v3: Actually git add ...
      
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7a10dfa6
  10. 02 4月, 2014 13 次提交
  11. 31 3月, 2014 2 次提交
  12. 29 3月, 2014 2 次提交
    • C
      drm/i915: Broadwell expands ACTHD to 64bit · 50877445
      Chris Wilson 提交于
      As Broadwell has an increased virtual address size, it requires more
      than 32 bits to store offsets into its address space. This includes the
      debug registers to track the current HEAD of the individual rings, which
      may be anywhere within the per-process address spaces. In order to find
      the full location, we need to read the high bits from a second register.
      We then also need to expand our storage to keep track of the larger
      address.
      
      v2: Carefully read the two registers to catch wraparound between
          the reads.
      v3: Use a WARN_ON rather than loop indefinitely on an unstable
          register read.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Ben Widawsky <benjamin.widawsky@intel.com>
      Cc: Timo Aaltonen <tjaalton@ubuntu.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      [danvet: Drop spurious hunk which conflicted.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      50877445
    • D
      drm/i915: Track the enabled PM interrupts in dev_priv. · a6706b45
      Deepak S 提交于
      When we use different rps events for different platforms or due to wa,
      we might end up needing this logic in a lot of places. Instead of
      this let's use a variable in dev_priv to track the enabled PM
      interrupts.
      
      v2: Initialize pm_rps_events in intel_irq_init() (Ville).
      Signed-off-by: NDeepak S <deepak.s@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      [danvet: Frob the commit message a bit since the English was a bit too
      garbled ;-) ]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a6706b45
  13. 21 3月, 2014 1 次提交
  14. 20 3月, 2014 2 次提交
    • C
      drm/i915: Per-process stats work better when evaluated per-process · 6313c204
      Chris Wilson 提交于
      The idea of printing objects used by each process is to judge how each
      process is using them. This means that we need to evaluate whether the
      object is bound for that particular process, rather than just whether it
      is bound into the global GTT.
      
      v2: Restore the non-full-ppgtt path for simplicity as we may not even
          create vma with older hardware.
      
      v3: Tweak handling of global entries and default context entries.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Ben Widawsky <benjamin.widawsky@intel.com>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6313c204
    • B
      drm/i915: Rename and comment all the RPS *stuff* · b39fb297
      Ben Widawsky 提交于
      The names of the struct members for RPS are stupid. Every time I need to
      do anything in this code I have to spend a significant amount of time to
      remember what it all means. By renaming the variables (and adding the
      comments) I hope to clear up the situation. Indeed doing this make some
      upcoming patches more readable.
      
      I've avoided ILK because it's possible that the naming used for Ironlake
      matches what is in the docs. I believe the ILK power docs were never
      published, and I am too lazy to dig them up.
      
      v2: leave rp0, and rp1 in the names. It is useful to have these limits
      available at times. min_freq and max_freq (which may be equal to rp0, or
      rp1 depending on the platform) represent the actual HW min and max.
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b39fb297