From: Peter Clifton <pcjc2@cam.ac.uk>
To: Chris Wilson <chris@chris-wilson.co.uk>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: Drop the msleep parameter to wait_for()
Date: Tue, 24 Aug 2010 00:16:37 +0100 [thread overview]
Message-ID: <1282605397.29375.7.camel@pcjc2lap> (raw)
In-Reply-To: <1282582569-24138-1-git-send-email-chris@chris-wilson.co.uk>
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)
next prev parent reply other threads:[~2010-08-23 23:16 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-22 11:05 More patches (resend) Chris Wilson
2010-08-22 11:05 ` [PATCH 01/29] drm/i915: unload: fix intel dp encoder cleanup Chris Wilson
2010-08-22 11:05 ` [PATCH 02/29] drm/i915: unload: fix error_work races Chris Wilson
2010-08-22 11:05 ` [PATCH 03/29] drm/i915: unload: fix hotplug_work races Chris Wilson
2010-08-22 11:05 ` [PATCH 04/29] drm/i915: unload: don't leak error state Chris Wilson
2010-08-22 11:05 ` [PATCH 05/29] drm/i915: unload: fix idle_timer/idle_work races Chris Wilson
2010-08-22 11:05 ` [PATCH 06/29] drm/i915: unload: fix unpin_work related races Chris Wilson
2010-08-22 11:05 ` [PATCH 07/29] drm/i915: unload: ensure that gem is idle Chris Wilson
2010-08-22 11:05 ` [PATCH 08/29] drm/i915: unload: fix retire_work races Chris Wilson
2010-08-22 11:05 ` [PATCH 09/29] drm/i915: Fixup intel_wait_for_vblank*() Chris Wilson
2010-08-23 16:56 ` [PATCH] drm/i915: Drop the msleep parameter to wait_for() Chris Wilson
2010-08-23 23:16 ` Peter Clifton [this message]
2010-08-23 23:33 ` Chris Wilson
2010-08-23 23:42 ` Peter Clifton
2010-08-22 11:05 ` [PATCH 10/29] drm/i915: Avoid using msleep under kdb and wait_for() Chris Wilson
2010-08-22 11:05 ` [PATCH 11/29] drm/i915: Include a generation number in the device info Chris Wilson
2010-08-22 11:05 ` [PATCH 12/29] drm/i915: Fix offset page-flips on i965+ Chris Wilson
2010-08-22 11:05 ` [PATCH 13/29] drm/i915: Clear scanline waits after disabling the pipe Chris Wilson
2010-08-22 11:05 ` [PATCH 14/29] drm/i915: Sanity check user framebuffer parameters on creation Chris Wilson
2010-08-22 11:05 ` [PATCH 15/29] drm/i915: Re-use set_base_atomic to share setting of the display registers Chris Wilson
2010-08-22 11:05 ` [PATCH 16/29] drm/i915/sdvo: Propagate error from switching control buses Chris Wilson
2010-08-22 11:05 ` [PATCH 17/29] drm/i915: Add ringbuffer wait reset to hangcheck Chris Wilson
2010-08-22 11:05 ` [PATCH 18/29] drm/i915/crt: Flush register prior to waiting for vblank Chris Wilson
2010-08-22 11:05 ` [PATCH 19/29] drm/i915/dp: Boost timeout for enabling transcoder to 100ms Chris Wilson
2010-08-22 11:05 ` [PATCH 20/29] drm/i915/sdvo: Guess the DDC bus in absence of VBIOS Chris Wilson
2010-08-22 11:05 ` [PATCH 21/29] drm/i915/tv: Flush register writes before sleeping Chris Wilson
2010-08-22 11:05 ` [PATCH 22/29] drm/i915/dp: Really try 5 times before giving up Chris Wilson
2010-08-30 22:35 ` Eric Anholt
2010-08-22 11:05 ` [PATCH 23/29] drm/i915/debug: Include Ironlake in self-refresh status Chris Wilson
2010-08-22 11:05 ` [PATCH 24/29] drm/i915: Allocate the PCI resource for the MCHBAR Chris Wilson
2010-08-22 11:05 ` [PATCH 25/29] drm/i915: Use the VBT from OpRegion when available (v2) Chris Wilson
2010-08-22 11:05 ` [PATCH 26/29] drm/i915: Invert watermarks used for i8xx, i9xx Chris Wilson
2010-08-30 22:39 ` Eric Anholt
2010-08-22 11:05 ` [PATCH 27/29] drm: Scan EDID for an audio-capable HDMI output Chris Wilson
2010-08-23 15:05 ` Adam Jackson
2010-08-22 11:05 ` [PATCH 28/29] drm/i915/hdmi: Only enable audio if supported by the monitor Chris Wilson
2010-08-22 11:05 ` [PATCH 29/29] drm/i915: Tightly scope intel_encoder to prevent invalid use Chris Wilson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1282605397.29375.7.camel@pcjc2lap \
--to=pcjc2@cam.ac.uk \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.