drm/radeon: add SS override support for KB/KV
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 25 Jul 2012 16:45:16 +0000 (12:45 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 26 Jun 2013 20:11:44 +0000 (16:11 -0400)
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_atombios.c

index 88a55afae4c22a5b491d059ac4e7f96df906008f..3236755857a8c7cfd9968ca6a8da5410b8482b1b 100644 (file)
@@ -1269,6 +1269,7 @@ union igp_info {
        struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_2;
        struct _ATOM_INTEGRATED_SYSTEM_INFO_V6 info_6;
        struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_7 info_7;
+       struct _ATOM_INTEGRATED_SYSTEM_INFO_V1_8 info_8;
 };
 
 bool radeon_atombios_sideport_present(struct radeon_device *rdev)
@@ -1438,6 +1439,22 @@ static void radeon_atombios_get_igp_ss_overrides(struct radeon_device *rdev,
                                break;
                        }
                        break;
+               case 8:
+                       switch (id) {
+                       case ASIC_INTERNAL_SS_ON_TMDS:
+                               percentage = le16_to_cpu(igp_info->info_8.usDVISSPercentage);
+                               rate = le16_to_cpu(igp_info->info_8.usDVISSpreadRateIn10Hz);
+                               break;
+                       case ASIC_INTERNAL_SS_ON_HDMI:
+                               percentage = le16_to_cpu(igp_info->info_8.usHDMISSPercentage);
+                               rate = le16_to_cpu(igp_info->info_8.usHDMISSpreadRateIn10Hz);
+                               break;
+                       case ASIC_INTERNAL_SS_ON_LVDS:
+                               percentage = le16_to_cpu(igp_info->info_8.usLvdsSSPercentage);
+                               rate = le16_to_cpu(igp_info->info_8.usLvdsSSpreadRateIn10Hz);
+                               break;
+                       }
+                       break;
                default:
                        DRM_ERROR("Unsupported IGP table: %d %d\n", frev, crev);
                        break;