Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
commit
c71c44bb92
|
@ -572,7 +572,7 @@ bool drm_initial_config(drm_device_t *dev, bool can_grow)
|
||||||
|
|
||||||
/* bind analog output to one crtc */
|
/* bind analog output to one crtc */
|
||||||
list_for_each_entry(output, &dev->mode_config.output_list, head) {
|
list_for_each_entry(output, &dev->mode_config.output_list, head) {
|
||||||
struct drm_display_mode *des_mode;
|
struct drm_display_mode *des_mode = NULL;
|
||||||
|
|
||||||
if (list_empty(&output->modes))
|
if (list_empty(&output->modes))
|
||||||
continue;
|
continue;
|
||||||
|
@ -582,6 +582,10 @@ bool drm_initial_config(drm_device_t *dev, bool can_grow)
|
||||||
if (des_mode->flags & DRM_MODE_TYPE_PREFERRED)
|
if (des_mode->flags & DRM_MODE_TYPE_PREFERRED)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!des_mode)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!strncmp(output->name, "VGA", 3)) {
|
if (!strncmp(output->name, "VGA", 3)) {
|
||||||
DRM_DEBUG("VGA preferred mode: %s\n", des_mode->name);
|
DRM_DEBUG("VGA preferred mode: %s\n", des_mode->name);
|
||||||
drm_setup_output(output, vga_crtc, des_mode);
|
drm_setup_output(output, vga_crtc, des_mode);
|
||||||
|
|
|
@ -375,9 +375,6 @@ static void drm_cleanup(drm_device_t * dev)
|
||||||
drm_lastclose(dev);
|
drm_lastclose(dev);
|
||||||
drm_fence_manager_takedown(dev);
|
drm_fence_manager_takedown(dev);
|
||||||
|
|
||||||
if (!drm_fb_loaded)
|
|
||||||
pci_disable_device(dev->pdev);
|
|
||||||
|
|
||||||
drm_ctxbitmap_cleanup(dev);
|
drm_ctxbitmap_cleanup(dev);
|
||||||
|
|
||||||
if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && dev->agp
|
if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && dev->agp
|
||||||
|
@ -389,15 +386,16 @@ static void drm_cleanup(drm_device_t * dev)
|
||||||
DRM_DEBUG("mtrr_del=%d\n", retval);
|
DRM_DEBUG("mtrr_del=%d\n", retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
// drm_bo_driver_finish(dev);
|
if (dev->driver->unload)
|
||||||
|
dev->driver->unload(dev);
|
||||||
|
|
||||||
if (drm_core_has_AGP(dev) && dev->agp) {
|
if (drm_core_has_AGP(dev) && dev->agp) {
|
||||||
drm_free(dev->agp, sizeof(*dev->agp), DRM_MEM_AGPLISTS);
|
drm_free(dev->agp, sizeof(*dev->agp), DRM_MEM_AGPLISTS);
|
||||||
dev->agp = NULL;
|
dev->agp = NULL;
|
||||||
}
|
}
|
||||||
if (dev->driver->unload)
|
|
||||||
dev->driver->unload(dev);
|
|
||||||
|
|
||||||
|
|
||||||
|
// drm_bo_driver_finish(dev);
|
||||||
if (dev->maplist) {
|
if (dev->maplist) {
|
||||||
drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS);
|
drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS);
|
||||||
dev->maplist = NULL;
|
dev->maplist = NULL;
|
||||||
|
@ -406,6 +404,9 @@ static void drm_cleanup(drm_device_t * dev)
|
||||||
drm_ht_remove(&dev->object_hash);
|
drm_ht_remove(&dev->object_hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!drm_fb_loaded)
|
||||||
|
pci_disable_device(dev->pdev);
|
||||||
|
|
||||||
drm_put_head(&dev->primary);
|
drm_put_head(&dev->primary);
|
||||||
if (drm_put_dev(dev))
|
if (drm_put_dev(dev))
|
||||||
DRM_ERROR("Cannot unload module\n");
|
DRM_ERROR("Cannot unload module\n");
|
||||||
|
|
|
@ -70,10 +70,9 @@ static void intel_sdvo_write_sdvox(struct drm_output *output, u32 val)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (sdvo_priv->output_device == SDVOB)
|
if (sdvo_priv->output_device == SDVOB)
|
||||||
bval = I915_READ(SDVOB);
|
|
||||||
else
|
|
||||||
cval = I915_READ(SDVOC);
|
cval = I915_READ(SDVOC);
|
||||||
|
else
|
||||||
|
bval = I915_READ(SDVOB);
|
||||||
/*
|
/*
|
||||||
* Write the registers twice for luck. Sometimes,
|
* Write the registers twice for luck. Sometimes,
|
||||||
* writing them only once doesn't appear to 'stick'.
|
* writing them only once doesn't appear to 'stick'.
|
||||||
|
|
|
@ -265,6 +265,7 @@ int i915_driver_unload(drm_device_t *dev)
|
||||||
drm_mem_reg_iounmap(dev, &dev_priv->ring_buffer->mem,
|
drm_mem_reg_iounmap(dev, &dev_priv->ring_buffer->mem,
|
||||||
dev_priv->ring.virtual_start);
|
dev_priv->ring.virtual_start);
|
||||||
|
|
||||||
|
DRM_DEBUG("usage is %d\n", dev_priv->ring_buffer->usage);
|
||||||
mutex_lock(&dev->struct_mutex);
|
mutex_lock(&dev->struct_mutex);
|
||||||
drm_bo_usage_deref_locked(dev_priv->ring_buffer);
|
drm_bo_usage_deref_locked(dev_priv->ring_buffer);
|
||||||
mutex_unlock(&dev->struct_mutex);
|
mutex_unlock(&dev->struct_mutex);
|
||||||
|
|
Loading…
Reference in New Issue