1. 19 12月, 2012 2 次提交
    • C
      drm: Export routines for inserting preallocated nodes into the mm manager · b8103450
      Chris Wilson 提交于
      Required by i915 in order to avoid the allocation in the middle of
      manipulating the drm_mm lists.
      
      Use a pair of stubs to preserve the existing EXPORT_SYMBOLs for
      backporting; to be removed later.
      
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      [danvet: bikeshedded-away the atomic parameter, it's not yet used
      anywhere.]
      Acked-by: NDave Airlie <airlied@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b8103450
    • D
      drm/i915: don't disable disconnected outputs · b0a2658a
      Daniel Vetter 提交于
      This piece of neat lore has been ported painstakingly and bug-for-bug
      compatible from the old crtc helper code.
      
      Imo it's utter nonsense.
      
      If you disconnected a cable and before you reconnect it, userspace (or
      the kernel) does an set_crtc call, this will result in that connector
      getting disabled. Which will result in a nice black screen when
      plugging in the cable again.
      
      There's absolutely no reason the kernel does such policy enforcements
      - if userspace tries to set up a mode on something disconnected we
      might fail loudly (since the dp link training fails), but silently
      adjusting the output configuration behind userspace's back is a recipe
      for disaster. Specifically I think that this could explain some of our
      MI_WAIT hangs around suspend, where userspace issues a scanline wait
      on a disable pipe. This mechanisims here could explain how that pipe
      got disabled without userspace noticing.
      
      Note that this fixes a NULL deref at BIOS takeover when the firmware
      sets up a disconnected output in a clone configuration with a
      connected output on the 2nd pipe: When doing the full modeset we don't
      have a mode for the 2nd pipe and OOPS. On the first pipe this doesn't
      matter, since at boot-up the fbdev helpers will set up the choosen
      configuration on that on first. Since this is now the umptenth bug
      around handling this imo brain-dead semantics correctly, I think it's
      time to kill it and see whether there's any userspace out there which
      relies on this.
      
      It also nicely demonstrates that we have a tiny window where DP
      hotplug can still kill the driver.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58396
      Cc: stable@vger.kernel.org
      Tested-by: NPeter Ujfalusi <peter.ujfalusi@gmail.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b0a2658a
  2. 18 12月, 2012 2 次提交
    • D
      drm/i915: Implement workaround for broken CS tlb on i830/845 · b45305fc
      Daniel Vetter 提交于
      Now that Chris Wilson demonstrated that the key for stability on early
      gen 2 is to simple _never_ exchange the physical backing storage of
      batch buffers I've tried a stab at a kernel solution. Doesn't look too
      nefarious imho, now that I don't try to be too clever for my own good
      any more.
      
      v2: After discussing the various techniques, we've decided to always blit
      batches on the suspect devices, but allow userspace to opt out of the
      kernel workaround assume full responsibility for providing coherent
      batches. The principal reason is that avoiding the blit does improve
      performance in a few key microbenchmarks and also in cairo-trace
      replays.
      Signed-Off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet:
      - Drop the hunk which uses HAS_BROKEN_CS_TLB to implement the ring
        wrap w/a. Suggested by Chris Wilson.
      - Also add the ACTHD check from Chris Wilson for the error state
        dumping, so that we still catch batches when userspace opts out of
        the w/a.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b45305fc
    • D
      drm/i915: Implement WaSetupGtModeTdRowDispatch · 6547fbdb
      Daniel Vetter 提交于
      I'm not really sure, since the w/a entry is as thin on details as
      ever, and Bspec doesn't say anything about it. But I've figured only
      dispatching to rows 0&1 instead of all four should be the right thing
      for GT1.
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      [danvet: Add the missing snb server GT1 to the check, spotted by Chris
      Wilson.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6547fbdb
  3. 17 12月, 2012 5 次提交
  4. 14 12月, 2012 1 次提交
  5. 11 12月, 2012 2 次提交
    • 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
    • D
      drm/i915: disable cpt phase pointer fdi rx workaround · 539526b4
      Daniel Vetter 提交于
      We've originally added this in
      
      commit 291427f5
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Fri Jul 29 12:42:37 2011 -0700
      
          drm/i915: apply phase pointer override on SNB+ too
      
      and then copy-pasted it over to ivb/ppt. The w/a was originally added
      for ilk/ibx in
      
      commit 5b2adf89
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Thu Oct 7 16:01:15 2010 -0700
      
          drm/i915: add Ironlake clock gating workaround for FDI link training
      
      and fixed up a bit in
      
      commit 6f06ce18
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Tue Jan 4 15:09:38 2011 -0800
      
          drm/i915: set phase sync pointer override enable before setting phase sync pointer
      
      It turns out that this w/a isn't actually required on cpt/ppt and
      positively harmful on ivb/ppt when using fdi B/C links - it results in
      a black screen occasionally, with seemingfully everything working as
      it should. The only failure indication I've found in the hw is that
      eventually (but not right after the modeset completes) a pipe underrun
      is signalled.
      
      Big thanks to Arthur Runyan for all the ideas for registers to check
      and changes to test, otherwise I couldn't ever have tracked this down!
      
      Cc: "Runyan, Arthur J" <arthur.j.runyan@intel.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      539526b4
  6. 10 12月, 2012 3 次提交
  7. 08 12月, 2012 2 次提交
  8. 06 12月, 2012 2 次提交
    • C
      drm/i915: Close race between processing unpin task and queueing the flip · e7d841ca
      Chris Wilson 提交于
      Before queuing the flip but crucially after attaching the unpin-work to
      the crtc, we continue to setup the unpin-work. However, should the
      hardware fire early, we see the connected unpin-work and queue the task.
      The task then promptly runs and unpins the fb before we finish taking
      the required references or even pinning it... Havoc.
      
      To close the race, we use the flip-pending atomic to indicate when the
      flip is finally setup and enqueued. So during the flip-done processing,
      we can check more accurately whether the flip was expected.
      
      v2: Add the appropriate mb() to ensure that the writes to the page-flip
      worker are complete prior to marking it active and emitting the MI_FLIP.
      On the read side, the mb should be enforced by the spinlocks.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@vger.kernel.org
      [danvet: Review the barriers a bit, we need a write barrier both
      before and after updating ->pending. Similarly we need a read barrier
      in the interrupt handler both before and after reading ->pending. With
      well-ordered irqs only one barrier in each place should be required,
      but since this patch explicitly sets out to combat spurious interrupts
      with is staged activation of the unpin work we need to go full-bore on
      the barriers, too. Discussed with Chris Wilson on irc and changes
      acked by him.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e7d841ca
    • D
      drm/i915: fixup l3 parity sysfs access check · ebf69cb8
      Daniel Vetter 提交于
      When l3 parity support for Haswell was enabled in
      
      commit f27b9265
      Author: Ben Widawsky <benjamin.widawsky@intel.com>
      Date:   Tue Jul 24 20:47:32 2012 -0700
      
          drm/i915: Expand DPF support to Haswell
      
      no one noticed that the patch which introduced this macro
      
      commit e1ef7cc2
      Author: Ben Widawsky <benjamin.widawsky@intel.com>
      Date:   Tue Jul 24 20:47:31 2012 -0700
      
          drm/i915: Macro to determine DPF support
      
      missed one spot. Fix this.
      
      Cc: Ben Widawsky <benjamin.widawsky@intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57441Reviewed-by: NBen Widawsky <benjamin.widawsky@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ebf69cb8
  9. 05 12月, 2012 2 次提交
  10. 04 12月, 2012 2 次提交
  11. 29 11月, 2012 12 次提交
  12. 24 11月, 2012 1 次提交
  13. 23 11月, 2012 2 次提交
  14. 22 11月, 2012 2 次提交