1. 09 1月, 2013 1 次提交
  2. 08 1月, 2013 1 次提交
  3. 19 12月, 2012 2 次提交
    • K
      i915: ensure that VGA plane is disabled · 0fde901f
      Krzysztof Mazur 提交于
      Some broken systems (like HP nc6120) in some cases, usually after LID
      close/open, enable VGA plane, making display unusable (black screen on LVDS,
      some strange mode on VGA output). We used to disable VGA plane only once at
      startup. Now we also check, if VGA plane is still disabled while changing
      mode, and fix that if something changed it.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57434Signed-off-by: NKrzysztof Mazur <krzysiek@podlesie.net>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0fde901f
    • 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
  4. 11 12月, 2012 1 次提交
    • 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
  5. 10 12月, 2012 2 次提交
  6. 08 12月, 2012 1 次提交
  7. 06 12月, 2012 1 次提交
    • 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
  8. 29 11月, 2012 1 次提交
  9. 23 11月, 2012 1 次提交
    • J
      drm/i915: do not default to 18 bpp for eDP if missing from VBT · 9a30a61f
      Jani Nikula 提交于
      commit 500a8cc4
      Author: Zhenyu Wang <zhenyuw@linux.intel.com>
      Date:   Wed Jan 13 11:19:52 2010 +0800
      
          drm/i915: parse eDP panel color depth from VBT block
      
      originally introduced parsing bpp for eDP from VBT, with a default of 18
      bpp if the eDP BIOS data block is not present. Turns out that default seems
      to break the Macbook Pro with retina display, as noted in
      
      commit 4344b813
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Fri Aug 10 11:10:20 2012 +0200
      
          drm/i915: ignore eDP bpc settings from vbt
      
      Since we can't ignore bpc settings from VBT completely after all, get rid
      of the default. Do not clamp eDP to 18 bpp by default if the eDP BDB is
      missing from VBT.
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Tested-by: NHenrik Rydberg <rydberg@euromail.se>
      [danvet: paste in the updated commit message from irc.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9a30a61f
  10. 22 11月, 2012 9 次提交
  11. 13 11月, 2012 1 次提交
  12. 12 11月, 2012 19 次提交