drm/radeon: handle the integrated thermal controller on CI
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 19 Dec 2012 03:07:14 +0000 (22:07 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 26 Jun 2013 20:11:36 +0000 (16:11 -0400)
No support for reading the temperature yet.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_atombios.c

index 919c4d8..04e8dbd 100644 (file)
@@ -1033,6 +1033,7 @@ enum radeon_int_thermal_type {
        THERMAL_TYPE_SUMO,
        THERMAL_TYPE_NI,
        THERMAL_TYPE_SI,
+       THERMAL_TYPE_CI,
 };
 
 struct radeon_voltage {
index dea6f63..cb3273b 100644 (file)
@@ -1927,6 +1927,7 @@ static const char *pp_lib_thermal_controller_names[] = {
        "Northern Islands",
        "Southern Islands",
        "lm96163",
+       "Sea Islands",
 };
 
 union power_info {
@@ -2209,6 +2210,11 @@ static void radeon_atombios_add_pplib_thermal_controller(struct radeon_device *r
                                 (controller->ucFanParameters &
                                  ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with");
                        rdev->pm.int_thermal_type = THERMAL_TYPE_SI;
+               } else if (controller->ucType == ATOM_PP_THERMALCONTROLLER_CISLANDS) {
+                       DRM_INFO("Internal thermal controller %s fan control\n",
+                                (controller->ucFanParameters &
+                                 ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with");
+                       rdev->pm.int_thermal_type = THERMAL_TYPE_CI;
                } else if ((controller->ucType ==
                            ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO) ||
                           (controller->ucType ==