1. 27 11月, 2013 5 次提交
  2. 19 11月, 2013 1 次提交
  3. 14 11月, 2013 4 次提交
  4. 13 11月, 2013 2 次提交
  5. 12 11月, 2013 2 次提交
    • M
      drm/i915: add i915_get_reset_stats_ioctl · b6359918
      Mika Kuoppala 提交于
      This ioctl returns reset stats for specified context.
      
      The struct returned contains context loss counters.
      
      reset_count:    all resets across all contexts
      batch_active:   active batches lost on resets
      batch_pending:  pending batches lost on resets
      
      v2: get rid of state tracking completely and deliver only counts. Idea
          from Chris Wilson.
      
      v3: fix commit message
      
      v4: default context handled inside i915_gem_context_get_hang_stats
      
      v5: reset_count only for priviledged process
      
      v6: ctx=0 needs CAP_SYS_ADMIN for batch_* counters (Chris Wilson)
      
      v7: context hang stats never returns NULL
      
      v8: rebased on top of reworked context hang stats
          DRM_RENDER_ALLOW for ioctl
      
      v9: use DEFAULT_CONTEXT_ID. Improve comments for ioctl struct members
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Cc: Ian Romanick <idr@freedesktop.org>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NIan Romanick <ian.d.romanick@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b6359918
    • M
      drm/i915: add i915_reset_count · 2ac0f450
      Mika Kuoppala 提交于
      reset_counter will be incremented twice per successful
      reset. Odd values mean reset is in progress and even values
      mean that reset has completed.
      
      Reset status ioctl introduced in following commit
      needs to deliver global reset count to userspace so
      use reset_counter to derive the actual reset count
      for the gpu
      
      Note that reset in progress is enough to increment
      the counter.
      
      v2: wedged equals reset in progress (Daniel Vetter)
      
      v3: Fixed stale comments (Damien Lespiau)
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2ac0f450
  6. 11 11月, 2013 1 次提交
  7. 09 11月, 2013 6 次提交
    • B
      drm/i915/bdw: Support eDP PSR · ed8546ac
      Ben Widawsky 提交于
      Broadwell PSR support is a superset of Haswell. With this simple
      register base calculation, everything that worked on HSW for eDP PSR
      should work on BDW.
      
      Note that Broadwell provides additional PSR support. This is not
      addressed at this time.
      
      v2: Make the HAS_PSR include BDW
      
      v3: Use the correct offset (I had incorrectly used one from my faulty
      brain) (Art!)
      
      v4: It helps if you git add
      
      v5: Be explicit about not setting min link entry time for BDW. This
      should be no functional change over v4 (Jani)
      Reviewed-by: NArt Runyan <arthur.j.runyan@intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ed8546ac
    • B
      drm/i915/bdw: Use The GT mailbox for IPS enable/disable · 2a114cc1
      Ben Widawsky 提交于
      v2: Squash in fixup from Ben to synchronize the GT mailbox commands.
      
      CC: Art Runyan <arthur.j.runyan@intel.com>
      Reviewed-by: NArt Runyan <arthur.j.runyan@intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2a114cc1
    • P
      drm/i915/bdw: Broadwell also has the "power down well" · 6745a2ce
      Paulo Zanoni 提交于
      Just like Haswell, but with the small twist that the panel fitter for pipe A is
      now also in the always-on power well.
      
      v2: Use the new HAS_POWER_WELL macro.
      
      v3: Rebase on top of intel_using_power_well patches.
      
      v4: This time actually update the PFIT check correctly so that the
      pipe A pfit is in the always-on domain.
      
      v5: Rebase on top of the VGA power domain addition.
      
      v6: Rebase on top of the new power domain infrastructure. Also pimp the commit
      message a bit while at it.
      
      v7: Use IS_BROADWELL instead of IS_GEN8 (Ville).
      
      Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> (v1)
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6745a2ce
    • P
      drm/i915/bdw: add IS_BROADWELL macro · 4e8058a2
      Paulo Zanoni 提交于
      For now it's just equivalent to IS_GEN8, but in the future we might
      want to change that (e.g., on Gen 7 we have IS_VALLEYVIEW,
      IS_IVYBRIDGE and IS_HASWELL).
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4e8058a2
    • B
      drm/i915/bdw: PPGTT init & cleanup · 37aca44a
      Ben Widawsky 提交于
      Aside from the potential size increase of the PPGTT, the primary
      difference from previous hardware is the Page Directories are no longer
      carved out of the Global GTT.
      
      Note that the PDE allocation is done as a 8MB contiguous allocation,
      this needs to be eventually fixed (since driver reloading will be a
      pain otherwise). Also, this will be a no-go for real PPGTT support.
      
      v2: Move vtable initialization
      
      v3: Resolve conflicts due to patch series reordering.
      
      v4: Rebase on top of the address space refactoring of the PPGTT
      support. Drop Imre's r-b tag for v2, too outdated by now.
      
      v5: Free the correct amount of memory, "get_order takes size not a page
      count." (Imre)
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      37aca44a
    • B
      drm/i915/bdw: Implement interrupt changes · abd58f01
      Ben Widawsky 提交于
      The interrupt handling implementation remains the same as previous
      generations with the 4 types of registers, status, identity, mask, and
      enable. However the layout of where the bits go have changed entirely.
      To address these changes, all of the interrupt vfuncs needed special
      gen8 code.
      
      The way it works is there is a top level status register now which
      informs the interrupt service routine which unit caused the interrupt,
      and therefore which interrupt registers to read to process the
      interrupt. For display the division is quite logical, a set of interrupt
      registers for each pipe, and in addition to those, a set each for "misc"
      and port.
      
      For GT the things get a bit hairy, as seen by the code. Each of the GT
      units has it's own bits defined. They all look *very similar* and
      resides in 16 bits of a GT register. As an example, RCS and BCS share
      register 0. To compact the code a bit, at a slight expense to
      complexity, this is exactly how the code works as well. 2 structures are
      added to the ring buffer so that our ring buffer interrupt handling code
      knows which ring shares the interrupt registers, and a shift value (ie.
      the top or bottom 16 bits of the register).
      
      The above allows us to kept the interrupt register caching scheme, the
      per interrupt enables, and the code to mask and unmask interrupts
      relatively clean (again at the cost of some more complexity).
      
      Most of the GT units mentioned above are command streamers, and so the
      symmetry should work quite well for even the yet to be implemented rings
      which Broadwell adds.
      
      v2: Fixes up a couple of bugs, and is more verbose about errors in the
      Broadwell interrupt handler.
      
      v3: fix DE_MISC IER offset
      
      v4: Simplify interrupts:
      I totally misread the docs the first time I implemented interrupts, and
      so this should greatly simplify the mess. Unlike GEN6, we never touch
      the regular mask registers in irq_get/put.
      
      v5: Rebased on to of recent pch hotplug setup changes.
      
      v6: Fixup on top of moving num_pipes to intel_info.
      
      v7: Rebased on top of Egbert Eich's hpd irq handling rework. Also
      wired up ibx_hpd_irq_setup for gen8.
      
      v8: Rebase on top of Jani's asle handling rework.
      
      v9: Rebase on top of Ben's VECS enabling for Haswell, where he
      unfortunately went OCD on the gt irq #defines. Not that they're still
      not yet fully consistent:
      - Used the GT_RENDER_ #defines + bdw shifts.
      - Dropped the shift from the L3_PARITY stuff, seemed clearer.
      - s/irq_refcount/irq_refcount.gt/
      
      v10: Squash in VECS enabling patches and the gen8_gt_irq_handler
      refactoring from Zhao Yakui <yakui.zhao@intel.com>
      
      v11: Rebase on top of the interrupt cleanups in upstream.
      
      v12: Rebase on top of Ben's DPF changes in upstream.
      
      v13: Drop bdw from the HAS_L3_DPF feature flag for now, it's unclear what
      exactly needs to be done. Requested by Ben.
      
      v14: Fix the patch.
      - Drop the mask of reserved bits and assorted logic, it doesn't match
        the spec.
      - Do the posting read inconditionally instead of commenting it out.
      - Add a GEN8_MASTER_IRQ_CONTROL definition and use it.
      - Fix up the GEN8_PIPE interrupt defines and give the GEN8_ prefixes -
        we actually will need to use them.
      - Enclose macros in do {} while (0) (checkpatch).
      - Clear DE_MISC interrupt bits only after having processed them.
      - Fix whitespace fail (checkpatch).
      - Fix overtly long lines where appropriate (checkpatch).
      - Don't use typedef'ed private_t (maintainer-scripts).
      - Align the function parameter list correctly.
      
      Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v4)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      
      bikeshed
      abd58f01
  8. 07 11月, 2013 5 次提交
  9. 06 11月, 2013 1 次提交
  10. 05 11月, 2013 1 次提交
  11. 02 11月, 2013 1 次提交
    • D
      drm/i916: add "auto" pipe CRC source · 46a19188
      Daniel Vetter 提交于
      On gmch platforms the normal pipe source CRC registers don't work for
      DP and TV encoders. And on newer platforms the single pipe CRC has
      been replaced by a set of CRC at different stages in the platform.
      
      Now most of our userspace tests don't care one bit about the exact
      CRC, they simply want something that reflects any changes on the
      screen. Hence add a new auto target for platform agnostic tests to
      use.
      
      v2: Pass back the adjusted source so that it can be shown in debugfs.
      
      v3: I seem to be unable to get a stable CRC for DP ports. So let's
      just disable them for now when using the auto mode. Note that
      testcases need to be restructured so that they can dynamically skip
      connectors. They also first need to set up the desired mode
      configuration, since otherwise the auto mode won't do the right thing.
      
      v4: Don't leak the modeset mutex on error paths.
      
      v5: Spelling fix for the i9xx auto_source function.
      
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      46a19188
  12. 30 10月, 2013 2 次提交
  13. 28 10月, 2013 3 次提交
    • I
      drm/i915: remove device field from struct power_well · b4ed4484
      Imre Deak 提交于
      The only real need for this field was in
      i915_{request,release}_power_well, but there we can get at it by a
      container_of magic. Also since in the future we'll have multiple power
      wells each with its own power_well struct it makes sense to remove the
      field from there where it'd be just redundancy.
      Suggested-by: NPaulo Zanoni <paulo.zanoni@intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b4ed4484
    • I
      drm/i915: use power get/put instead of set for power on after init · baa70707
      Imre Deak 提交于
      Currently we make sure that all power domains are enabled during driver
      init and turn off unneded ones only after the first modeset. Similarly
      during suspend we enable all power domains, which will remain on through
      the following resume until the first modeset.
      
      This logic is supported by intel_set_power_well() in the power domain
      framework. It would be nice to simplify the API, so that we only have
      get/put functions and make it more explicit on the higher level how this
      "power well on during init" logic works. This will make it also easier
      if in the future we want to shorten the time the power wells are on.
      
      For this add a new device private flag tracking whether we have the
      power wells on because of init/suspend and use only
      intel_display_power_get()/put(). As nothing else uses
      intel_set_power_well() we can remove it.
      
      This also fixes
      
      commit 6efdf354
      Author: Imre Deak <imre.deak@intel.com>
      Date:   Wed Oct 16 17:25:52 2013 +0300
      
          drm/i915: enable only the needed power domains during modeset
      
      where removing intel_set_power_well() resulted in not releasing the
      reference on the power well that was taken during init and thus leaving
      the power well on all the time. Regression reported by Paulo.
      
      v2:
      - move the init_power_on flag to the power_domains struct (Daniel)
      
      v3:
      - add note about this being a regression fix too (Paulo)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      baa70707
    • I
      drm/i915: prepare for multiple power wells · 83c00f55
      Imre Deak 提交于
      In the future we'll need to support multiple power wells, so prepare for
      that here. Create a new power domains struct which contains all
      power domain/well specific fields. Since we'll have one lock protecting
      all power wells, move power_well->lock to the new struct too.
      
      No functional change.
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      83c00f55
  14. 22 10月, 2013 6 次提交