1. 19 Dec, 2016 4 commits
  2. 18 Dec, 2016 7 commits
  3. 16 Dec, 2016 8 commits
  4. 15 Dec, 2016 1 commit
  5. 14 Dec, 2016 3 commits
  6. 13 Dec, 2016 9 commits
  7. 12 Dec, 2016 3 commits
  8. 10 Dec, 2016 1 commit
  9. 09 Dec, 2016 1 commit
  10. 08 Dec, 2016 3 commits
    • Imre Deak's avatar
      drm/i915/gen9: Fix PCODE polling during SAGV disabling · b3b8e999
      Imre Deak authored
      According to the previous patch, it's possible atm that we call
      intel_do_sagv_disable() only once during the 1ms period and time out if
      that call fails. As opposed to this the spec says that we need to keep
      retrying this request for a 1ms duration, so let's do this similarly to
      the CDCLK change notification request.
      
      v4-5:
      - Rebased on the reply_mask, reply change.
      v6:
      - Remove w/s change. (Lyude)
      - Rebased on the timeout_base argument change.
      
      Cc: Lyude <cpaul@redhat.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Fixes: 656d1b89 ("drm/i915/skl: Add support for the SAGV, fix underrun hangs")
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: Lyude <lyude@redhat.com> (v4)
      Link: http://patchwork.freedesktop.org/patch/msgid/1480955258-26311-2-git-send-email-imre.deak@intel.com
      b3b8e999
    • Imre Deak's avatar
      drm/i915/gen9: Fix PCODE polling during CDCLK change notification · a0b8a1fe
      Imre Deak authored
      commit 848496e5
      Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Date:   Wed Jul 13 16:32:03 2016 +0300
      
          drm/i915: Wait up to 3ms for the pcu to ack the cdclk change request on SKL
      
      increased the timeout to match the spec, but we still see a timeout on
      at least one SKL. A CDCLK change request following the failed one will
      succeed nevertheless.
      
      I could reproduce this problem easily by running kms_pipe_crc_basic in a
      loop. In all failure cases _wait_for() was pre-empted for >3ms and so in
      the worst case - when the pre-emption happened right after calculating
      timeout__ in _wait_for() - we called skl_cdclk_wait_for_pcu_ready() only
      once which failed and so _wait_for() timed out. As opposed to this the
      spec says to keep retrying the request for at most a 3ms period.
      
      To fix this send the first request explicitly to guarantee that there is
      3ms between the first and last request. Though this matches the spec, I
      noticed that in rare cases this can still time out if we sent only a few
      requests (in the worst case 2) _and_ PCODE is busy for some reason even
      after a previous request and a 3ms delay. To work around this retry the
      polling with pre-emption disabled to maximize the number of requests.
      Also increase the timeout to 10ms to account for interrupts that could
      reduce the number of requests. With this change I couldn't trigger
      the problem.
      
      v2:
      - Use 1ms poll period instead of 10us. (Chris)
      v3:
      - Poll with pre-emption disabled to increase the number of request
        attempts. (Ville, Chris)
      - Factor out a helper to poll, it's also needed by the next patch.
      v4:
      - Pass reply_mask, reply to skl_pcode_request(), instead of assuming the
        reply is generic. (Ville)
      v5:
      - List the request specific timeout values as code comment. (Ville)
      v6:
      - Try the poll first with preemption enabled.
      - Add code comment about first request being queued by PCODE. (Art)
      - Add timeout_base_ms argument. (Ville)
      v7:
      - Clarify code comment about first queued request. (Chris)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Art Runyan <arthur.j.runyan@intel.com>
      Cc: <stable@vger.kernel.org> # v4.2- : 3b2c1710 : drm/i915: Wait up to 3ms
      Cc: <stable@vger.kernel.org> # v4.2-
      Fixes: 5d96d8af ("drm/i915/skl: Deinit/init the display at suspend/resume")
      Reference: https://bugs.freedesktop.org/show_bug.cgi?id=97929
      Testcase: igt/kms_pipe_crc_basic/suspend-read-crc-pipe-B
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/1480955258-26311-1-git-send-email-imre.deak@intel.com
      a0b8a1fe
    • Tvrtko Ursulin's avatar
      drm/i915: Use DRM_DEV_ERROR in i915_driver_load · 87a6752c
      Tvrtko Ursulin authored
      Now that it is available we don't have to open code a similar
      error message ourselves.
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481051053-29783-1-git-send-email-tvrtko.ursulin@linux.intel.com
      87a6752c