Commit dfd07ec3 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  vmwgfx: Fix assignment in vmw_framebuffer_create_handle
  drm/radeon/kms: Fix device tree linkage of i2c buses
  drm: Pass the real error code back during GEM bo initialisation
  Revert "drm/i810: cleanup reclaim_buffers"
parents f94f72ee bf9c05d5
...@@ -140,7 +140,7 @@ int drm_gem_object_init(struct drm_device *dev, ...@@ -140,7 +140,7 @@ int drm_gem_object_init(struct drm_device *dev,
obj->dev = dev; obj->dev = dev;
obj->filp = shmem_file_setup("drm mm object", size, VM_NORESERVE); obj->filp = shmem_file_setup("drm mm object", size, VM_NORESERVE);
if (IS_ERR(obj->filp)) if (IS_ERR(obj->filp))
return -ENOMEM; return PTR_ERR(obj->filp);
kref_init(&obj->refcount); kref_init(&obj->refcount);
atomic_set(&obj->handle_count, 0); atomic_set(&obj->handle_count, 0);
......
...@@ -886,7 +886,7 @@ static int i810_flush_queue(struct drm_device *dev) ...@@ -886,7 +886,7 @@ static int i810_flush_queue(struct drm_device *dev)
} }
/* Must be called with the lock held */ /* Must be called with the lock held */
void i810_driver_reclaim_buffers(struct drm_device *dev, static void i810_reclaim_buffers(struct drm_device *dev,
struct drm_file *file_priv) struct drm_file *file_priv)
{ {
struct drm_device_dma *dma = dev->dma; struct drm_device_dma *dma = dev->dma;
...@@ -1223,17 +1223,12 @@ void i810_driver_preclose(struct drm_device *dev, struct drm_file *file_priv) ...@@ -1223,17 +1223,12 @@ void i810_driver_preclose(struct drm_device *dev, struct drm_file *file_priv)
if (dev_priv->page_flipping) if (dev_priv->page_flipping)
i810_do_cleanup_pageflip(dev); i810_do_cleanup_pageflip(dev);
} }
}
if (file_priv->master && file_priv->master->lock.hw_lock) { void i810_driver_reclaim_buffers_locked(struct drm_device *dev,
drm_idlelock_take(&file_priv->master->lock); struct drm_file *file_priv)
i810_driver_reclaim_buffers(dev, file_priv); {
drm_idlelock_release(&file_priv->master->lock); i810_reclaim_buffers(dev, file_priv);
} else {
/* master disappeared, clean up stuff anyway and hope nothing
* goes wrong */
i810_driver_reclaim_buffers(dev, file_priv);
}
} }
int i810_driver_dma_quiescent(struct drm_device *dev) int i810_driver_dma_quiescent(struct drm_device *dev)
......
...@@ -63,6 +63,7 @@ static struct drm_driver driver = { ...@@ -63,6 +63,7 @@ static struct drm_driver driver = {
.lastclose = i810_driver_lastclose, .lastclose = i810_driver_lastclose,
.preclose = i810_driver_preclose, .preclose = i810_driver_preclose,
.device_is_agp = i810_driver_device_is_agp, .device_is_agp = i810_driver_device_is_agp,
.reclaim_buffers_locked = i810_driver_reclaim_buffers_locked,
.dma_quiescent = i810_driver_dma_quiescent, .dma_quiescent = i810_driver_dma_quiescent,
.ioctls = i810_ioctls, .ioctls = i810_ioctls,
.fops = &i810_driver_fops, .fops = &i810_driver_fops,
......
...@@ -116,12 +116,14 @@ typedef struct drm_i810_private { ...@@ -116,12 +116,14 @@ typedef struct drm_i810_private {
/* i810_dma.c */ /* i810_dma.c */
extern int i810_driver_dma_quiescent(struct drm_device *dev); extern int i810_driver_dma_quiescent(struct drm_device *dev);
void i810_driver_reclaim_buffers(struct drm_device *dev, extern void i810_driver_reclaim_buffers_locked(struct drm_device *dev,
struct drm_file *file_priv); struct drm_file *file_priv);
extern int i810_driver_load(struct drm_device *, unsigned long flags); extern int i810_driver_load(struct drm_device *, unsigned long flags);
extern void i810_driver_lastclose(struct drm_device *dev); extern void i810_driver_lastclose(struct drm_device *dev);
extern void i810_driver_preclose(struct drm_device *dev, extern void i810_driver_preclose(struct drm_device *dev,
struct drm_file *file_priv); struct drm_file *file_priv);
extern void i810_driver_reclaim_buffers_locked(struct drm_device *dev,
struct drm_file *file_priv);
extern int i810_driver_device_is_agp(struct drm_device *dev); extern int i810_driver_device_is_agp(struct drm_device *dev);
extern long i810_ioctl(struct file *file, unsigned int cmd, unsigned long arg); extern long i810_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
......
...@@ -897,6 +897,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev, ...@@ -897,6 +897,7 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
i2c->rec = *rec; i2c->rec = *rec;
i2c->adapter.owner = THIS_MODULE; i2c->adapter.owner = THIS_MODULE;
i2c->adapter.class = I2C_CLASS_DDC; i2c->adapter.class = I2C_CLASS_DDC;
i2c->adapter.dev.parent = &dev->pdev->dev;
i2c->dev = dev; i2c->dev = dev;
i2c_set_adapdata(&i2c->adapter, i2c); i2c_set_adapdata(&i2c->adapter, i2c);
if (rec->mm_i2c || if (rec->mm_i2c ||
......
...@@ -378,7 +378,7 @@ int vmw_framebuffer_create_handle(struct drm_framebuffer *fb, ...@@ -378,7 +378,7 @@ int vmw_framebuffer_create_handle(struct drm_framebuffer *fb,
unsigned int *handle) unsigned int *handle)
{ {
if (handle) if (handle)
handle = 0; *handle = 0;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment