drm: fixup compat with old x.org drivers
parent
4aa7efe398
commit
4dbf447f43
|
@ -187,7 +187,9 @@ int drm_lastclose(struct drm_device * dev)
|
||||||
|
|
||||||
DRM_DEBUG("\n");
|
DRM_DEBUG("\n");
|
||||||
|
|
||||||
/* return 0; */
|
if (!drm_core_check_feature(dev, DRIVER_MODESET))
|
||||||
|
drm_bo_driver_finish(dev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We can't do much about this function failing.
|
* We can't do much about this function failing.
|
||||||
*/
|
*/
|
||||||
|
@ -425,13 +427,20 @@ int drm_minors_cleanup(int id, void *ptr, void *data)
|
||||||
struct drm_minor *minor = ptr;
|
struct drm_minor *minor = ptr;
|
||||||
struct drm_device *dev;
|
struct drm_device *dev;
|
||||||
struct drm_driver *driver = data;
|
struct drm_driver *driver = data;
|
||||||
if (id < 127 || id > 192)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
dev = minor->dev;
|
dev = minor->dev;
|
||||||
if (minor->dev->driver != driver)
|
if (minor->dev->driver != driver)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (drm_core_check_feature(dev, DRIVER_MODESET)) {
|
||||||
|
if (minor->type != DRM_MINOR_CONTROL)
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
if (minor->type != DRM_MINOR_LEGACY)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (dev)
|
if (dev)
|
||||||
pci_dev_put(dev->pdev);
|
pci_dev_put(dev->pdev);
|
||||||
drm_cleanup(dev);
|
drm_cleanup(dev);
|
||||||
|
|
|
@ -48,8 +48,8 @@ extern struct drm_fence_driver i915_fence_driver;
|
||||||
|
|
||||||
#ifdef I915_HAVE_BUFFER
|
#ifdef I915_HAVE_BUFFER
|
||||||
|
|
||||||
static uint32_t i915_mem_prios[] = {DRM_BO_MEM_VRAM, DRM_BO_MEM_PRIV0, DRM_BO_MEM_TT, DRM_BO_MEM_LOCAL};
|
static uint32_t i915_mem_prios[] = {DRM_BO_MEM_VRAM, DRM_BO_MEM_TT, DRM_BO_MEM_LOCAL};
|
||||||
static uint32_t i915_busy_prios[] = {DRM_BO_MEM_TT, DRM_BO_MEM_PRIV0, DRM_BO_MEM_VRAM, DRM_BO_MEM_LOCAL};
|
static uint32_t i915_busy_prios[] = {DRM_BO_MEM_TT, DRM_BO_MEM_VRAM, DRM_BO_MEM_LOCAL};
|
||||||
|
|
||||||
static struct drm_bo_driver i915_bo_driver = {
|
static struct drm_bo_driver i915_bo_driver = {
|
||||||
.mem_type_prio = i915_mem_prios,
|
.mem_type_prio = i915_mem_prios,
|
||||||
|
@ -566,6 +566,7 @@ static struct drm_driver driver = {
|
||||||
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
|
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
|
||||||
.load = i915_driver_load,
|
.load = i915_driver_load,
|
||||||
.unload = i915_driver_unload,
|
.unload = i915_driver_unload,
|
||||||
|
.firstopen = i915_driver_firstopen,
|
||||||
.lastclose = i915_driver_lastclose,
|
.lastclose = i915_driver_lastclose,
|
||||||
.preclose = i915_driver_preclose,
|
.preclose = i915_driver_preclose,
|
||||||
.suspend = i915_suspend,
|
.suspend = i915_suspend,
|
||||||
|
|
|
@ -401,3 +401,12 @@ void i915_driver_lastclose(struct drm_device * dev)
|
||||||
|
|
||||||
i915_dma_cleanup(dev);
|
i915_dma_cleanup(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int i915_driver_firstopen(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
if (drm_core_check_feature(dev, DRIVER_MODESET))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
drm_bo_driver_init(dev);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue