ChangeSet 1.2199.17.3, 2005/03/24 21:15:09+11:00, [EMAIL PROTECTED](none)

        drm: fix issue where agp is acquired before agp_init
        
        With integrated chipsets ala i865 the X server acquires the bridge
        for 2D operations then the DRM acquires it for 3D kaboom.. 
        
        Based on patch from Brice Goglin <[EMAIL PROTECTED]> but I
        think this patch is safer if it can't find a bridge it acquires it.
        
        Tested on i865 (i830/i915) and Radeon on Xorg CVS and XFree86 4.3.0
        
        Signed-off-by: Dave Airlie <[EMAIL PROTECTED]>



 drm_agpsupport.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)


diff -Nru a/drivers/char/drm/drm_agpsupport.c 
b/drivers/char/drm/drm_agpsupport.c
--- a/drivers/char/drm/drm_agpsupport.c 2005-03-27 12:04:32 -08:00
+++ b/drivers/char/drm/drm_agpsupport.c 2005-03-27 12:04:32 -08:00
@@ -387,12 +387,17 @@
        if (!(head = drm_alloc(sizeof(*head), DRM_MEM_AGPLISTS)))
                return NULL;
        memset((void *)head, 0, sizeof(*head));
-       if (!(head->bridge = agp_backend_acquire(dev->pdev))) {
-               drm_free(head, sizeof(*head), DRM_MEM_AGPLISTS);
-               return NULL;
+       head->bridge = agp_find_bridge(dev->pdev);
+       if (!head->bridge) {
+               if (!(head->bridge = agp_backend_acquire(dev->pdev))) {
+                       drm_free(head, sizeof(*head), DRM_MEM_AGPLISTS);
+                       return NULL;
+               }
+               agp_copy_info(head->bridge, &head->agp_info);
+               agp_backend_release(head->bridge);
+       } else {
+               agp_copy_info(head->bridge, &head->agp_info);
        }
-       agp_copy_info(head->bridge, &head->agp_info);
-       agp_backend_release(head->bridge);
        if (head->agp_info.chipset == NOT_SUPPORTED) {
                drm_free(head, sizeof(*head), DRM_MEM_AGPLISTS);
                return NULL;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to