1. 10 6月, 2013 2 次提交
  2. 04 6月, 2013 1 次提交
  3. 03 6月, 2013 3 次提交
    • B
      drm/i915: no lvds quirk for hp t5740 · 45a211d7
      Ben Mesman 提交于
      Last year, a patch was made for the "HP t5740e Thin Client" (see
      http://lists.freedesktop.org/archives/dri-devel/2012-May/023245.html).
      This device reports an lvds panel, but does not really have one.
      
      The predecessor of this device is the "hp t5740", which also does not have
      an lvds panel. This patch will add the same quirk for this device.
      Signed-off-by: NBen Mesman <ben@bnc.nl>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      45a211d7
    • D
      drm/i915: Quirk the pipe A quirk in the modeset state checker · d62cf62a
      Daniel Vetter 提交于
      If we always force the pipe A to on we can't use the hw state to
      decide whether it should be on. Hence quirk the quirk.
      
      The problem is that crtc->active tracks the state of the entire
      display pipe, i.e. including planes, encoders and all. But our hw
      state readout simply looks at the pipe. But with the pipe A quirk we
      force-enable that (together with it's pll). To fix that mismatch we
      have two options:
      - Quirk the checked state to match what our sw tracking states if the
        pipe A quirk is in effect.
      - Improve the hw state readout to not get fooled by the pipe A quirk.
      
      Since we already have similar state clamping in e.g. assert_pipe I've
      opted for the first variant. Also note that we don't really loose any
      state checking: Individual pieces of the abstract crtc pipe are
      checked in the enable/disable functions with the various asssert_*
      checks we have, and the hw state check code doesn't check anything if
      the pipe is off anyway.
      
      v2: Pimp commit message after discussion with Chris and only apply the
      quirk for the quirk if we're checking pipe A. Otherwise we'll miss
      state checking for pipe B on i830M ...
      
      v3: Make the code comment consistent with the improved commit message,
      too (Chris).
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64764
      Cc: stable@vger.kernel.org
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reported-and-Tested-by: mlsemon35@gmail.com (v1)
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d62cf62a
    • D
      drm/i915: Fix spurious -EIO/SIGBUS on wedged gpus · 7abb690a
      Daniel Vetter 提交于
      Chris Wilson noticed that since
      
      commit 1f83fee0 [v3.9]
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Thu Nov 15 17:17:22 2012 +0100
      
          drm/i915: clear up wedged transitions
      
      X can again get -EIO when it does not expect it. And even worse score
      a SIGBUS when accessing gtt mmaps. The established ABI is that we
      _only_ return an -EIO from execbuf - all other ioctls should just
      work. And since the reset code moves all bos out of gpu domains and
      clears out all the last_seqno/ring tracking there really shouldn't be
      any reason for non-execbuf code to ever touch the hw and see an -EIO.
      
      After some extensive discussions we've noticed that these spurios -EIO
      are caused by i915_gem_wait_for_error:
      
      http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg20540.html
      
      That is easy to fix by returning 0 instead of -EIO, since grabbing the
      dev->struct_mutex does not yet mean that we actually want to touch the
      hw. And so there is no reason at all to fail with -EIO.
      
      But that's not the entire since, since often (at least it's easily
      googleable) dmesg indicates that the reset fails and we declare the
      gpu wedged. Then, quite a bit later X wakes up with the "Timed out
      waiting for the gpu reset to complete" DRM_ERROR message in
      wait_for_errror and brings down the desktop with an -EIO/SIGBUS.
      
      So clearly we're missing a wakeup somewhere, since the gpu reset just
      doesn't take 10 seconds to complete. And indeed we're do handle the
      terminally wedged state wrong.
      
      Fix this all up.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=63921
      References: https://bugs.freedesktop.org/show_bug.cgi?id=64073
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7abb690a
  4. 22 5月, 2013 5 次提交
  5. 21 5月, 2013 2 次提交
  6. 08 5月, 2013 2 次提交
    • J
      drm/i915: clear the stolen fb before resuming · 1ffc5289
      Jani Nikula 提交于
      Similar to
      commit 88afe715
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Sun Dec 16 12:15:41 2012 +0000
      
          drm/i915: Clear the stolen fb before enabling
      
      but on the resume path.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=57191Reported-and-tested-by: NNikolay Amiantov <nikoamia@gmail.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@vger.kernel.org (3.9 only)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1ffc5289
    • B
      Revert "drm/i915: Calculate correct stolen size for GEN7+" · c4ae25ec
      Ben Widawsky 提交于
      This reverts commit 03752f5b.
      
      This revert requires a bit of explanation on how I understand things
      work. Internally the architects/designers decide how the stolen encoding
      works. We put it in a doc. BIOS writers take these docs and implement
      it. Driver writers read the doc too, and read the value left by the BIOS
      writers, and then we make magic.
      
      The failing here is that in the docs we had[1] contained two different
      definitions for this register for Gen7. (We have both a PCI register,
      and an MMIO, and each of these were different). At the time [2] of
      03752f5b, we asked the architects what the correct value should be; but
      that doesn't match the reality (BIOS) unfortunately.
      
      So on all machines I can get my hands on, this revert is the right thing
      to do. I've also worked with the product group to confirm that they
      agree this revert is what we should do. People using HW made my "people"
      who both write their own BIOS, and have access to our docs (Apple?).
      Investigations are still ongoing about whether we need to add a list
      of machines needing special handling, but this patch should be the
      right thing for pretty much everyone.
      
      [1] The docs are still wrong on this one. Now instead of two registers with
      two definitions, we have one register with BOTH definitions, progress?
      [2] The open source PRMs have the "wrong" definitions in chapter Volume
      1 part6, section 1.1.12.
      
      This digging was inspired by Paulo.
      
      Cc: Paulo Zanoni <przanoni@gmail.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Acked-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      [danvet: Augment the patch saying that it's still a bit unclear
      whether there are any machines out there with "wrong" firmware and
      whether we need to add a list to handle them specially.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c4ae25ec
  7. 04 5月, 2013 2 次提交
    • I
      drm/i915: hsw: fix link training for eDP on port-A · 3ab9c637
      Imre Deak 提交于
      According to BSpec the link training sequence for eDP on HSW port-A
      should be as follows:
      
      1. link training: clock recovery
      2. link training: equalization
      3. link training: set idle transmission mode
      4. display pipe enable
      5. link training: disable (set normal mode)
      
      Contrary to this at the moment we don't do step 3. and we do step 5.
      before step 4. Fix this by setting idle transmission mode for eDP at
      the end of intel_dp_complete_link_train and adding a new
      intel_dp_stop_link_training function to disable link training. With
      these changes we'll end up with the following functions corresponding
      to the above steps:
      
      intel_dp_start_link_train    -> step 1.
      intel_dp_complete_link_train -> step 2., step 3.
      intel_dp_stop_link_train     -> step 5.
      
      For port-A we'll call intel_dp_stop_link_train only after enabling the
      pipe, for everything else we'll call it right after
      intel_dp_complete_link_train to preserve the current behavior.
      
      Tested on HSW/HSW-ULT.
      
      In v2:
      - Due to a HW issue we must set idle transmission mode for port-A too
        before enabling the pipe. Thanks for Arthur Runyan for explaining
        this.
      - Update the patch subject to make it clear that it's an eDP fix, DP is
        not affected.
      
      v3:
      - rename intel_dp_link_train() to intel_dp_set_link_train(), use 'val'
        instead 'l' as var name. (Paulo)
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Tested-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3ab9c637
    • D
      Revert "drm/i915: revert eDP bpp clamping code changes" · 657445fe
      Daniel Vetter 提交于
      This reverts commit 57c21963.
      
      It's an ugly hack for a Haswell SDV platform where the vbt doesn't
      seem to fully agree with the panel. Since it seems to cause issues on
      real eDP platform let's just kill this hack again.
      Reported-and-tested-by: NJosh Boyer <jwboyer@gmail.com>
      References: https://lkml.org/lkml/2013/5/3/467
      Cc: Paulo Zanoni <przanoni@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      657445fe
  8. 02 5月, 2013 1 次提交
  9. 01 5月, 2013 2 次提交
  10. 30 4月, 2013 1 次提交
  11. 27 4月, 2013 1 次提交
    • Z
      drm/i915: correct the calculation of first_pd_entry_in_global_pt · 43b27290
      Zhang, Xiong Y 提交于
      When ppgtt is enabled, dev_priv->gtt.total has excluded the gtt space
      occupied by ppgtt table in i915_gem_init_global_gtt() function. So the
      calculation of first_pd_entry_in_global_pt doesn't need to subtract
      I915_PPGTT_PD_ENTRIES again. Or else PPGTT directory table will be
      destroyed by global gtt allocation.
      
      This regression has been introduced in
      
      commit a54c0c27
      Author: Ben Widawsky <ben@bwidawsk.net>
      Date:   Thu Jan 24 14:45:00 2013 -0800
      
          drm/i915: remove intel_gtt structure
      
      The breakage is pretty subtile since the old gtt_total_entries
      included the pde range, whereas the new on did not.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: Xiong Zhang<xiong.y.zhang@intel.com>
      [danvet: Add regression citation and cc: stable. Thanks to Chris for
      correcting my wrong guess about which commit broke things.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      43b27290
  12. 24 4月, 2013 2 次提交
  13. 23 4月, 2013 1 次提交
    • D
      drm/i915: avoid full modeset when changing the color range properties · ae4edb80
      Daniel Vetter 提交于
      Automatic color range selection was added in
      
      commit 55bc60db
      Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Date:   Thu Jan 17 16:31:29 2013 +0200
      
          drm/i915: Add "Automatic" mode for the "Broadcast RGB" property
      
      but that removed the check to avoid a full modeset if the value is
      unchanged. Unfortunately X sets all properties with their current
      value at start-up, resulting in some ugly flickering which shouldn't
      be there.
      
      v2: Change old_range from bool to uint32_t, spotted by Ville.
      
      v3: Actually git add everything ;-)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ae4edb80
  14. 19 4月, 2013 1 次提交
  15. 18 4月, 2013 14 次提交