drm/tegra: Disable outputs for power-saving
authorThierry Reding <treding@nvidia.com>
Tue, 29 Oct 2013 15:03:03 +0000 (16:03 +0100)
committerThierry Reding <treding@nvidia.com>
Thu, 19 Dec 2013 08:29:55 +0000 (09:29 +0100)
When an output is disabled, its DPMS mode is usually set to off. Instead
of only disabling the panel (if one is attached), turn the output off
entirely to save more power.

HDMI doesn't have any panels attached, so it previously didn't save any
power at all. With this commit, however, the complete HDMI interface
will be turned off, therefore allowing an attached monitor to go into a
standby mode.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/output.c

index 5dc4d1a9cad851701c2f73922378dabf8be6bc22..581dc5d37bed05cf6f7de00c69b0c0eb8dd74c91 100644 (file)
@@ -130,11 +130,12 @@ static void tegra_encoder_dpms(struct drm_encoder *encoder, int mode)
        struct tegra_output *output = encoder_to_output(encoder);
        struct drm_panel *panel = output->panel;
 
-       if (panel && panel->funcs) {
-               if (mode != DRM_MODE_DPMS_ON)
-                       drm_panel_disable(panel);
-               else
-                       drm_panel_enable(panel);
+       if (mode != DRM_MODE_DPMS_ON) {
+               drm_panel_disable(panel);
+               tegra_output_disable(output);
+       } else {
+               tegra_output_enable(output);
+               drm_panel_enable(panel);
        }
 }