Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/drm into modesetting-101
authorDave Airlie <airlied@linux.ie>
Tue, 11 Dec 2007 06:58:00 +0000 (16:58 +1000)
committerDave Airlie <airlied@linux.ie>
Tue, 11 Dec 2007 06:58:00 +0000 (16:58 +1000)
Conflicts:

linux-core/drm_drv.c
shared-core/drm.h
shared-core/i915_dma.c

1  2 
linux-core/drmP.h
linux-core/drm_drv.c
linux-core/i915_buffer.c
shared-core/drm.h
shared-core/i915_dma.c
shared-core/i915_drm.h
shared-core/i915_irq.c
shared-core/radeon_cp.c

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -73,13 -71,11 +71,10 @@@ void i915_kernel_lost_context(struct dr
        ring->space = ring->head - (ring->tail + 8);
        if (ring->space < 0)
                ring->space += ring->Size;
-       if (ring->head == ring->tail)
-               dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY;
  }
  
 -static int i915_dma_cleanup(struct drm_device * dev)
 +int i915_dma_cleanup(struct drm_device * dev)
  {
 -      drm_i915_private_t *dev_priv = dev->dev_private;
        /* Make sure interrupts are disabled here because the uninstall ioctl
         * may not have been called from userspace and after dev_private
         * is freed, it's too late.
@@@ -179,9 -197,9 +176,9 @@@ static int i915_initialize(struct drm_d
  
  static int i915_dma_resume(struct drm_device * dev)
  {
 -      drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
 +      struct drm_i915_private *dev_priv = (struct drm_i915_private *) dev->dev_private;
  
-       DRM_DEBUG("%s\n", __FUNCTION__);
+       DRM_DEBUG("\n");
  
        if (!dev_priv->sarea) {
                DRM_ERROR("can not find sarea!\n");
@@@ -315,10 -333,10 +312,10 @@@ static int validate_cmd(int cmd
        return ret;
  }
  
- static int i915_emit_cmds(struct drm_device * dev, int __user * buffer,
+ static int i915_emit_cmds(struct drm_device *dev, int __user *buffer,
                          int dwords)
  {
 -      drm_i915_private_t *dev_priv = dev->dev_private;
 +      struct drm_i915_private *dev_priv = dev->dev_private;
        int i;
        RING_LOCALS;
  
@@@ -586,11 -604,10 +583,10 @@@ static void i915_do_dispatch_flip(struc
  
  void i915_dispatch_flip(struct drm_device * dev, int planes, int sync)
  {
 -      drm_i915_private_t *dev_priv = dev->dev_private;
 +      struct drm_i915_private *dev_priv = dev->dev_private;
        int i;
  
-       DRM_DEBUG("%s: planes=0x%x pfCurrentPage=%d\n",
-                 __FUNCTION__,
+       DRM_DEBUG("planes=0x%x pfCurrentPage=%d\n",
                  planes, dev_priv->sarea_priv->pf_current_page);
  
        i915_emit_mi_flush(dev, MI_READ_FLUSH | MI_EXE_FLUSH);
  #endif
  }
  
- static int i915_quiescent(struct drm_device * dev)
+ static int i915_quiescent(struct drm_device *dev)
  {
 -      drm_i915_private_t *dev_priv = dev->dev_private;
 +      struct drm_i915_private *dev_priv = dev->dev_private;
  
        i915_kernel_lost_context(dev);
        return i915_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__);
@@@ -1069,16 -1086,14 +1065,14 @@@ out_free
  }
  #endif
  
 -static int i915_do_cleanup_pageflip(struct drm_device * dev)
 +int i915_do_cleanup_pageflip(struct drm_device * dev)
  {
 -      drm_i915_private_t *dev_priv = dev->dev_private;
 -      int i, planes, num_pages = dev_priv->sarea_priv->third_handle ? 3 : 2;
 +      struct drm_i915_private *dev_priv = dev->dev_private;
 +      int i, planes, num_pages;
  
-       DRM_DEBUG("%s\n", __FUNCTION__);
-       if (!dev_priv->sarea_priv)
-               return 0;
+       DRM_DEBUG("\n");
 -
 -      for (i = 0, planes = 0; i < 2; i++)
 +      num_pages = dev_priv->sarea_priv->third_handle ? 3 : 2;
 +      for (i = 0, planes = 0; i < 2; i++) {
                if (dev_priv->sarea_priv->pf_current_page & (0x3 << (2 * i))) {
                        dev_priv->sarea_priv->pf_current_page =
                                (dev_priv->sarea_priv->pf_current_page &
  
  static int i915_flip_bufs(struct drm_device *dev, void *data, struct drm_file *file_priv)
  {
 -      drm_i915_flip_t *param = data;
 +      struct drm_i915_flip *param = data;
  
-       DRM_DEBUG("%s\n", __FUNCTION__);
+       DRM_DEBUG("\n");
  
        LOCK_TEST_WITH_RETURN(dev, file_priv);
  
Simple merge
@@@ -457,22 -454,15 +455,28 @@@ static int i915_driver_vblank_do_wait(s
        return ret;
  }
  
 +void i915_driver_wait_next_vblank(struct drm_device *dev, int pipe)
 +{
 +      unsigned int seq;
 +
 +      seq = pipe ? atomic_read(&dev->vbl_received2) + 1 :
 +              atomic_read(&dev->vbl_received) + 1;
 +
 +      if (!pipe)
 +              i915_driver_vblank_do_wait(dev, &seq, &dev->vbl_received);
 +      else
 +              i915_driver_vblank_do_wait(dev, &seq, &dev->vbl_received2);
 +}
 +
  int i915_driver_vblank_wait(struct drm_device *dev, unsigned int *sequence)
  {
-       return i915_driver_vblank_do_wait(dev, sequence, &dev->vbl_received);
+       atomic_t *counter;
+       if (i915_get_pipe(dev, 0) == 0)
+               counter = &dev->vbl_received;
+       else
+               counter = &dev->vbl_received2;
+       return i915_driver_vblank_do_wait(dev, sequence, counter);
  }
  
  int i915_driver_vblank_wait2(struct drm_device *dev, unsigned int *sequence)
Simple merge