diff options
| author | 2009-04-03 11:31:36 +0000 | |
|---|---|---|
| committer | 2009-04-03 11:31:36 +0000 | |
| commit | 7434f19cfe22da47bc22b8770ea1c524b8deae8c (patch) | |
| tree | 4673d264e0240552f82ef27dbdceb64ece7eed23 /sys/dev/pci/drm/i915_irq.c | |
| parent | Make sure that sys_reboot runs on the primary cpu. Won't hurt when not (diff) | |
| download | wireguard-openbsd-7434f19cfe22da47bc22b8770ea1c524b8deae8c.tar.xz wireguard-openbsd-7434f19cfe22da47bc22b8770ea1c524b8deae8c.zip | |
Convert DRM_WAIT_ON to take additional parameters, the wmsg for msleep,
and the lock to manipulate.
first step of removing drm_irq_handler_wrap which just grabs the
irq_lock, and eventually irq_lock. drivers should manage their own.
Diffstat (limited to 'sys/dev/pci/drm/i915_irq.c')
| -rw-r--r-- | sys/dev/pci/drm/i915_irq.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/sys/dev/pci/drm/i915_irq.c b/sys/dev/pci/drm/i915_irq.c index 71bc282cbd0..6aa8541d9f0 100644 --- a/sys/dev/pci/drm/i915_irq.c +++ b/sys/dev/pci/drm/i915_irq.c @@ -159,13 +159,13 @@ i915_pipe_enabled(struct drm_device *dev, int pipe) return 0; } -u32 i915_get_vblank_counter(struct drm_device *dev, int plane) +u_int32_t +i915_get_vblank_counter(struct drm_device *dev, int plane) { - drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; - unsigned long high_frame; - unsigned long low_frame; - u32 high1, high2, low, count; - int pipe; + drm_i915_private_t *dev_priv = dev->dev_private; + bus_size_t high_frame, low_frame; + u_int32_t high1, high2, low; + int pipe; pipe = i915_get_pipe(dev, plane); high_frame = pipe ? PIPEBFRAMEHIGH : PIPEAFRAMEHIGH; @@ -174,7 +174,7 @@ u32 i915_get_vblank_counter(struct drm_device *dev, int plane) if (!i915_pipe_enabled(dev, pipe)) { DRM_DEBUG("trying to get vblank count for disabled pipe %d\n", pipe); - return 0; + return (0); } /* @@ -191,12 +191,11 @@ u32 i915_get_vblank_counter(struct drm_device *dev, int plane) PIPE_FRAME_HIGH_SHIFT); } while (high1 != high2); - count = (high1 << 8) | low; - - return count; + return ((high1 << 8) | low); } -irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) +irqreturn_t +i915_driver_irq_handler(DRM_IRQ_ARGS) { struct drm_device *dev = (struct drm_device *)arg; drm_i915_private_t *dev_priv = (drm_i915_private_t *)dev->dev_private; @@ -281,10 +280,11 @@ void i915_user_irq_put(struct drm_device *dev) } -int i915_wait_irq(struct drm_device * dev, int irq_nr) +int +i915_wait_irq(struct drm_device *dev, int irq_nr) { - drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; - int ret = 0; + drm_i915_private_t *dev_priv = dev->dev_private; + int ret = 0; DRM_DEBUG("irq_nr=%d breadcrumb=%d\n", irq_nr, READ_BREADCRUMB(dev_priv)); @@ -294,12 +294,12 @@ int i915_wait_irq(struct drm_device * dev, int irq_nr) dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); } - return 0; + return (0); } i915_user_irq_get(dev); - DRM_WAIT_ON(ret, dev_priv, 3 * DRM_HZ, - READ_BREADCRUMB(dev_priv) >= irq_nr); + DRM_WAIT_ON(ret, dev_priv, &dev->irq_lock, 3 * hz, "i915wt", + READ_BREADCRUMB(dev_priv) >= irq_nr); i915_user_irq_put(dev); if (ret == EBUSY) { @@ -309,7 +309,7 @@ int i915_wait_irq(struct drm_device * dev, int irq_nr) if (dev_priv->sarea_priv != NULL) dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); - return ret; + return (ret); } /* Needs the lock as it touches the ring. |
