[Intel-gfx] [PATCH] drm/i915: Drop the msleep parameter to wait_for()

Peter Clifton pcjc2 at cam.ac.uk
Tue Aug 24 01:16:37 CEST 2010


On Mon, 2010-08-23 at 17:56 +0100, Chris Wilson wrote:
> Jesse's feedback from using the wait_for() macro was that the msleep
> argument was that it was superfluous and made the macro more difficult
> to use and to read. As the actually amount of time to sleep is not
> critical, the crucial part is to sleep and let the processor schedule
> something else whilst we wait for the event, replace the argument with a
> hardcoded value.


I noticed that the patch changes the semantics of some of the wait_for
calls. Previously, many were called with a zero msleep parameter -
meaning the call would not msleep. With this patch, the cases below will
now msleep(1), rather than not msleep'ing at all.


> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 6ccb797..ecf2d41 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -993,7 +993,7 @@ void intel_wait_for_vblank(struct drm_device *dev, int pipe)
>  	/* Wait for vblank interrupt bit to set */
>  	if (wait_for((I915_READ(pipestat_reg) &
              ^___ wait_for_atomic??
>  		      PIPE_VBLANK_INTERRUPT_STATUS) == 0,
> -		     50, 0))
> +		     50))
>  		DRM_DEBUG_KMS("vblank wait timed out\n");
>  }
>  
> @@ -1092,7 +1092,7 @@ void i8xx_disable_fbc(struct drm_device *dev)
>  	I915_WRITE(FBC_CONTROL, fbc_ctl);
>  
>  	/* Wait for compressing bit to clear */
> -	if (wait_for((I915_READ(FBC_STATUS) & FBC_STAT_COMPRESSING) == 0, 10, 0)) {
> +	if (wait_for((I915_READ(FBC_STATUS) & FBC_STAT_COMPRESSING) == 0, 10)) {
                ^___ wait_for_atomic?

>  		DRM_DEBUG_KMS("FBC idle timed out\n");
>  		return;
>  	}
> @@ -2115,7 +2115,7 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
>  			I915_WRITE(transconf_reg, temp | TRANS_ENABLE);
>  			I915_READ(transconf_reg);
>  
> -			if (wait_for(I915_READ(transconf_reg) & TRANS_STATE_ENABLE, 10, 0))
> +			if (wait_for(I915_READ(transconf_reg) & TRANS_STATE_ENABLE, 10))
                                ^___ wait_for_atomic?

> @@ -5553,7 +5553,7 @@ void ironlake_enable_drps(struct drm_device *dev)
>  	rgvmodectl |= MEMMODE_SWMODE_EN;
>  	I915_WRITE(MEMMODECTL, rgvmodectl);
>  
> -	if (wait_for((I915_READ(MEMSWCTL) & MEMCTL_CMD_STS) == 0, 1, 0))
> +	if (wait_for((I915_READ(MEMSWCTL) & MEMCTL_CMD_STS) == 0, 10))
                ^___ wait_for_atomic?

>  		DRM_ERROR("stuck trying to change perf mode\n");
>  	msleep(1);

 
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index b819c10..c9b62fe 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -114,7 +114,7 @@ static void intel_lvds_set_power(struct drm_device *dev, bool on)
>  
>  		I915_WRITE(ctl_reg, I915_READ(ctl_reg) |
>  			   POWER_TARGET_ON);
> -		if (wait_for(I915_READ(status_reg) & PP_ON, 1000, 0))
> +		if (wait_for(I915_READ(status_reg) & PP_ON, 1000))
                          ^___ wait_for_atomic?

>  			DRM_ERROR("timed out waiting to enable LVDS pipe");
>  
>  		intel_lvds_set_backlight(dev, dev_priv->backlight_duty_cycle);
> @@ -123,7 +123,7 @@ static void intel_lvds_set_power(struct drm_device *dev, bool on)
>  
>  		I915_WRITE(ctl_reg, I915_READ(ctl_reg) &
>  			   ~POWER_TARGET_ON);
> -		if (wait_for((I915_READ(status_reg) & PP_ON) == 0, 1000, 0))
> +		if (wait_for((I915_READ(status_reg) & PP_ON) == 0, 1000))
                         ^___ wait_for_atomic?


-- 
Peter Clifton

Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA

Tel: +44 (0)7729 980173 - (No signal in the lab!)
Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me)




More information about the Intel-gfx mailing list