drm/radeon/dce6: add missing display reg for tiling setup
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 5 Apr 2013 14:28:08 +0000 (10:28 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 May 2013 20:48:11 +0000 (13:48 -0700)
commit 7c1c7c18fc752b2a1d07597286467ef186312463 upstream.

A new tiling config register for the display blocks was
added on DCE6.

May fix:
https://bugs.freedesktop.org/show_bug.cgi?id=62889
https://bugs.freedesktop.org/show_bug.cgi?id=57919

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/radeon/ni.c
drivers/gpu/drm/radeon/nid.h
drivers/gpu/drm/radeon/si.c
drivers/gpu/drm/radeon/sid.h

index 7dffc57fa2291dab04c9a4cb56ecb6779b9ed63c..0c3d1827708dd4222f7147c242fcda8559070ae3 100644 (file)
@@ -911,6 +911,8 @@ static void cayman_gpu_init(struct radeon_device *rdev)
        WREG32(GB_BACKEND_MAP, gb_backend_map);
        WREG32(GB_ADDR_CONFIG, gb_addr_config);
        WREG32(DMIF_ADDR_CONFIG, gb_addr_config);
+       if (ASIC_IS_DCE6(rdev))
+               WREG32(DMIF_ADDR_CALC, gb_addr_config);
        WREG32(HDP_ADDR_CONFIG, gb_addr_config);
 
        /* primary versions */
index 2aa7046ada56af451726cccbb78a59b1a7bfaaa0..d90b8b77f9bcba3f32aae5f7addd4e2615a3c343 100644 (file)
 #define CAYMAN_MAX_TCC_MASK          0xFF
 
 #define DMIF_ADDR_CONFIG                               0xBD4
+
+/* DCE6 only */
+#define DMIF_ADDR_CALC                                 0xC00
+
 #define        SRBM_GFX_CNTL                                   0x0E44
 #define                RINGID(x)                                       (((x) & 0x3) << 0)
 #define                VMID(x)                                         (((x) & 0x7) << 0)
index 1197f2187d7393fcc4e0437c7d8523b764e2224d..5508ad79acb688093d8e2a61d3ccf40b393dc9f2 100644 (file)
@@ -1799,6 +1799,7 @@ static void si_gpu_init(struct radeon_device *rdev)
        rdev->config.si.backend_map = gb_backend_map;
        WREG32(GB_ADDR_CONFIG, gb_addr_config);
        WREG32(DMIF_ADDR_CONFIG, gb_addr_config);
+       WREG32(DMIF_ADDR_CALC, gb_addr_config);
        WREG32(HDP_ADDR_CONFIG, gb_addr_config);
 
        /* primary versions */
index 2c2bc63d6da635d6d4b8c1bbe906cda506dc53aa..45e240d0906c58a3424a4f5f929b2b3abe941308 100644 (file)
@@ -55,6 +55,8 @@
 
 #define DMIF_ADDR_CONFIG                               0xBD4
 
+#define DMIF_ADDR_CALC                                 0xC00
+
 #define        SRBM_STATUS                                     0xE50
 
 #define        CC_SYS_RB_BACKEND_DISABLE                       0xe80