1. 01 6月, 2013 10 次提交
  2. 11 5月, 2013 2 次提交
  3. 30 4月, 2013 2 次提交
  4. 27 4月, 2013 1 次提交
  5. 25 4月, 2013 1 次提交
  6. 24 4月, 2013 1 次提交
    • J
      drm/i915: make sure GPU freq drops to minimum after entering RC6 v4 · 52ceb908
      Jesse Barnes 提交于
      On VLV, the Punit doesn't automatically drop the GPU to it's minimum
      voltage level when entering RC6, so we arm a timer to do it for us from
      the RPS interrupt handler.  It'll generally only fire when we go idle
      (or if for some reason there's a long delay between RPS interrupts), but
      won't be re-armed again until the next RPS event, so shouldn't affect
      power consumption after we go idle and it triggers.
      
      v2: use delayed work instead of timer + work queue combo (Ville)
      v3: fix up delayed work cancel (must be outside lock) (Daniel)
          fix up delayed work handling func for delayed work (Jesse)
      v4: cancel delayed work before RPS shutdown (Jani)
          pass delay not absolute time to mod_delayed_work (Jani)
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      52ceb908
  7. 23 4月, 2013 2 次提交
  8. 19 4月, 2013 2 次提交
    • P
      drm/i915: print Gen5+ CPU/PCH poison interrupts · de032bf4
      Paulo Zanoni 提交于
      This is bad news and shouldn't be happening.
      
      V2: Rebase.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      de032bf4
    • P
      drm/i915: report Gen5+ CPU and PCH FIFO underruns · 8664281b
      Paulo Zanoni 提交于
      In this commit we enable both CPU and PCH FIFO underrun reporting and
      start reporting them. We follow a few rules:
        - after we receive one of these errors, we mask the interrupt, so
          we won't get an "interrupt storm" and we also won't flood dmesg;
        - at each mode set we enable the interrupts again, so we'll see each
          message at most once per mode set;
        - in the specific places where we need to ignore the errors, we
          completely mask the interrupts.
      
      The downside of this patch is that since we're completely disabling
      (masking) the interrupts instead of just not printing error messages,
      we will mask more than just what we want on IVB/HSW CPU interrupts
      (due to GEN7_ERR_INT) and on CPT/PPT/LPT PCHs (due to SERR_INT). So
      when we decide to mask PCH FIFO underruns for pipe A on CPT, we'll
      also be masking PCH FIFO underruns for pipe B, because both are
      reported by SERR_INT, which has to be either completely enabled or
      completely disabled (in othe words, there's no way to disable/enable
      specific bits of GEN7_ERR_INT and SERR_INT).
      
      V2: Rename some functions and variables, downgrade messages to
      DRM_DEBUG_DRIVER and rebase.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8664281b
  9. 18 4月, 2013 8 次提交
  10. 09 4月, 2013 1 次提交
    • B
      drm/i915: Don't touch South Display when PCH_NOP · ab5c608b
      Ben Widawsky 提交于
      Interrupts, clock gating, LVDS, and GMBUS are all within the, "this will
      be bad for CPU" range when we have PCH_NOP.
      
      There is a bit of a hack in init clock gating. We want to do most of the
      clock gating, but the part we skip will hang the system. It could
      probably be abstracted a bit better, but I don't feel it's too
      unsightly.
      
      v2: Use inverse HAS_PCH_NOP check (Jani)
      
      v3: Actually do what I claimed in v2 (spotted by Daniel)
      Merge Ivybridge IRQ handler PCH check to decrease whitespace (Daniel)
      Move LVDS bail into this patch (Ben)
      
      v4: logical rebase conflict resolution with SDEIIR (Ben)
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      
      Brush up patch a bit and resolve conflicts:
      - Adjust PCH_NOP checks due to Egbert's hpd handling rework.
      - Addd a PCH_NOP check in the irq uninstall code.
      - Resolve conflicts with Paulo's SDE irq handling race fix.
      
      v5: Drop the added hunks in the ilk irq handler again, they're bogus.
      OOps.
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ab5c608b
  11. 28 3月, 2013 5 次提交
    • P
      drm/i915: remove "inline" keyword from ironlake_disable_display_irq · 0ff9800a
      Paulo Zanoni 提交于
       - It's a static function
       - I just added a few more users to it
       - Its sister ironlake_enable_display_irq is not marked as inline
       - The compiler will still inline if it thinks it should do
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0ff9800a
    • D
      drm/i915: wire up SDVO hpd support on cpt/ppt · 73c352a2
      Daniel Vetter 提交于
      Now with Egbert Eich's hpd infrastructure rework merged this is dead
      simple. And we need this to make output detection work on SDVO - with
      the cleaned-up drm polling helpers outputs which claim to have hpd
      support are no longer polled.
      
      Now SDVO claims to do that, but it's not actually wired up. So just do
      it.
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      73c352a2
    • D
      drm/i915: clear crt hotplug compare voltage field before setting · 85fc95ba
      Daniel Vetter 提交于
      Noticed while reviewing the hotplug irq setup code. Just looks better.
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      85fc95ba
    • E
      DRM/i915: Remove i965_hpd_irq_setup. · bac56d5b
      Egbert Eich 提交于
      After
      "Convert HPD interrupts to make use of HPD pin assignment in encoders."
      This function is now basically the same as i915_hpd_irq_setup().
      
      Consolidating both functions in one requires one more check for
      I915_HAS_HOTPLUG(dev) in the i965 code path and one more check for
      IS_G4X(dev) in the i915 code path. These are considered harmless.
      Signed-off-by: NEgbert Eich <eich@suse.de>
      Acked-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Fixup patch conflict and make it compile.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      bac56d5b
    • D
      drm/i915: implement ibx_hpd_irq_setup · 82a28bcf
      Daniel Vetter 提交于
      This fixes a regression introduced in
      
      commit e5868a31
      Author: Egbert Eich <eich@suse.de>
      Date:   Thu Feb 28 04:17:12 2013 -0500
      
          DRM/i915: Convert HPD interrupts to make use of HPD pin assignment in encode
      
      Due to the irq setup rework in 3.9, see
      
      commit 20afbda2
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Tue Dec 11 14:05:07 2012 +0100
      
          drm/i915: Fixup hpd irq register setup ordering
      
      Egbert Eich's hpd rework blows up on pch-split platforms - it walks
      the encoder list before that has been set up completely. The new init
      sequence is:
      
      1. irq enabling
      2. modeset init
      3. hpd setup
      
      We need to move around the ibx setup a bit to fix this.
      
      Ville Syrjälä pointed out in his review that we can't touch SDEIER
      after the interrupt handler is set up, since that'll race with Paulo
      Zanoni's PCH interrupt race fix:
      
      commit 44498aea
      Author: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Date:   Fri Feb 22 17:05:28 2013 -0300
      
          drm/i915: also disable south interrupts when handling them
      
      We fix that by unconditionally enabling all interrupts in SDEIER, but
      masking them as-needed in SDEIMR. Since only the single-threaded
      setup/teardown (or suspend/resume) code touches that, no further
      locking is required.
      
      While at it also simplify the mask handling - we start out with all
      interrupts cleared in the postinstall hook, and never enable a hpd
      interrupt before hpd_irq_setup is called.
      
      And finally, for consistency rename the ibx hpd setup function to
      ibx_hpd_irq_setup.
      
      v2: Fix race around SDEIER writes (Ville).
      
      v3: Remove the superflous posting read for SDEIER, spotted by Ville.
      
      Ville also wondered whether we shouldn't clear SDEIIR, since now
      SDE interrupts are enabled before we have an irq handler installed.
      But the master interrupt control bit in DEIER is still cleared, so we
      should be fine.
      
      Cc: Egbert Eich <eich@suse.de>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62798Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      82a28bcf
  12. 27 3月, 2013 2 次提交
  13. 23 3月, 2013 2 次提交
  14. 18 3月, 2013 1 次提交
    • C
      drm/i915: Resurrect ring kicking for semaphores, selectively · a24a11e6
      Chris Wilson 提交于
      Once we thought we got semaphores working, we disabled kicking the ring
      if hangcheck fired whilst waiting upon a ring as it was doing more harm
      than good:
      
      commit 4e0e90dc
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Wed Dec 14 13:56:58 2011 +0100
      
          drm/i915: kicking rings stuck on semaphores considered harmful
      
      However, life is never that easy and semaphores are still causing
      problems whereby the value written by one ring (bcs) is not being
      propagated to the waiter (rcs). Thus the waiter never wakes up and we
      declare the GPU hung, which often has unfortunate consequences, even if
      we successfully reset the GPU.
      
      But the GPU is idle as it has completed the work, just didn't notify its
      clients. So we can detect the incomplete wait during hang check and
      probe the target ring to see if has indeed emitted the breadcrumb seqno
      following the work and then and only then kick the waiter.
      
      Based on a suggestion by Ben Widawsky.
      
      v2: cross-check wait with iphdr. fix signaller calculation.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=54226Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Acked-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a24a11e6