1. 02 6月, 2018 6 次提交
  2. 01 6月, 2018 16 次提交
  3. 31 5月, 2018 2 次提交
  4. 30 5月, 2018 2 次提交
  5. 29 5月, 2018 5 次提交
  6. 26 5月, 2018 2 次提交
  7. 25 5月, 2018 7 次提交
    • V
      drm/i915: Consult VBT "LVDS config" bits to determine whether internal LVDS is present · ca3b3fa3
      Ville Syrjälä 提交于
      VBT seems to have some bits to tell us whether the internal LVDS port
      has something hooked up. In theory one might expect the VBT to not have
      a child device for the LVDS port if there's no panel hooked up, but
      in practice many VBTs still add the child device. The "LVDS config" bits
      seem more reliable though, so let's check those.
      
      So far we've used the "LVDS config" bits to check for eDP support on
      ILK+, and disable the internal LVDS when the value is 3. That value
      is actually documented as "Both internal LVDS and SDVO LVDS", but in
      practice it looks to mean "eDP" on all the ilk+ VBTs I've seen. So let's
      keep that interpretation, but for pre-ILK we will consider the value
      3 to also indicate the presence of the internal LVDS.
      
      Currently we have 25 DMI matches for the "no internal LVDS" quirk. In an
      effort to reduce that let's toss in a WARN when the DMI match and VBT
      both tell us that the internal LVDS is not present. The hope is that
      people will report a bug, and then we can just nuke the corresponding
      entry from the DMI quirk list. Credits to Jani for this idea.
      
      v2: Split the basic int_lvds_support thing to a separate patch (Jani)
      v3: Rebase
      v4: Limit this to VBT version >= 134
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Ondrej Zary <linux@rainbow-software.org>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180518150138.18361-1-ville.syrjala@linux.intel.comReviewed-by: NJani Nikula <jani.nikula@intel.com>
      ca3b3fa3
    • V
      drm/i915: Try to suppress more spurious PCH underruns on ILK-IVB · ea80a661
      Ville Syrjälä 提交于
      My ILK seems to generate a spurious PCH underrun with most interlaced
      HDMI modes. Add a second vblank wait to avoid it.
      
      We have seen some spurious PCH underruns still in CI as well, some
      of which seem to be progressive DP. The logs also point towards some
      spurious underrins with progressive HDMI on SNB. While I don't have
      a solid explanation for those let's try to kill all the birds with one
      stone and always do the double wait.
      
      Buzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106387Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180524190406.2973-1-ville.syrjala@linux.intel.comAcked-by: NChris Wilson <chris@chris-wilson.co.uk>
      ea80a661
    • V
      drm/i915: Initialize panel_pipe to INVALID_PIPE · 10ed55e4
      Ville Syrjälä 提交于
      We can always figure out which pipe is affected by the panel power
      sequencer lockout mechanism. So no need for the pipe A fallback
      anymore. The only case we may have to worry about is an invalid
      port select in the power sequencer, but INVALID_PIPE is just fine
      in that case. We'll get the WARN about the bogus pps port select
      anyway.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Suggested-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180523145718.22932-1-ville.syrjala@linux.intel.comReviewed-by: NJani Nikula <jani.nikula@intel.com>
      10ed55e4
    • C
      drm/i915: Prepare GEM for suspend earlier · 73b66f87
      Chris Wilson 提交于
      In order to prepare the GPU for sleeping, we may want to submit commands
      to it. This is a complicated process that may even require some swapping
      in from shmemfs, if the GPU was in the wrong state. As such, we need to
      do this preparation step synchronously before the rest of the system has
      started to turn off (e.g. swapin fails if scsi is suspended).
      Fortunately, we are provided with a such a hook, pm_ops.prepare().
      
      v2: Compile cleanup
      v3: Fewer asserts, fewer problems?
      
      v4: Ville pointed out that in some circumstances (such as switching off
      the overlay) the display code may issue a GPU request. This is
      unexpected, and will result in us going to sleep with us believing the
      GPU is still awake (though all user work has been saved). Add a comment
      to remind our future selves of what trouble brews.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106640
      Testcase: igt/drv_suspend after igt/gem_tiled_swapping
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180525092629.1456-1-chris@chris-wilson.co.uk
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      73b66f87
    • C
      drm/i915/execlists: Wait for ELSP submission on restart · fe25f304
      Chris Wilson 提交于
      After a reset, we will ensure that there is at least one request
      submitted to HW to ensure that a context is loaded for powersaving.
      Let's wait for this submission via a tasklet to complete before we drop
      our forcewake, ensuring the system is ready for rc6 before we let it
      possibly sleep.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180522101937.7738-1-chris@chris-wilson.co.ukReviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      fe25f304
    • C
      drm/i915: Flush the ring stop bit after clearing RING_HEAD in reset · 9a4dc803
      Chris Wilson 提交于
      Inside the live_hangcheck (reset) selftests, we occasionally see
      failures like
      
      <7>[  239.094840] i915_gem_set_wedged rcs0
      <7>[  239.094843] i915_gem_set_wedged 	current seqno 19a98, last 19a9a, hangcheck 0 [5158 ms]
      <7>[  239.094846] i915_gem_set_wedged 	Reset count: 6239 (global 1)
      <7>[  239.094848] i915_gem_set_wedged 	Requests:
      <7>[  239.095052] i915_gem_set_wedged 		first  19a99 [e8c:5f] prio=1024 @ 5159ms: (null)
      <7>[  239.095056] i915_gem_set_wedged 		last   19a9a [e81:1a] prio=139 @ 5159ms: igt/rcs0[5977]/1
      <7>[  239.095059] i915_gem_set_wedged 		active 19a99 [e8c:5f] prio=1024 @ 5159ms: (null)
      <7>[  239.095062] i915_gem_set_wedged 		[head 0220, postfix 0280, tail 02a8, batch 0xffffffff_ffffffff]
      <7>[  239.100050] i915_gem_set_wedged 		ring->start:  0x00283000
      <7>[  239.100053] i915_gem_set_wedged 		ring->head:   0x000001f8
      <7>[  239.100055] i915_gem_set_wedged 		ring->tail:   0x000002a8
      <7>[  239.100057] i915_gem_set_wedged 		ring->emit:   0x000002a8
      <7>[  239.100059] i915_gem_set_wedged 		ring->space:  0x00000f10
      <7>[  239.100085] i915_gem_set_wedged 	RING_START: 0x00283000
      <7>[  239.100088] i915_gem_set_wedged 	RING_HEAD:  0x00000260
      <7>[  239.100091] i915_gem_set_wedged 	RING_TAIL:  0x000002a8
      <7>[  239.100094] i915_gem_set_wedged 	RING_CTL:   0x00000001
      <7>[  239.100097] i915_gem_set_wedged 	RING_MODE:  0x00000300 [idle]
      <7>[  239.100100] i915_gem_set_wedged 	RING_IMR: fffffefe
      <7>[  239.100104] i915_gem_set_wedged 	ACTHD:  0x00000000_0000609c
      <7>[  239.100108] i915_gem_set_wedged 	BBADDR: 0x00000000_0000609d
      <7>[  239.100111] i915_gem_set_wedged 	DMA_FADDR: 0x00000000_00283260
      <7>[  239.100114] i915_gem_set_wedged 	IPEIR: 0x00000000
      <7>[  239.100117] i915_gem_set_wedged 	IPEHR: 0x02800000
      <7>[  239.100120] i915_gem_set_wedged 	Execlist status: 0x00044052 00000002
      <7>[  239.100124] i915_gem_set_wedged 	Execlist CSB read 5 [5 cached], write 5 [5 from hws], interrupt posted? no, tasklet queued? no (enabled)
      <7>[  239.100128] i915_gem_set_wedged 		ELSP[0] count=1, ring->start=00283000, rq: 19a99 [e8c:5f] prio=1024 @ 5164ms: (null)
      <7>[  239.100132] i915_gem_set_wedged 		ELSP[1] count=1, ring->start=00257000, rq: 19a9a [e81:1a] prio=139 @ 5164ms: igt/rcs0[5977]/1
      <7>[  239.100135] i915_gem_set_wedged 		HW active? 0x5
      <7>[  239.100250] i915_gem_set_wedged 		E 19a99 [e8c:5f] prio=1024 @ 5164ms: (null)
      <7>[  239.100338] i915_gem_set_wedged 		E 19a9a [e81:1a] prio=139 @ 5164ms: igt/rcs0[5977]/1
      <7>[  239.100340] i915_gem_set_wedged 		Queue priority: 139
      <7>[  239.100343] i915_gem_set_wedged 		Q 0 [e98:19] prio=132 @ 5164ms: igt/rcs0[5977]/8
      <7>[  239.100346] i915_gem_set_wedged 		Q 0 [e84:19] prio=121 @ 5165ms: igt/rcs0[5977]/2
      <7>[  239.100349] i915_gem_set_wedged 		Q 0 [e87:19] prio=82 @ 5165ms: igt/rcs0[5977]/3
      <7>[  239.100352] i915_gem_set_wedged 		Q 0 [e84:1a] prio=44 @ 5164ms: igt/rcs0[5977]/2
      <7>[  239.100356] i915_gem_set_wedged 		Q 0 [e8b:19] prio=20 @ 5165ms: igt/rcs0[5977]/4
      <7>[  239.100362] i915_gem_set_wedged 	drv_selftest [5894] waiting for 19a99
      
      where the GPU saw an arbitration point and idles; AND HAS NOT BEEN RESET!
      The RING_MODE indicates that is idle and has the STOP_RING bit set, so
      try clearing it.
      
      v2: Only clear the bit on restarting the ring, as we want to be sure the
      STOP_RING bit is kept if reset fails on wedging.
      v3: Spot when the ring state doesn't make sense when re-initialising the
      engine and dump it to the logs so that we don't have to wait for an
      error later and try to guess what happened earlier.
      v4: Prepare to print all the unexpected state, not just the first.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180518100933.2239-1-chris@chris-wilson.co.uk
      9a4dc803
    • T
      drm/i915: Forward declare struct intel_context · 8359768c
      Tvrtko Ursulin 提交于
      This is to avoid an error with structure declared in parameter list if the
      include ordering changes.
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180524150621.17332-2-tvrtko.ursulin@linux.intel.com
      8359768c