1. 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
  2. 03 4月, 2013 2 次提交
  3. 26 3月, 2013 2 次提交
  4. 24 3月, 2013 1 次提交
  5. 23 3月, 2013 5 次提交
  6. 18 3月, 2013 1 次提交
  7. 14 3月, 2013 1 次提交
  8. 05 3月, 2013 1 次提交
  9. 04 3月, 2013 3 次提交
  10. 20 2月, 2013 2 次提交
    • D
      drm/i915: remove bogus mutex_unlock from error-path · 002d71f2
      Daniel Vetter 提交于
      This has been lost in the locking rework for intel_alloc_context_page:
      
      commit 2c34b850
      Author: Ben Widawsky <ben@bwidawsk.net>
      Date:   Sat Mar 19 18:14:26 2011 -0700
      
          drm/i915: fix ilk rc6 teardown locking
      
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      002d71f2
    • D
      drm/i915: detect wrong MCH watermark values · 1d7aaa0c
      Daniel Vetter 提交于
      Some early bios versions seem to ship with the wrong tuning values for
      the MCH, possible resulting in pipe underruns under load. Especially
      on DP outputs this can lead to black screen, since DP really doesn't
      like an occasional whack from an underrun.
      
      Unfortunately the registers seem to be locked after boot, so the only
      thing we can do is politely point out issues and suggest a BIOS
      upgrade.
      
      Arthur Runyan pointed us at this issue while discussion DP bugs - thus
      far no confirmation from a bug report yet that it helps. But at least
      some of my machines here have wrong values, so this might be useful in
      understanding bug reports.
      
      v2: After a bit more discussion with Art and Ben we've decided to only
      the check the watermark values, since the OREF ones could be be a
      notch more aggressive on certain machines.
      
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Cc: Runyan, Arthur J <arthur.j.runyan@intel.com>
      Reviewed-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1d7aaa0c
  11. 31 1月, 2013 2 次提交
  12. 28 1月, 2013 2 次提交
  13. 27 1月, 2013 1 次提交
    • P
      drm/i915: fix intel_init_power_wells · fa42e23c
      Paulo Zanoni 提交于
      The current code was wrong in many different ways, so this is a full
      rewrite. We don't have "different power wells for different parts of
      the GPU", we have a single power well, but we have multiple registers
      that can be used to request enabling/disabling the power well. So
      let's be a good citizen and only use the register we're suppose to
      use, except when we're loading the driver, where we clear the request
      made by the BIOS.
      
      If any of the registers is requesting the power well to be enabled, it
      will be enabled. If none of the registers is requesting the power well
      to be enabled, it will be disabled.
      
      For now we're just forcing the power well to be enabled, but in the
      next commits we'll change this.
      
      V2:
        - Remove debug messages that could be misleading due to possible
          race conditions with KVMr, Debug and BIOS.
        - Don't wait on disabling: after a conversaion with a hardware
          engineer we discovered that the "restriction" on bit 31 is just
          for the "enable" case, and we don't even need to wait on the
          "disable" case.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      fa42e23c
  14. 17 1月, 2013 1 次提交
    • J
      drm/i915: fix FORCEWAKE posting reads · b5144075
      Jani Nikula 提交于
      We stopped reading FORCEWAKE for posting reads in
      
      commit 8dee3eea
      Author: Ben Widawsky <ben@bwidawsk.net>
      Date:   Sat Sep 1 22:59:50 2012 -0700
      
          drm/i915: Never read FORCEWAKE
      
      and started using something from the same cacheline instead. On the
      bug reporter's machine this broke entering rc6 states after a
      suspend/resume cycle. It turns out reading ECOBUS as posting read
      worked fine, while GTFIFODBG did not, preventing RC6 states after
      suspend/resume per the bug report referenced below. It's not entirely
      clear why, but clearly GTFIFODBG was nowhere near the same cacheline
      or address range as FORCEWAKE.
      
      Trying out various registers for posting reads showed that all tested
      registers for which NEEDS_FORCE_WAKE() (in i915_drv.c) returns true
      work. Conversely, most (but not quite all) registers for which
      NEEDS_FORCE_WAKE() returns false do not work. Details in the referenced
      bug.
      
      Based on the above, add posting reads on ECOBUS where GTFIFODBG was
      previously relied on.
      
      In true cargo cult spirit, add posting reads for FORCEWAKE_VLV writes as
      well, but instead of ECOBUS, use FORCEWAKE_ACK_VLV which is in the same
      address range as FORCEWAKE_VLV.
      
      v2: Add more details to the commit message. No functional changes.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=52411Reported-and-tested-by: NAlexander Bersenev <bay@hackerdom.ru>
      CC: Ben Widawsky <ben@bwidawsk.net>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@vger.kernel.org
      [danvet: add cc: stable and make the commit message a bit clearer that
      this is a regression fix and what exactly broke.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b5144075
  15. 08 1月, 2013 1 次提交
  16. 18 12月, 2012 1 次提交
  17. 17 12月, 2012 5 次提交
  18. 11 12月, 2012 1 次提交
    • T
      drm/i915: Fix shifted screen on top of LVDS on IVY laptop · 335c07b7
      Takashi Iwai 提交于
      The commit [23670b32: drm/i915: CPT+ pch transcoder workaround]
      caused a regression on some HP laptops with IvyBridge.  The whole
      laptop screen is shifted downward for a few pixels constantly.
      The problem appears only on LVDS while DP and VGA seem unaffected.
      Also, the problem disappears once when go and back from S3.
      (S4 resume still shows the same problem.)
      
      This patch revives the minimum part the commit above dropped.
      For fixing this regression, only the setup of CHICKEN2 bit in
      cpt_init_clock_gating() is needed.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      335c07b7
  19. 05 12月, 2012 1 次提交
  20. 01 12月, 2012 1 次提交
    • C
      drm/i915: Delay allocation of stolen space for FBC · 11be49eb
      Chris Wilson 提交于
      As FBC is commonly disabled due to limitations of the chipset upon
      output configurations, on many systems FBC is never enabled. For those
      systems, it is advantageous to make use of the stolen memory for other
      objects and so we defer allocation of the FBC chunk until we actually
      require it. This increases the likelihood of that allocation failing,
      but that in turns means that we are already taking advantage of the
      stolen memory!
      
      As well as delaying the allocation from driver initialisation until the
      first use of FBC, we also return the stolen block after we finish using
      it - allowing greater flexibility in our usage of stolen space. A side
      effect of this is that we can then attempt to allocate only the required
      amount of space (with a little slack to reduce reallocation rate and
      avoid fragmentation).
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      11be49eb
  21. 29 11月, 2012 1 次提交
  22. 26 11月, 2012 1 次提交
    • C
      Revert "drm/i915: enable rc6 on ilk again" · 6567d748
      Chris Wilson 提交于
      Even with the cumulative set of ilk w/a, rc6 is demonstrably still
      failing and causing GPU hangs as found by Peter Wu. So we need to disable
      it again until it is stable.
      
      This reverts
      
      commit 456470eb
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Wed Aug 8 23:35:40 2012 +0200
      
          drm/i915: enable rc6 on ilk again
      
      and the follow-on
      
      commit cd7988ee
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sun Aug 26 20:33:18 2012 +0200
      
          drm/i915: disable rc6 on ilk when vt-d is enabled
      
      Note: The situation around the gen4/5 gpu hangs that cropped up in 3.7
      is rather strange. Most useful bisects have lead to
      
      commit 6c085a72
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Mon Aug 20 11:40:46 2012 +0200
      
          drm/i915: Track unbound pages
      
      or even later commits that affect the gem bo recycling, which all is
      way past the point where we re-enabled rc6. But somehow
      reverting/disabling those commits doesn't help, but disabling rc6 at
      least helps for many hangs on ilk. Obviously it doesn't change
      anything at all on gen4, and there are still strange issues left on
      gen5 (which we unfortunately can't readily reproduce).
      
      Also, the error_state signature of the hangs which can be fixed with
      this patch look remarkably different to those which seem to be
      unaffected by the rc6 settings: The rc6 hangs are in the ring,
      somewhere in the MI_FLUSH/PIPE_CONTROL sequence to make ilk coherent,
      wheras all the other hangs tend to be at a random point in the middle
      of the user batch. So it could also be that we have different issues.
      
      Until we grow more clue, this at least helps some users.
      Reported-by: NPeter Wu <lekensteyn@gmail.com>
      References: https://bugs.freedesktop.org/show_bug.cgi?id=55984Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Added note with some more details about the gen4/5 3.7
      gpu hang regression.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6567d748
  23. 22 11月, 2012 3 次提交