Patch "drm/i915/gen9: Increase PCODE request timeout to 50ms" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/i915/gen9: Increase PCODE request timeout to 50ms
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-i915-gen9-increase-pcode-request-timeout-to-50ms.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d253371c4c2f5fc2d884ef25f64decd7549aff5aMon Sep 17 00:00:00 2001
From: Imre Deak <[email protected]>
Date: Fri, 24 Feb 2017 16:32:10 +0200
Subject: drm/i915/gen9: Increase PCODE request timeout to 50ms
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Imre Deak <[email protected]>
commit d253371c4c2f5fc2d884ef25f64decd7549aff5a upstream.
After
commit 2c7d0602c815277f7cb7c932b091288710d8aba7
Author: Imre Deak <[email protected]> Date: Mon Dec 5 18:27:37 2016 +0200
drm/i915/gen9: Fix PCODE polling during CDCLK change notification
there is still one report of the CDCLK-change request timing out on a KBL machine, see the Reference link. On that machine the maximum time the request took to succeed was 34ms, so increase the timeout to 50ms.
v2:
- Change timeout from 100 to 50 ms to maintain the current 50 ms limit for atomic waits in the driver. (Chris, Tvrtko)
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=99345
--- drivers/gpu/drm/i915/intel_pm.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
drivers/gpu/drm/i915/intel_pm.c +6 -5
@@ -7960,10 +7960,10 @@ static bool skl_pcode_try_request(struct* @timeout_base_ms: timeout for polling with preemption enabled * * Keep resending the @request to @mbox until PCODE acknowledges it, PCODE -* reports an error or an overall timeout of @timeout_base_ms+10 ms expires. +* reports an error or an overall timeout of @timeout_base_ms+50 ms expires. * The request is acknowledged once the PCODE reply dword equals @reply after * applying @reply_mask. Polling is first attempted with preemption enabled -* for @timeout_base_ms and if this times out for another 10 ms with +* for @timeout_base_ms and if this times out for another 50 ms with * preemption disabled. * * Returns 0 on success, %-ETIMEDOUT in case of a timeout, <0 in case of some
@@ -7999,14 +7999,15 @@ int skl_pcode_request(struct drm_i915_pr* worst case) _and_ PCODE was busy for some reason even after a * (queued) request and @timeout_base_ms delay. As a workaround retry * the poll with preemption disabled to maximize the number of -* requests. Increase the timeout from @timeout_base_ms to 10ms to +* requests. Increase the timeout from @timeout_base_ms to 50ms to * account for interrupts that could reduce the number of these -* requests. +* requests, and for any quirks of the PCODE firmware that delays +* the request completion. */ DRM_DEBUG_KMS ("PCODE timeout, retrying with preemption disabled\n" );WARN_ON_ONCE (timeout_base_ms >3 );preempt_disable (); - ret =wait_for_atomic (COND ,10 ); + ret =wait_for_atomic (COND ,50 );preempt_enable (); out:
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/drm-i915-gen9-increase-pcode-request-timeout-to-50ms.patch