OSDN Git Service

DRM(vblank_wait) is driver specific
authorMichel Daenzer <michel@daenzer.net>
Thu, 26 Sep 2002 12:49:18 +0000 (12:49 +0000)
committerMichel Daenzer <michel@daenzer.net>
Thu, 26 Sep 2002 12:49:18 +0000 (12:49 +0000)
linux-core/drm_dma.c
linux/drm_dma.h
shared-core/radeon_irq.c
shared/radeon_irq.c

index 2938c77..dc04159 100644 (file)
@@ -604,44 +604,6 @@ int DRM(control)( struct inode *inode, struct file *filp,
 
 #if __HAVE_VBL_IRQ
 
-int DRM(vblank_wait)(drm_device_t *dev, unsigned int *sequence)
-{
-       drm_radeon_private_t *dev_priv = 
-          (drm_radeon_private_t *)dev->dev_private;
-       unsigned int cur_vblank;
-       int ret = 0;
-
-       if ( !dev_priv ) {
-               DRM_ERROR( "%s called with no initialization\n", __func__ );
-               return DRM_ERR(EINVAL);
-       }
-
-       /* Assume that the user has missed the current sequence number by about
-        * a day rather than she wants to wait for years using vertical blanks :)
-        */
-       while ( ( ( cur_vblank = atomic_read(&dev->vbl_received ) )
-               + ~*sequence + 1 ) > (1<<23) ) {
-               dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE;
-#ifdef __linux__
-               interruptible_sleep_on( &dev->vbl_queue );
-
-               if (signal_pending(current)) {
-                       ret = -EINTR;
-                       break;
-               }
-#endif /* __linux__ */
-#ifdef __FreeBSD__
-               ret = tsleep( &dev_priv->vbl_queue, 3*hz, "rdnvbl", PZERO | PCATCH);
-               if (ret)
-                       break;
-#endif /* __FreeBSD__ */
-       }
-
-       *sequence = cur_vblank;
-
-       return ret;
-}
-
 int DRM(wait_vblank)( DRM_IOCTL_ARGS )
 {
        drm_file_t *priv = filp->private_data;
index 2938c77..dc04159 100644 (file)
@@ -604,44 +604,6 @@ int DRM(control)( struct inode *inode, struct file *filp,
 
 #if __HAVE_VBL_IRQ
 
-int DRM(vblank_wait)(drm_device_t *dev, unsigned int *sequence)
-{
-       drm_radeon_private_t *dev_priv = 
-          (drm_radeon_private_t *)dev->dev_private;
-       unsigned int cur_vblank;
-       int ret = 0;
-
-       if ( !dev_priv ) {
-               DRM_ERROR( "%s called with no initialization\n", __func__ );
-               return DRM_ERR(EINVAL);
-       }
-
-       /* Assume that the user has missed the current sequence number by about
-        * a day rather than she wants to wait for years using vertical blanks :)
-        */
-       while ( ( ( cur_vblank = atomic_read(&dev->vbl_received ) )
-               + ~*sequence + 1 ) > (1<<23) ) {
-               dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE;
-#ifdef __linux__
-               interruptible_sleep_on( &dev->vbl_queue );
-
-               if (signal_pending(current)) {
-                       ret = -EINTR;
-                       break;
-               }
-#endif /* __linux__ */
-#ifdef __FreeBSD__
-               ret = tsleep( &dev_priv->vbl_queue, 3*hz, "rdnvbl", PZERO | PCATCH);
-               if (ret)
-                       break;
-#endif /* __FreeBSD__ */
-       }
-
-       *sequence = cur_vblank;
-
-       return ret;
-}
-
 int DRM(wait_vblank)( DRM_IOCTL_ARGS )
 {
        drm_file_t *priv = filp->private_data;
index 7b17038..d652f1d 100644 (file)
@@ -163,6 +163,45 @@ int radeon_emit_and_wait_irq(drm_device_t *dev)
 }
 
 
+int radeon_vblank_wait(drm_device_t *dev, unsigned int *sequence)
+{
+       drm_radeon_private_t *dev_priv = 
+          (drm_radeon_private_t *)dev->dev_private;
+       unsigned int cur_vblank;
+       int ret = 0;
+
+       if ( !dev_priv ) {
+               DRM_ERROR( "%s called with no initialization\n", __func__ );
+               return DRM_ERR(EINVAL);
+       }
+
+       /* Assume that the user has missed the current sequence number by about
+        * a day rather than she wants to wait for years using vertical blanks :)
+        */
+       while ( ( ( cur_vblank = atomic_read(&dev->vbl_received ) )
+               + ~*sequence + 1 ) > (1<<23) ) {
+               dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE;
+#ifdef __linux__
+               interruptible_sleep_on( &dev->vbl_queue );
+
+               if (signal_pending(current)) {
+                       ret = -EINTR;
+                       break;
+               }
+#endif /* __linux__ */
+#ifdef __FreeBSD__
+               ret = tsleep( &dev_priv->vbl_queue, 3*hz, "rdnvbl", PZERO | PCATCH);
+               if (ret)
+                       break;
+#endif /* __FreeBSD__ */
+       }
+
+       *sequence = cur_vblank;
+
+       return ret;
+}
+
+
 /* Needs the lock as it touches the ring.
  */
 int radeon_irq_emit( DRM_IOCTL_ARGS )
index 7b17038..d652f1d 100644 (file)
@@ -163,6 +163,45 @@ int radeon_emit_and_wait_irq(drm_device_t *dev)
 }
 
 
+int radeon_vblank_wait(drm_device_t *dev, unsigned int *sequence)
+{
+       drm_radeon_private_t *dev_priv = 
+          (drm_radeon_private_t *)dev->dev_private;
+       unsigned int cur_vblank;
+       int ret = 0;
+
+       if ( !dev_priv ) {
+               DRM_ERROR( "%s called with no initialization\n", __func__ );
+               return DRM_ERR(EINVAL);
+       }
+
+       /* Assume that the user has missed the current sequence number by about
+        * a day rather than she wants to wait for years using vertical blanks :)
+        */
+       while ( ( ( cur_vblank = atomic_read(&dev->vbl_received ) )
+               + ~*sequence + 1 ) > (1<<23) ) {
+               dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE;
+#ifdef __linux__
+               interruptible_sleep_on( &dev->vbl_queue );
+
+               if (signal_pending(current)) {
+                       ret = -EINTR;
+                       break;
+               }
+#endif /* __linux__ */
+#ifdef __FreeBSD__
+               ret = tsleep( &dev_priv->vbl_queue, 3*hz, "rdnvbl", PZERO | PCATCH);
+               if (ret)
+                       break;
+#endif /* __FreeBSD__ */
+       }
+
+       *sequence = cur_vblank;
+
+       return ret;
+}
+
+
 /* Needs the lock as it touches the ring.
  */
 int radeon_irq_emit( DRM_IOCTL_ARGS )