drm/i915: Handle a few more cases for crtc hw/uapi split, v3.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 31 Oct 2019 11:25:59 +0000 (12:25 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fri, 1 Nov 2019 13:51:20 +0000 (14:51 +0100)
We are still looking at drm_crtc_state in a few places, convert those
to use intel_crtc_state instead.

Changes since v1:
- Move to before uapi/hw split.
- Add hunks for intel_pm.c as well.
Changes since v2:
- Incorporate Ville's feedback.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191031112610.27608-1-maarten.lankhorst@linux.intel.com
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_dp_mst.c
drivers/gpu/drm/i915/display/intel_psr.c
drivers/gpu/drm/i915/intel_pm.c

index 348ce04..9b7c559 100644 (file)
@@ -16714,8 +16714,7 @@ static int intel_initial_commit(struct drm_device *dev)
 {
        struct drm_atomic_state *state = NULL;
        struct drm_modeset_acquire_ctx ctx;
-       struct drm_crtc *crtc;
-       struct drm_crtc_state *crtc_state;
+       struct intel_crtc *crtc;
        int ret = 0;
 
        state = drm_atomic_state_alloc(dev);
@@ -16727,15 +16726,17 @@ static int intel_initial_commit(struct drm_device *dev)
 retry:
        state->acquire_ctx = &ctx;
 
-       drm_for_each_crtc(crtc, dev) {
-               crtc_state = drm_atomic_get_crtc_state(state, crtc);
+       for_each_intel_crtc(dev, crtc) {
+               struct intel_crtc_state *crtc_state =
+                       intel_atomic_get_crtc_state(state, crtc);
+
                if (IS_ERR(crtc_state)) {
                        ret = PTR_ERR(crtc_state);
                        goto out;
                }
 
-               if (crtc_state->active) {
-                       ret = drm_atomic_add_affected_planes(state, crtc);
+               if (crtc_state->base.active) {
+                       ret = drm_atomic_add_affected_planes(state, &crtc->base);
                        if (ret)
                                goto out;
 
@@ -16745,7 +16746,7 @@ retry:
                         * having a proper LUT loaded. Remove once we
                         * have readout for pipe gamma enable.
                         */
-                       crtc_state->color_mgmt_changed = true;
+                       crtc_state->base.color_mgmt_changed = true;
                }
        }
 
index 715b710..00a5540 100644 (file)
@@ -168,7 +168,6 @@ intel_dp_mst_atomic_check(struct drm_connector *connector,
        struct intel_connector *intel_connector =
                to_intel_connector(connector);
        struct drm_crtc *new_crtc = new_conn_state->crtc;
-       struct drm_crtc_state *crtc_state;
        struct drm_dp_mst_topology_mgr *mgr;
        int ret;
 
@@ -183,11 +182,16 @@ intel_dp_mst_atomic_check(struct drm_connector *connector,
         * connector
         */
        if (new_crtc) {
-               crtc_state = drm_atomic_get_new_crtc_state(state, new_crtc);
+               struct intel_atomic_state *intel_state =
+                       to_intel_atomic_state(state);
+               struct intel_crtc *intel_crtc = to_intel_crtc(new_crtc);
+               struct intel_crtc_state *crtc_state =
+                       intel_atomic_get_new_crtc_state(intel_state,
+                                                       intel_crtc);
 
                if (!crtc_state ||
-                   !drm_atomic_crtc_needs_modeset(crtc_state) ||
-                   crtc_state->enable)
+                   !drm_atomic_crtc_needs_modeset(&crtc_state->base) ||
+                   crtc_state->base.enable)
                        return 0;
        }
 
index 6a9f322..359a607 100644 (file)
@@ -26,6 +26,7 @@
 #include "display/intel_dp.h"
 
 #include "i915_drv.h"
+#include "intel_atomic.h"
 #include "intel_display_types.h"
 #include "intel_psr.h"
 #include "intel_sprite.h"
@@ -1096,7 +1097,7 @@ static int intel_psr_fastset_force(struct drm_i915_private *dev_priv)
        struct drm_device *dev = &dev_priv->drm;
        struct drm_modeset_acquire_ctx ctx;
        struct drm_atomic_state *state;
-       struct drm_crtc *crtc;
+       struct intel_crtc *crtc;
        int err;
 
        state = drm_atomic_state_alloc(dev);
@@ -1107,21 +1108,18 @@ static int intel_psr_fastset_force(struct drm_i915_private *dev_priv)
        state->acquire_ctx = &ctx;
 
 retry:
-       drm_for_each_crtc(crtc, dev) {
-               struct drm_crtc_state *crtc_state;
-               struct intel_crtc_state *intel_crtc_state;
+       for_each_intel_crtc(dev, crtc) {
+               struct intel_crtc_state *crtc_state =
+                       intel_atomic_get_crtc_state(state, crtc);
 
-               crtc_state = drm_atomic_get_crtc_state(state, crtc);
                if (IS_ERR(crtc_state)) {
                        err = PTR_ERR(crtc_state);
                        goto error;
                }
 
-               intel_crtc_state = to_intel_crtc_state(crtc_state);
-
-               if (crtc_state->active && intel_crtc_state->has_psr) {
+               if (crtc_state->base.active && crtc_state->has_psr) {
                        /* Mark mode as changed to trigger a pipe->update() */
-                       crtc_state->mode_changed = true;
+                       crtc_state->base.mode_changed = true;
                        break;
                }
        }
index 5d2b460..d6aed88 100644 (file)
@@ -3073,11 +3073,9 @@ static bool ilk_validate_pipe_wm(const struct drm_i915_private *dev_priv,
 /* Compute new watermarks for the pipe */
 static int ilk_compute_pipe_wm(struct intel_crtc_state *crtc_state)
 {
-       struct drm_atomic_state *state = crtc_state->base.state;
+       struct drm_i915_private *dev_priv = to_i915(crtc_state->base.crtc->dev);
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->base.crtc);
        struct intel_pipe_wm *pipe_wm;
-       struct drm_device *dev = state->dev;
-       const struct drm_i915_private *dev_priv = to_i915(dev);
        struct intel_plane *plane;
        const struct intel_plane_state *plane_state;
        const struct intel_plane_state *pristate = NULL;
@@ -3772,7 +3770,7 @@ bool intel_can_enable_sagv(struct intel_atomic_state *state)
        crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
        crtc_state = to_intel_crtc_state(crtc->base.state);
 
-       if (crtc->base.state->adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
+       if (crtc_state->base.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE)
                return false;
 
        for_each_intel_plane_on_crtc(dev, crtc, plane) {