summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/drm_memory_debug.c8
-rw-r--r--linux-core/drm_stub.c6
2 files changed, 12 insertions, 2 deletions
diff --git a/linux-core/drm_memory_debug.c b/linux-core/drm_memory_debug.c
index 875fec05..2ce2abcd 100644
--- a/linux-core/drm_memory_debug.c
+++ b/linux-core/drm_memory_debug.c
@@ -374,7 +374,11 @@ DRM_AGP_MEM *drm_alloc_agp(drm_device_t *dev, int pages, u32 type)
return NULL;
}
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11)
if ((handle = drm_agp_allocate_memory(pages, type))) {
+#else
+ if ((handle = drm_agp_allocate_memory(dev->agp->bridge, pages, type))) {
+#endif
spin_lock(&drm_mem_lock);
++drm_mem_stats[DRM_MEM_TOTALAGP].succeed_count;
drm_mem_stats[DRM_MEM_TOTALAGP].bytes_allocated
@@ -387,6 +391,7 @@ DRM_AGP_MEM *drm_alloc_agp(drm_device_t *dev, int pages, u32 type)
spin_unlock(&drm_mem_lock);
return NULL;
}
+EXPORT_SYMBOL(drm_alloc_agp);
int drm_free_agp(DRM_AGP_MEM * handle, int pages)
{
@@ -416,6 +421,7 @@ int drm_free_agp(DRM_AGP_MEM * handle, int pages)
}
return retval;
}
+EXPORT_SYMBOL(drm_free_agp);
int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start)
{
@@ -440,6 +446,7 @@ int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start)
spin_unlock(&drm_mem_lock);
return retcode;
}
+EXPORT_SYMBOL(drm_bind_agp);
int drm_unbind_agp(DRM_AGP_MEM * handle)
{
@@ -468,6 +475,7 @@ int drm_unbind_agp(DRM_AGP_MEM * handle)
}
return retcode;
}
+EXPORT_SYMBOL(drm_unbind_agp);
#endif
#endif
diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c
index 2f9a2c32..d7baeb84 100644
--- a/linux-core/drm_stub.c
+++ b/linux-core/drm_stub.c
@@ -225,7 +225,6 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
pci_enable_device(pdev);
}
if ((ret = fill_in_dev(dev, pdev, ent, driver))) {
- printk(KERN_ERR "DRM: Fill_in_dev failed.\n");
goto err_g1;
}
if ((ret = drm_get_head(dev, &dev->primary)))
@@ -234,10 +233,12 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
/* postinit is a required function to display the signon banner */
/* drivers add secondary heads here if needed */
if ((ret = dev->driver->postinit(dev, ent->driver_data)))
- goto err_g1;
+ goto err_g2;
return 0;
+err_g2:
+ drm_put_head(&dev->primary);
err_g1:
if (!drm_fb_loaded) {
pci_set_drvdata(pdev, NULL);
@@ -245,6 +246,7 @@ err_g1:
pci_disable_device(pdev);
}
drm_free(dev, sizeof(*dev), DRM_MEM_STUB);
+ printk(KERN_ERR "DRM: drm_get_dev failed.\n");
return ret;
}
EXPORT_SYMBOL(drm_get_dev);