drm/radeon/evergreen+: don't enable HPD interrupts on eDP/LVDS
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 11 Apr 2013 16:45:34 +0000 (12:45 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 15 Apr 2013 14:34:12 +0000 (10:34 -0400)
Avoids potential interrupt storms when the display is disabled.

May fix:
https://bugzilla.kernel.org/show_bug.cgi?id=56041

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/radeon/evergreen.c

index b114252e7810a86bfc5ade00e7d572e272cf30a9..124c19365392d80805113dc8178ad6d232098dfa 100644 (file)
@@ -819,6 +819,16 @@ void evergreen_hpd_init(struct radeon_device *rdev)
 
        list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
                struct radeon_connector *radeon_connector = to_radeon_connector(connector);
+
+               if (connector->connector_type == DRM_MODE_CONNECTOR_eDP ||
+                   connector->connector_type == DRM_MODE_CONNECTOR_LVDS) {
+                       /* don't try to enable hpd on eDP or LVDS avoid breaking the
+                        * aux dp channel on imac and help (but not completely fix)
+                        * https://bugzilla.redhat.com/show_bug.cgi?id=726143
+                        * also avoid interrupt storms during dpms.
+                        */
+                       continue;
+               }
                switch (radeon_connector->hpd.hpd) {
                case RADEON_HPD_1:
                        WREG32(DC_HPD1_CONTROL, tmp);