drm/kms/radeon/agp: Move the check of the aper_size after drm_acp_acquire and drm_agp...
authorJohn Kacur <jkacur@redhat.com>
Sun, 31 Jan 2010 19:38:03 +0000 (20:38 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 1 Feb 2010 01:19:31 +0000 (11:19 +1000)
First call drm_agp_acquire to check if agp has been acquired.
Second call drm_agp_info to fill in the info data struct, including aper_size.
Finally do the check to see if the aper_size makes sense.

Signed-off-by: John Kacur <jkacur@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_agp.c

index f58c5f462438dc0a0385076ca676ab6532884409..b634d984766705b65e35a12be4cb7423cd9ac4c2 100644 (file)
@@ -133,13 +133,6 @@ int radeon_agp_init(struct radeon_device *rdev)
        bool is_v3;
        int ret;
 
-       if (rdev->ddev->agp->agp_info.aper_size < 32) {
-               dev_warn(rdev->dev, "AGP aperture too small (%zuM) "
-                       "need at least 32M, disabling AGP\n",
-                       rdev->ddev->agp->agp_info.aper_size);
-               return -EINVAL;
-       }
-
        /* Acquire AGP. */
        if (!rdev->ddev->agp->acquired) {
                ret = drm_agp_acquire(rdev->ddev);
@@ -154,6 +147,14 @@ int radeon_agp_init(struct radeon_device *rdev)
                DRM_ERROR("Unable to get AGP info: %d\n", ret);
                return ret;
        }
+
+       if (rdev->ddev->agp->agp_info.aper_size < 32) {
+               dev_warn(rdev->dev, "AGP aperture too small (%zuM) "
+                       "need at least 32M, disabling AGP\n",
+                       rdev->ddev->agp->agp_info.aper_size);
+               return -EINVAL;
+       }
+
        mode.mode = info.mode;
        agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode;
        is_v3 = !!(agp_status & RADEON_AGPv3_MODE);