OSDN Git Service

[PATCH] radeon drm: fix agp aperture map offset
[uclinux-h8/linux.git] / drivers / char / drm / radeon_cp.c
index 9f2b4ef..95ae9e0 100644 (file)
@@ -1312,6 +1312,8 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
 static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
 {
        drm_radeon_private_t *dev_priv = dev->dev_private;;
+       unsigned int mem_size;
+
        DRM_DEBUG("\n");
 
        dev_priv->is_pci = init->is_pci;
@@ -1521,8 +1523,11 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
                                          + dev_priv->fb_location) >> 10));
 
        dev_priv->gart_size = init->gart_size;
-       dev_priv->gart_vm_start = dev_priv->fb_location
-           + RADEON_READ(RADEON_CONFIG_APER_SIZE) * 2;
+
+       mem_size = RADEON_READ(RADEON_CONFIG_MEMSIZE);
+       if (mem_size == 0)
+               mem_size = 0x800000;
+       dev_priv->gart_vm_start = dev_priv->fb_location + mem_size;
 
 #if __OS_HAS_AGP
        if (!dev_priv->is_pci)