1. 05 8月, 2013 1 次提交
  2. 25 7月, 2013 2 次提交
    • C
      drm/i915: Convert the register access tracepoint to be conditional · ed71f1b4
      Chris Wilson 提交于
      The TRACE_EVENT_CONDITION is supposed to generate more efficient code
      than if (cond) trace(), which is what we are currently using inside the
      register access functions.
      
      v2: Rebase onto uncore
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ed71f1b4
    • C
      drm/i915: Colocate all GT access routines in the same file · 907b28c5
      Chris Wilson 提交于
      Currently, the register access code is split between i915_drv.c and
      intel_pm.c. It only bares a superficial resemblance to the reset of the
      powermanagement code, so move it all into its own file. This is to ease
      further patches to enforce serialised register access.
      
      v2: Scan for random abuse of I915_WRITE_NOTRACE
      v3: Take the opportunity to rename the GT functions as uncore. Uncore is
      the term used by the hardware design (and bspec) for all functions
      outside of the GPU (and CPU) cores in what is also known as the System
      Agent.
      v4: Rebase onto SNB rc6 fixes
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      [danvet: Wrestle patch into applying and inline
      intel_uncore_early_sanitize (plus move the old comment to the new
      function). Also keep the _santize postfix for intel_uncore_sanitize.]
      [danvet: Squash in fixup spotted by Chris on irc: We need to call
      intel_pm_init before intel_uncore_sanitize since the later will call
      cancel_work on the delayed rps setup work the former initializes.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      907b28c5
  3. 18 7月, 2013 5 次提交
  4. 16 7月, 2013 1 次提交
  5. 13 7月, 2013 1 次提交
  6. 09 7月, 2013 2 次提交
    • D
      drm/i915: convert debugfs creation/destruction to table · 34b9674c
      Daniel Vetter 提交于
      At least for the common cases where we only need special file
      operations. The forcewake file is still rather more special.
      
      v2: Fix up the debugfs unregister code.
      
      v3: Actually squash in the right fixup.
      Acked-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      34b9674c
    • B
      drm/i915: Getter/setter for object attributes · f343c5f6
      Ben Widawsky 提交于
      Soon we want to gut a lot of our existing assumptions how many address
      spaces an object can live in, and in doing so, embed the drm_mm_node in
      the object (and later the VMA).
      
      It's possible in the future we'll want to add more getter/setter
      methods, but for now this is enough to enable the VMAs.
      
      v2: Reworked commit message (Ben)
      Added comments to the main functions (Ben)
      sed -i "s/i915_gem_obj_set_color/i915_gem_obj_ggtt_set_color/" drivers/gpu/drm/i915/*.[ch]
      sed -i "s/i915_gem_obj_bound/i915_gem_obj_ggtt_bound/" drivers/gpu/drm/i915/*.[ch]
      sed -i "s/i915_gem_obj_size/i915_gem_obj_ggtt_size/" drivers/gpu/drm/i915/*.[ch]
      sed -i "s/i915_gem_obj_offset/i915_gem_obj_ggtt_offset/" drivers/gpu/drm/i915/*.[ch]
      (Daniel)
      
      v3: Rebased on new reserve_node patch
      Changed DRM_DEBUG_KMS to actually work (will need fixing later)
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f343c5f6
  7. 02 7月, 2013 3 次提交
  8. 01 7月, 2013 7 次提交
  9. 06 6月, 2013 1 次提交
    • C
      drm/i915: Track clients and print their object usage in debugfs · 2db8e9d6
      Chris Wilson 提交于
      By stashing a pointer of who opened the device and keeping a list of
      open fd, we can then walk each client and inspect how many objects they
      have open. For example,
      
      i915_gem_objects:
      1102 objects, 613646336 bytes
      663 [662] objects, 468783104 [468750336] bytes in gtt
        37 [37] active objects, 46874624 [46874624] bytes
        626 [625] inactive objects, 421908480 [421875712] bytes
      282 unbound objects, 6512640 bytes
      85 purgeable objects, 6787072 bytes
      28 pinned mappable objects, 3686400 bytes
      40 fault mappable objects, 27783168 bytes
      2145386496 [536870912] gtt total
      
      Xorg: 43 objects, 32243712 bytes (10223616 active, 16683008 inactive, 4096 unbound)
      gnome-shell: 30 objects, 28381184 bytes (0 active, 28336128 inactive, 0 unbound)
      xonotic-linux64: 1032 objects, 569933824 bytes (46874624 active, 383545344 inactive, 6508544 unbound)
      
      v2: Use existing drm->filelist as pointed out by Ben.
      v3: Not even stashing the task_struct is required as Ben pointed out
          drm_file->pid.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2db8e9d6
  10. 03 6月, 2013 1 次提交
  11. 01 6月, 2013 2 次提交
  12. 24 5月, 2013 2 次提交
  13. 23 5月, 2013 1 次提交
  14. 23 4月, 2013 2 次提交
  15. 18 4月, 2013 4 次提交
    • J
      drm/i915: turbo & RC6 support for VLV v7 · 0a073b84
      Jesse Barnes 提交于
      Uses slightly different interfaces than other platforms.
      
      v2: track actual set freq, not requested (Rohit)
          fix debug prints in init code (Jesse)
      v3: don't write sleep reg (Jesse)
          re-add RC6 wake limit write (Ben)
          fixup thresholds to match other platforms (Ben)
          clean up mem freq calculation (Ben)
          clean up debug prints (Ben)
      v4: move defines from punit patch (Ville)
      v5: remove writes to nonexistent regs (Jesse)
          put RP and RC regs together (Jesse)
          fix RC6 enable (Jesse)
      v6: use correct fuse reads from NC (Jesse)
          split out min/max funcs for use in sysfs (Jesse)
          add debugfs & sysfs freq controls (Jesse)
      v7: update with Ben's hw_max changes (Jesse)
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: Ben Widawsky <ben@bwidawsk.net> (v6)
      [danvet: Follow checkpatch sugggestion to use min_t to avoid casting
      fun.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0a073b84
    • C
      drm/i915: Scale ring, rather than ia, frequency on Haswell · 3ebecd07
      Chris Wilson 提交于
      Haswell introduces a separate frequency domain for the ring (uncore). So
      where we used to increase the CPU (IA) clock with GPU busyness, we now
      need to scale the ring frequency directly instead. As the ring limits
      our memory bandwidth, it is vital for performance that when the GPU is
      busy, we increase the frequency of the ring to increase the available
      memory bandwidth.
      
      v2: Fix the algorithm to actually use the scaled gpu frequency for the ring.
      v3: s/max_ring_freq/min_ring_freq/ as that is what it is
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      [danvet: Add space checkpatch complained about.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3ebecd07
    • M
      drm/i915: shorten debugfs output simple attributes · 3a3b4f98
      Mika Kuoppala 提交于
      commit 647416f9
      Author: Kees Cook <keescook@chromium.org>
      Date:   Sun Mar 10 14:10:06 2013 -0700
      
          drm/i915: use simple attribute in debugfs routines
      
      made i915_next_seqno debugfs entry to crop it's output
      if returned value was large enough. Using simple_attr
      will limit the output to 24 bytes.
      
      Fix is to strip out preamples on all simple attributes
      that have one.
      
      v2: Fix all simple attributes (Daniel Vetter)
      
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Acked-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3a3b4f98
    • B
      drm/i915: Better overclock support · 31c77388
      Ben Widawsky 提交于
      Most importantly this will allow users to set overclock frequencies in
      sysfs. Previously the max was limited by the RP0 max as opposed to the
      overclock max. This is useful if one wants to either limit the max
      overclock frequency, or set the minimum frequency to be in the overclock
      range. It also fixes an issue where if one sets the max frequency to be
      below the overclock max, they wouldn't be able to set back the proper
      overclock max.
      
      In addition I've added a couple of other bits:
      Show the overclock freq. as max in sysfs
      Print the overclock max in debugfs.
      Print a warning if the user sets the min frequency to be in the
      overclock range.
      
      In this patch I've decided to store the hw_max when we read it from the
      pcode at init. The reason I do this is the pcode reads can fail, and are
      slow.
      
      v2: Report when user requested overclocked max (Daniel)
      Remove when user sets min to overclock range (Daniel)
      
      Reported-by: freezer from #intel-gfx on irc
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      [danvet: Fixup the s/100MHz/50MHz/ confusion in an unrelated comment
      that Mika spotted.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      31c77388
  16. 14 3月, 2013 2 次提交
  17. 05 3月, 2013 1 次提交
    • B
      drm/i915: Capture current context on error · 8c123e54
      Ben Widawsky 提交于
      On error, this represents the state of the currently running context at
      the time it was loaded.
      
      Unfortunately, since we're hung and can't switch out the context this
      may not tell us too much about the most current state of the context,
      but does give clues about what has happened since loading.
      
      Thanks to recent doc updates, we have a little more confidence regarding
      what is actually in this memory, and perhaps it will help us gain more
      insight into certain bugs. AFAICT, the most interesting info is in the
      first page. To save space, we only capture the first page. In the
      future, we might want to dump more.
      
      Sample of the relevant part of error state:
      render ring --- HW Context = 0x01b20000
      [0000] 00000000 1100105f 00002028 ffff0880
      [0010] 0000209c feff4040 000020c0 efdf0080
      [0020] 00002178 00000001 0000217c 00145855
      [0030] 00002310 00000000 00002314 00000000
      
      v2: Move error collection to the ring error code
      Change format of dump to not confuse intel_error_decode (Chris)
      Put the context error object with the others (Chris)
      Don't search bound_list instead of active_list (chris)
      
      v3: extract and flatten context recording (daniel)
      checkpatch related fixes for the copypasta in debugfs
      
      v4: bug in v3 (Daniel)
      -       if ((ring->id == RCS) && error->ccid)
      +       if ((ring->id != RCS) || !error->ccid)
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=55845
      Reviewed-by (v2): Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      [danvet: Bikeshed away the redudant parenthese around ring->id != RCS]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8c123e54
  18. 20 2月, 2013 2 次提交