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 919c4d8b18502ba0fa32deae29589c0f55a31a7e..04e8dbddf35bacdc8f1f534a9c54e9e9c2429471 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 dea6f63c9724af9b493fb5693f9e3f406edcb0fb..cb3273b26d4d6ea055264ff0e0f314969351c76c 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 ==