drm/i915: Have pfit calculations return an error code
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / display / intel_dp.c
index ec11578..5c7009b 100644 (file)
@@ -2339,15 +2339,13 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
 
 static int
 intel_dp_ycbcr420_config(struct intel_dp *intel_dp,
-                        struct drm_connector *connector,
-                        struct intel_crtc_state *crtc_state)
+                        struct intel_crtc_state *crtc_state,
+                        const struct drm_connector_state *conn_state)
 {
-       struct drm_i915_private *i915 = dp_to_i915(intel_dp);
+       struct drm_connector *connector = conn_state->connector;
        const struct drm_display_info *info = &connector->display_info;
        const struct drm_display_mode *adjusted_mode =
                &crtc_state->hw.adjusted_mode;
-       struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-       int ret;
 
        if (!drm_mode_is_420_only(info, adjusted_mode) ||
            !intel_dp_get_colorimetry_status(intel_dp) ||
@@ -2356,17 +2354,7 @@ intel_dp_ycbcr420_config(struct intel_dp *intel_dp,
 
        crtc_state->output_format = INTEL_OUTPUT_FORMAT_YCBCR420;
 
-       /* YCBCR 420 output conversion needs a scaler */
-       ret = skl_update_scaler_crtc(crtc_state);
-       if (ret) {
-               drm_dbg_kms(&i915->drm,
-                           "Scaler allocation for output failed\n");
-               return ret;
-       }
-
-       intel_pch_panel_fitting(crtc, crtc_state, DRM_MODE_SCALE_FULLSCREEN);
-
-       return 0;
+       return intel_pch_panel_fitting(crtc_state, conn_state);
 }
 
 bool intel_dp_limited_color_range(const struct intel_crtc_state *crtc_state,
@@ -2545,7 +2533,6 @@ intel_dp_compute_config(struct intel_encoder *encoder,
        struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
        struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder);
        enum port port = encoder->port;
-       struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
        struct intel_connector *intel_connector = intel_dp->attached_connector;
        struct intel_digital_connector_state *intel_conn_state =
                to_intel_digital_connector_state(conn_state);
@@ -2561,9 +2548,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
        if (lspcon->active)
                lspcon_ycbcr420_config(&intel_connector->base, pipe_config);
        else
-               ret = intel_dp_ycbcr420_config(intel_dp, &intel_connector->base,
-                                              pipe_config);
-
+               ret = intel_dp_ycbcr420_config(intel_dp, pipe_config,
+                                              conn_state);
        if (ret)
                return ret;
 
@@ -2579,18 +2565,12 @@ intel_dp_compute_config(struct intel_encoder *encoder,
                intel_fixed_panel_mode(intel_connector->panel.fixed_mode,
                                       adjusted_mode);
 
-               if (INTEL_GEN(dev_priv) >= 9) {
-                       ret = skl_update_scaler_crtc(pipe_config);
-                       if (ret)
-                               return ret;
-               }
-
                if (HAS_GMCH(dev_priv))
-                       intel_gmch_panel_fitting(intel_crtc, pipe_config,
-                                                conn_state->scaling_mode);
+                       ret = intel_gmch_panel_fitting(pipe_config, conn_state);
                else
-                       intel_pch_panel_fitting(intel_crtc, pipe_config,
-                                               conn_state->scaling_mode);
+                       ret = intel_pch_panel_fitting(pipe_config, conn_state);
+               if (ret)
+                       return ret;
        }
 
        if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN)
@@ -6895,9 +6875,9 @@ static const struct hdcp2_dp_msg_data hdcp2_dp_msg_data[] = {
          0, 0 },
 };
 
-static inline
-int intel_dp_hdcp2_read_rx_status(struct intel_digital_port *intel_dig_port,
-                                 u8 *rx_status)
+static int
+intel_dp_hdcp2_read_rx_status(struct intel_digital_port *intel_dig_port,
+                             u8 *rx_status)
 {
        struct drm_i915_private *i915 = to_i915(intel_dig_port->base.base.dev);
        ssize_t ret;