Explorar o código

drm/radeon/kms: fix agp mode setup on cards that use pcie bridges

Asics that use an AGP to PCIE bridge don't have the AGP_STATUS
register so just use whatever mode the host side setup.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: Jerome Glisse <glisse@freedesktop.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Alex Deucher %!s(int64=15) %!d(string=hai) anos
pai
achega
e57415d85f
Modificáronse 1 ficheiros con 7 adicións e 1 borrados
  1. 7 1
      drivers/gpu/drm/radeon/radeon_agp.c

+ 7 - 1
drivers/gpu/drm/radeon/radeon_agp.c

@@ -156,7 +156,13 @@ int radeon_agp_init(struct radeon_device *rdev)
 	}
 	}
 
 
 	mode.mode = info.mode;
 	mode.mode = info.mode;
-	agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode;
+	/* chips with the agp to pcie bridge don't have the AGP_STATUS register
+	 * Just use the whatever mode the host sets up.
+	 */
+	if (rdev->family <= CHIP_RV350)
+		agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode;
+	else
+		agp_status = mode.mode;
 	is_v3 = !!(agp_status & RADEON_AGPv3_MODE);
 	is_v3 = !!(agp_status & RADEON_AGPv3_MODE);
 
 
 	if (is_v3) {
 	if (is_v3) {