]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/i915: s/intel_dp_sink_dpms/intel_dp_set_power/
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 16 Oct 2020 19:48:00 +0000 (22:48 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Jan 2021 10:55:18 +0000 (11:55 +0100)
commit 0e634efd858e0e9331ea037e1a142e34a446e9e3 upstream.

Rename intel_dp_sink_dpms() to intel_dp_set_power()
so one doesn't always have to convert from the DPMS
enum values to the actual DP D-states.

Also when dealing with a branch device this has nothing to
do with any sink, so the old name was nonsense anyway.
Also adjust the debug message accordingly, and pimp it
with the standard encoder id+name thing.

Trivial bits done with cocci:
@@
expression DP;
@@
(
- intel_dp_sink_dpms(DP, DRM_MODE_DPMS_OFF)
+ intel_dp_set_power(DP, DP_SET_POWER_D3)
|
- intel_dp_sink_dpms(DP, DRM_MODE_DPMS_ON)
+ intel_dp_set_power(DP, DP_SET_POWER_D0)
)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201016194800.25581-2-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/display/intel_ddi.c
drivers/gpu/drm/i915/display/intel_dp.c
drivers/gpu/drm/i915/display/intel_dp.h
drivers/gpu/drm/i915/display/intel_dp_mst.c

index cdcb7b1034ae4ad53c2785c64374219f33214c3e..80b7491f6beedb905be3d971d671055e9d6b3896 100644 (file)
@@ -3387,7 +3387,7 @@ static void tgl_ddi_pre_enable_dp(struct intel_atomic_state *state,
        intel_ddi_init_dp_buf_reg(encoder);
 
        if (!is_mst)
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
+               intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
 
        intel_dp_sink_set_decompression_state(intel_dp, crtc_state, true);
        /*
@@ -3469,7 +3469,7 @@ static void hsw_ddi_pre_enable_dp(struct intel_atomic_state *state,
 
        intel_ddi_init_dp_buf_reg(encoder);
        if (!is_mst)
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
+               intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
        intel_dp_configure_protocol_converter(intel_dp);
        intel_dp_sink_set_decompression_state(intel_dp, crtc_state,
                                              true);
@@ -3647,7 +3647,7 @@ static void intel_ddi_post_disable_dp(struct intel_atomic_state *state,
         * Power down sink before disabling the port, otherwise we end
         * up getting interrupts from the sink on detecting link loss.
         */
-       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
+       intel_dp_set_power(intel_dp, DP_SET_POWER_D3);
 
        if (INTEL_GEN(dev_priv) >= 12) {
                if (is_mst) {
index 1901c88d418fa9d078a260d289b024a5fe4b7a28..7804750b1ca790d0b8ffae266c2571d4a55c9166 100644 (file)
@@ -3496,22 +3496,22 @@ void intel_dp_sink_set_decompression_state(struct intel_dp *intel_dp,
                            enable ? "enable" : "disable");
 }
 
-/* If the sink supports it, try to set the power state appropriately */
-void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
+/* If the device supports it, try to set the power state appropriately */
+void intel_dp_set_power(struct intel_dp *intel_dp, u8 mode)
 {
-       struct drm_i915_private *i915 = dp_to_i915(intel_dp);
+       struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
+       struct drm_i915_private *i915 = to_i915(encoder->base.dev);
        int ret, i;
 
        /* Should have a valid DPCD by this point */
        if (intel_dp->dpcd[DP_DPCD_REV] < 0x11)
                return;
 
-       if (mode != DRM_MODE_DPMS_ON) {
+       if (mode != DP_SET_POWER_D0) {
                if (downstream_hpd_needs_d0(intel_dp))
                        return;
 
-               ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
-                                        DP_SET_POWER_D3);
+               ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, mode);
        } else {
                struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
 
@@ -3520,8 +3520,7 @@ void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
                 * time to wake up.
                 */
                for (i = 0; i < 3; i++) {
-                       ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
-                                                DP_SET_POWER_D0);
+                       ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, mode);
                        if (ret == 1)
                                break;
                        msleep(1);
@@ -3532,8 +3531,9 @@ void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
        }
 
        if (ret != 1)
-               drm_dbg_kms(&i915->drm, "failed to %s sink power state\n",
-                           mode == DRM_MODE_DPMS_ON ? "enable" : "disable");
+               drm_dbg_kms(&i915->drm, "[ENCODER:%d:%s] Set power to %s failed\n",
+                           encoder->base.base.id, encoder->base.name,
+                           mode == DP_SET_POWER_D0 ? "D0" : "D3");
 }
 
 static bool cpt_dp_port_selected(struct drm_i915_private *dev_priv,
@@ -3707,7 +3707,7 @@ static void intel_disable_dp(struct intel_atomic_state *state,
         * ensure that we have vdd while we switch off the panel. */
        intel_edp_panel_vdd_on(intel_dp);
        intel_edp_backlight_off(old_conn_state);
-       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
+       intel_dp_set_power(intel_dp, DP_SET_POWER_D3);
        intel_edp_panel_off(intel_dp);
 }
 
@@ -3929,7 +3929,7 @@ static void intel_enable_dp(struct intel_atomic_state *state,
                                    lane_mask);
        }
 
-       intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
+       intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
        intel_dp_configure_protocol_converter(intel_dp);
        intel_dp_start_link_train(intel_dp);
        intel_dp_stop_link_train(intel_dp);
index 08a1c0aa8b94b78a4ee9d7e734d5e81ba015e377..9aa8d5a590f9ea369a85c3bb0d2efb3bd924cc2c 100644 (file)
@@ -50,7 +50,7 @@ int intel_dp_get_link_train_fallback_values(struct intel_dp *intel_dp,
                                            int link_rate, u8 lane_count);
 int intel_dp_retrain_link(struct intel_encoder *encoder,
                          struct drm_modeset_acquire_ctx *ctx);
-void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode);
+void intel_dp_set_power(struct intel_dp *intel_dp, u8 mode);
 void intel_dp_configure_protocol_converter(struct intel_dp *intel_dp);
 void intel_dp_sink_set_decompression_state(struct intel_dp *intel_dp,
                                           const struct intel_crtc_state *crtc_state,
index 64d885539e94ad4d11dc70df56cb1475d3998ae0..5d745d9b99b2ad8b028b66f607dfccc030edd7df 100644 (file)
@@ -488,7 +488,7 @@ static void intel_mst_pre_enable_dp(struct intel_atomic_state *state,
                    intel_dp->active_mst_links);
 
        if (first_mst_stream)
-               intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
+               intel_dp_set_power(intel_dp, DP_SET_POWER_D0);
 
        drm_dp_send_power_updown_phy(&intel_dp->mst_mgr, connector->port, true);