drm/rs690: set all of gart base address.
authorDave Airlie <airlied@linux.ie>
Wed, 28 May 2008 01:27:01 +0000 (11:27 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 19 Jun 2008 01:27:39 +0000 (11:27 +1000)
Docs state bits 4-11 maps to bits 32-39 of the 40-bit range

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/char/drm/radeon_cp.c

index d8ede40de0b0caf76dce18cb3ed267fb50db3c47..1e434ba155647d4f05d3d807aa33a94324c21933 100644 (file)
@@ -659,8 +659,9 @@ static void radeon_set_rs690gart(drm_radeon_private_t *dev_priv, int on)
                temp = RS690_READ_MCIND(dev_priv, RS690_MC_GART_FEATURE_ID);
                RS690_WRITE_MCIND(RS690_MC_GART_FEATURE_ID, 0x42040800);
 
-               RS690_WRITE_MCIND(RS690_MC_GART_BASE,
-                                 dev_priv->gart_info.bus_addr);
+               temp = dev_priv->gart_info.bus_addr & 0xfffff000;
+               temp |= (upper_32_bits(dev_priv->gart_info.bus_addr) & 0xff) << 4;
+               RS690_WRITE_MCIND(RS690_MC_GART_BASE, temp);
 
                temp = RS690_READ_MCIND(dev_priv, RS690_MC_AGP_MODE_CONTROL);
                RS690_WRITE_MCIND(RS690_MC_AGP_MODE_CONTROL, 0x01400000);