diff mbox series

drm/i915/display: Increase the DDI idle timeout to 500us

Message ID 20200319092034.695709-1-arkadiusz.hiler@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/display: Increase the DDI idle timeout to 500us | expand

Commit Message

Arkadiusz Hiler March 19, 2020, 9:20 a.m. UTC
Bspec says that we should timeout after 500us. Let's match this in the
code. It may help with few of the timeouts we see here and there.

Bspec: 22243, 49190
Issue: https://gitlab.freedesktop.org/drm/intel/issues/1069
Suggested-by: Uma Shankar <uma.shankar@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Arkadiusz Hiler March 19, 2020, 9:30 a.m. UTC | #1
On Thu, Mar 19, 2020 at 11:20:34AM +0200, Arkadiusz Hiler wrote:
> Bspec says that we should timeout after 500us. Let's match this in the
> code. It may help with few of the timeouts we see here and there.

Plese disregard. it's 500us when waiting on non-idle and only 8 (16
for BXT) for back to idle.
Ville Syrjälä March 19, 2020, 4:14 p.m. UTC | #2
On Thu, Mar 19, 2020 at 11:30:03AM +0200, Arkadiusz Hiler wrote:
> On Thu, Mar 19, 2020 at 11:20:34AM +0200, Arkadiusz Hiler wrote:
> > Bspec says that we should timeout after 500us. Let's match this in the
> > code. It may help with few of the timeouts we see here and there.
> 
> Plese disregard. it's 500us when waiting on non-idle and only 8 (16
> for BXT) for back to idle.

Could probably convert to intel_de_wait_for...() regardless. 1ms vs. 16us
isn't going to kill us in modeset code. The exact bspec value can be
kept as a comment.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 73d0f4648c06..28650797fc2f 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1097,7 +1097,7 @@  static void intel_wait_ddi_buf_idle(struct drm_i915_private *dev_priv,
 	i915_reg_t reg = DDI_BUF_CTL(port);
 	int i;
 
-	for (i = 0; i < 16; i++) {
+	for (i = 0; i < 500; i++) {
 		udelay(1);
 		if (intel_de_read(dev_priv, reg) & DDI_BUF_IS_IDLE)
 			return;