]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/display: pass display to intel_crtc_for_pipe()
authorJani Nikula <jani.nikula@intel.com>
Wed, 4 Sep 2024 13:06:32 +0000 (16:06 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 5 Sep 2024 18:05:42 +0000 (21:05 +0300)
Convert the intel_crtc_for_pipe() struct drm_i915_private parameter to
struct intel_display.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240904130633.3831492-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
19 files changed:
drivers/gpu/drm/i915/display/i9xx_wm.c
drivers/gpu/drm/i915/display/intel_atomic_plane.c
drivers/gpu/drm/i915/display/intel_cdclk.c
drivers/gpu/drm/i915/display/intel_crt.c
drivers/gpu/drm/i915/display/intel_crtc.c
drivers/gpu/drm/i915/display/intel_crtc.h
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_display_driver.c
drivers/gpu/drm/i915/display/intel_display_irq.c
drivers/gpu/drm/i915/display/intel_display_trace.h
drivers/gpu/drm/i915/display/intel_dpll.c
drivers/gpu/drm/i915/display/intel_dsb.c
drivers/gpu/drm/i915/display/intel_fbc.c
drivers/gpu/drm/i915/display/intel_fdi.c
drivers/gpu/drm/i915/display/intel_fifo_underrun.c
drivers/gpu/drm/i915/display/intel_link_bw.c
drivers/gpu/drm/i915/display/intel_modeset_setup.c
drivers/gpu/drm/i915/display/intel_sprite_uapi.c
drivers/gpu/drm/i915/display/skl_watermark.c

index cdaf6dfb824eb1bae31e66e15596d0a2d51b02aa..8442d75e5c28e44c6b9c4e2334ae573bbefc7ed9 100644 (file)
@@ -724,10 +724,11 @@ static unsigned int g4x_tlb_miss_wa(int fifo_size, int width, int cpp)
 static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
                                const struct g4x_wm_values *wm)
 {
+       struct intel_display *display = &dev_priv->display;
        enum pipe pipe;
 
        for_each_pipe(dev_priv, pipe)
-               trace_g4x_wm(intel_crtc_for_pipe(dev_priv, pipe), wm);
+               trace_g4x_wm(intel_crtc_for_pipe(display, pipe), wm);
 
        intel_uncore_write(&dev_priv->uncore, DSPFW1(dev_priv),
                           FW_WM(wm->sr.plane, SR) |
@@ -756,10 +757,11 @@ static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
 static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
                                const struct vlv_wm_values *wm)
 {
+       struct intel_display *display = &dev_priv->display;
        enum pipe pipe;
 
        for_each_pipe(dev_priv, pipe) {
-               trace_vlv_wm(intel_crtc_for_pipe(dev_priv, pipe), wm);
+               trace_vlv_wm(intel_crtc_for_pipe(display, pipe), wm);
 
                intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
                                   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |
@@ -2097,12 +2099,13 @@ static void i965_update_wm(struct drm_i915_private *dev_priv)
 static struct intel_crtc *intel_crtc_for_plane(struct drm_i915_private *i915,
                                               enum i9xx_plane_id i9xx_plane)
 {
+       struct intel_display *display = &i915->display;
        struct intel_plane *plane;
 
        for_each_intel_plane(&i915->drm, plane) {
                if (plane->id == PLANE_PRIMARY &&
                    plane->i9xx_plane == i9xx_plane)
-                       return intel_crtc_for_pipe(i915, plane->pipe);
+                       return intel_crtc_for_pipe(display, plane->pipe);
        }
 
        return NULL;
@@ -3725,6 +3728,7 @@ static void g4x_wm_get_hw_state(struct drm_i915_private *dev_priv)
 
 static void g4x_wm_sanitize(struct drm_i915_private *dev_priv)
 {
+       struct intel_display *display = &dev_priv->display;
        struct intel_plane *plane;
        struct intel_crtc *crtc;
 
@@ -3732,7 +3736,7 @@ static void g4x_wm_sanitize(struct drm_i915_private *dev_priv)
 
        for_each_intel_plane(&dev_priv->drm, plane) {
                struct intel_crtc *crtc =
-                       intel_crtc_for_pipe(dev_priv, plane->pipe);
+                       intel_crtc_for_pipe(display, plane->pipe);
                struct intel_crtc_state *crtc_state =
                        to_intel_crtc_state(crtc->base.state);
                struct intel_plane_state *plane_state =
@@ -3880,6 +3884,7 @@ static void vlv_wm_get_hw_state(struct drm_i915_private *dev_priv)
 
 static void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
 {
+       struct intel_display *display = &dev_priv->display;
        struct intel_plane *plane;
        struct intel_crtc *crtc;
 
@@ -3887,7 +3892,7 @@ static void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
 
        for_each_intel_plane(&dev_priv->drm, plane) {
                struct intel_crtc *crtc =
-                       intel_crtc_for_pipe(dev_priv, plane->pipe);
+                       intel_crtc_for_pipe(display, plane->pipe);
                struct intel_crtc_state *crtc_state =
                        to_intel_crtc_state(crtc->base.state);
                struct intel_plane_state *plane_state =
index c9978bbd42a9a4a5695632608960dfa8b6ef84eb..928d985f9985e7bcfc538ec6be074af8fee94fb6 100644 (file)
@@ -711,13 +711,13 @@ intel_crtc_get_plane(struct intel_crtc *crtc, enum plane_id plane_id)
 int intel_plane_atomic_check(struct intel_atomic_state *state,
                             struct intel_plane *plane)
 {
-       struct drm_i915_private *i915 = to_i915(state->base.dev);
+       struct intel_display *display = to_intel_display(state);
        struct intel_plane_state *new_plane_state =
                intel_atomic_get_new_plane_state(state, plane);
        const struct intel_plane_state *old_plane_state =
                intel_atomic_get_old_plane_state(state, plane);
        const struct intel_plane_state *new_primary_crtc_plane_state;
-       struct intel_crtc *crtc = intel_crtc_for_pipe(i915, plane->pipe);
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, plane->pipe);
        const struct intel_crtc_state *old_crtc_state =
                intel_atomic_get_old_crtc_state(state, crtc);
        struct intel_crtc_state *new_crtc_state =
index d6031419e32bea8bb838745b625a3ebaa8076969..66964c7d2a2ce47e7c6d544039b9717804c76021 100644 (file)
@@ -2039,6 +2039,7 @@ static void _bxt_set_cdclk(struct drm_i915_private *dev_priv,
                           const struct intel_cdclk_config *cdclk_config,
                           enum pipe pipe)
 {
+       struct intel_display *display = &dev_priv->display;
        int cdclk = cdclk_config->cdclk;
        int vco = cdclk_config->vco;
 
@@ -2064,7 +2065,7 @@ static void _bxt_set_cdclk(struct drm_i915_private *dev_priv,
        intel_de_write(dev_priv, CDCLK_CTL, bxt_cdclk_ctl(dev_priv, cdclk_config, pipe));
 
        if (pipe != INVALID_PIPE)
-               intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(dev_priv, pipe));
+               intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(display, pipe));
 }
 
 static void bxt_set_cdclk(struct drm_i915_private *dev_priv,
@@ -3263,6 +3264,7 @@ static bool intel_cdclk_need_serialize(struct drm_i915_private *i915,
 
 int intel_modeset_calc_cdclk(struct intel_atomic_state *state)
 {
+       struct intel_display *display = to_intel_display(state);
        struct drm_i915_private *dev_priv = to_i915(state->base.dev);
        const struct intel_cdclk_state *old_cdclk_state;
        struct intel_cdclk_state *new_cdclk_state;
@@ -3309,7 +3311,7 @@ int intel_modeset_calc_cdclk(struct intel_atomic_state *state)
                struct intel_crtc_state *crtc_state;
 
                pipe = ilog2(new_cdclk_state->active_pipes);
-               crtc = intel_crtc_for_pipe(dev_priv, pipe);
+               crtc = intel_crtc_for_pipe(display, pipe);
 
                crtc_state = intel_atomic_get_crtc_state(&state->base, crtc);
                if (IS_ERR(crtc_state))
index 835c8b8444946f1423322f6301e11a0563ae9fcd..fd78adbaadbe82ae7dbaaee1f4a1175ede81932d 100644 (file)
@@ -694,6 +694,7 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector)
 static enum drm_connector_status
 intel_crt_load_detect(struct intel_crt *crt, enum pipe pipe)
 {
+       struct intel_display *display = to_intel_display(&crt->base);
        struct drm_device *dev = crt->base.base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
        enum transcoder cpu_transcoder = (enum transcoder)pipe;
@@ -734,7 +735,7 @@ intel_crt_load_detect(struct intel_crt *crt, enum pipe pipe)
                                      TRANSCONF(dev_priv, cpu_transcoder));
                /* Wait for next Vblank to substitue
                 * border color for Color info */
-               intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(dev_priv, pipe));
+               intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(display, pipe));
                st00 = intel_de_read8(dev_priv, _VGA_MSR_WRITE);
                status = ((st00 & (1 << 4)) != 0) ?
                        connector_status_connected :
index 4218f746691e605d64c8dbbba6ab55572b2f6312..aed3853952be8ee2d56c6eb9c99bf22ec0882e91 100644 (file)
@@ -49,12 +49,12 @@ struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915)
        return to_intel_crtc(drm_crtc_from_index(&i915->drm, 0));
 }
 
-struct intel_crtc *intel_crtc_for_pipe(struct drm_i915_private *i915,
+struct intel_crtc *intel_crtc_for_pipe(struct intel_display *display,
                                       enum pipe pipe)
 {
        struct intel_crtc *crtc;
 
-       for_each_intel_crtc(&i915->drm, crtc) {
+       for_each_intel_crtc(display->drm, crtc) {
                if (crtc->pipe == pipe)
                        return crtc;
        }
@@ -70,7 +70,8 @@ void intel_crtc_wait_for_next_vblank(struct intel_crtc *crtc)
 void intel_wait_for_vblank_if_active(struct drm_i915_private *i915,
                                     enum pipe pipe)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(i915, pipe);
+       struct intel_display *display = &i915->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
 
        if (crtc->active)
                intel_crtc_wait_for_next_vblank(crtc);
index b615b7ab5ccd7bc0a3ee53516da4afa46eb53d22..0de8c772df2ee00147f4869ca04dfc6aac954b8e 100644 (file)
@@ -15,6 +15,7 @@ struct drm_i915_private;
 struct intel_atomic_state;
 struct intel_crtc;
 struct intel_crtc_state;
+struct intel_display;
 
 /*
  * FIXME: We should instead only take spinlocks once for the entire update
@@ -43,7 +44,7 @@ void intel_pipe_update_end(struct intel_atomic_state *state,
                           struct intel_crtc *crtc);
 void intel_wait_for_vblank_workers(struct intel_atomic_state *state);
 struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915);
-struct intel_crtc *intel_crtc_for_pipe(struct drm_i915_private *i915,
+struct intel_crtc *intel_crtc_for_pipe(struct intel_display *display,
                                       enum pipe pipe);
 void intel_wait_for_vblank_if_active(struct drm_i915_private *i915,
                                     enum pipe pipe);
index a734dbf937d02f8f34a1d0eb43e24fd599bc7b56..b4ec9bf12aa740a3efb490f71c64b74f15bc33bd 100644 (file)
@@ -292,10 +292,10 @@ u8 intel_crtc_joined_pipe_mask(const struct intel_crtc_state *crtc_state)
 
 struct intel_crtc *intel_primary_crtc(const struct intel_crtc_state *crtc_state)
 {
-       struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev);
+       struct intel_display *display = to_intel_display(crtc_state);
 
        if (intel_crtc_is_joiner_secondary(crtc_state))
-               return intel_crtc_for_pipe(i915, joiner_primary_pipe(crtc_state));
+               return intel_crtc_for_pipe(display, joiner_primary_pipe(crtc_state));
        else
                return to_intel_crtc(crtc_state->uapi.crtc);
 }
@@ -1678,6 +1678,7 @@ static void hsw_configure_cpu_transcoder(const struct intel_crtc_state *crtc_sta
 static void hsw_crtc_enable(struct intel_atomic_state *state,
                            struct intel_crtc *crtc)
 {
+       struct intel_display *display = to_intel_display(state);
        const struct intel_crtc_state *new_crtc_state =
                intel_atomic_get_new_crtc_state(state, crtc);
        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -1777,7 +1778,7 @@ static void hsw_crtc_enable(struct intel_atomic_state *state,
                hsw_workaround_pipe = pipe_crtc_state->hsw_workaround_pipe;
                if (IS_HASWELL(dev_priv) && hsw_workaround_pipe != INVALID_PIPE) {
                        struct intel_crtc *wa_crtc =
-                               intel_crtc_for_pipe(dev_priv, hsw_workaround_pipe);
+                               intel_crtc_for_pipe(display, hsw_workaround_pipe);
 
                        intel_crtc_wait_for_next_vblank(wa_crtc);
                        intel_crtc_wait_for_next_vblank(wa_crtc);
@@ -3987,7 +3988,7 @@ int intel_crtc_dotclock(const struct intel_crtc_state *pipe_config)
 struct drm_display_mode *
 intel_encoder_current_mode(struct intel_encoder *encoder)
 {
-       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+       struct intel_display *display = to_intel_display(encoder);
        struct intel_crtc_state *crtc_state;
        struct drm_display_mode *mode;
        struct intel_crtc *crtc;
@@ -3996,7 +3997,7 @@ intel_encoder_current_mode(struct intel_encoder *encoder)
        if (!encoder->get_hw_state(encoder, &pipe))
                return NULL;
 
-       crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       crtc = intel_crtc_for_pipe(display, pipe);
 
        mode = kzalloc(sizeof(*mode), GFP_KERNEL);
        if (!mode)
@@ -8258,7 +8259,8 @@ out:
 
 void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_display *display = &dev_priv->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
        enum transcoder cpu_transcoder = (enum transcoder)pipe;
        /* 640x480@60Hz, ~25175 kHz */
        struct dpll clock = {
@@ -8339,7 +8341,8 @@ void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 
 void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_display *display = &dev_priv->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
 
        drm_dbg_kms(&dev_priv->drm, "disabling pipe %c due to force quirk\n",
                    pipe_name(pipe));
index 069426d9260b194c00e31835d2abe37d4bc6a8d0..e7670774ecd08fc19c75efd3a0fc045a607dc806 100644 (file)
@@ -168,10 +168,11 @@ static void intel_mode_config_cleanup(struct drm_i915_private *i915)
 
 static void intel_plane_possible_crtcs_init(struct drm_i915_private *dev_priv)
 {
+       struct intel_display *display = &dev_priv->display;
        struct intel_plane *plane;
 
        for_each_intel_plane(&dev_priv->drm, plane) {
-               struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv,
+               struct intel_crtc *crtc = intel_crtc_for_pipe(display,
                                                              plane->pipe);
 
                plane->base.possible_crtcs = drm_crtc_mask(&crtc->base);
index 52d31f736b7f2dc47d3e77e20eca33e5cbf62910..9c68c681eee321727ea731360c8573e88a92a81c 100644 (file)
@@ -29,7 +29,8 @@
 static void
 intel_handle_vblank(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_display *display = &dev_priv->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
 
        drm_crtc_handle_vblank(&crtc->base);
 }
@@ -307,7 +308,8 @@ static void display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
                                         u32 crc2, u32 crc3,
                                         u32 crc4)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_display *display = &dev_priv->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
        struct intel_pipe_crc *pipe_crc = &crtc->pipe_crc;
        u32 crcs[5] = { crc0, crc1, crc2, crc3, crc4 };
 
@@ -346,7 +348,8 @@ display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
 static void flip_done_handler(struct drm_i915_private *i915,
                              enum pipe pipe)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(i915, pipe);
+       struct intel_display *display = &i915->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
 
        spin_lock(&i915->drm.event_lock);
 
index c734ef1fba3c87c650b71fcb0ea1988b08ff6c54..7176eefaf50509a951ae67e78da32c422b2715d9 100644 (file)
@@ -141,7 +141,8 @@ TRACE_EVENT(intel_cpu_fifo_underrun,
                             ),
 
            TP_fast_assign(
-                           struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+                          struct intel_display *display = &dev_priv->display;
+                          struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
                           __assign_str(dev);
                           __entry->pipe = pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
@@ -165,8 +166,9 @@ TRACE_EVENT(intel_pch_fifo_underrun,
                             ),
 
            TP_fast_assign(
+                          struct intel_display *display = &dev_priv->display;
                           enum pipe pipe = pch_transcoder;
-                          struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+                          struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
                           __assign_str(dev);
                           __entry->pipe = pipe;
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
@@ -458,7 +460,8 @@ TRACE_EVENT(intel_fbc_activate,
                             ),
 
            TP_fast_assign(
-                          struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
+                          struct intel_display *display = to_intel_display(plane->base.dev);
+                          struct intel_crtc *crtc = intel_crtc_for_pipe(display,
                                                                         plane->pipe);
                           __assign_str(dev);
                           __assign_str(name);
@@ -485,7 +488,8 @@ TRACE_EVENT(intel_fbc_deactivate,
                             ),
 
            TP_fast_assign(
-                          struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
+                          struct intel_display *display = to_intel_display(plane->base.dev);
+                          struct intel_crtc *crtc = intel_crtc_for_pipe(display,
                                                                         plane->pipe);
                           __assign_str(dev);
                           __assign_str(name);
@@ -512,7 +516,8 @@ TRACE_EVENT(intel_fbc_nuke,
                             ),
 
            TP_fast_assign(
-                          struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(plane->base.dev),
+                          struct intel_display *display = to_intel_display(plane->base.dev);
+                          struct intel_crtc *crtc = intel_crtc_for_pipe(display,
                                                                         plane->pipe);
                           __assign_str(dev);
                           __assign_str(name);
index 340dfce480b83d98a102a2c96bbca9124a965f3e..bc72d1c0cb414619dea80a94d84d648edb436b2e 100644 (file)
@@ -2212,7 +2212,8 @@ void chv_enable_pll(const struct intel_crtc_state *crtc_state)
 int vlv_force_pll_on(struct drm_i915_private *dev_priv, enum pipe pipe,
                     const struct dpll *dpll)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_display *display = &dev_priv->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
        struct intel_crtc_state *crtc_state;
 
        crtc_state = intel_crtc_state_alloc(crtc);
index da24e041d269945fec12aaa91297e34b250a006d..c39bae1be89e3f1bda26d3815963d9d1e1e184ef 100644 (file)
@@ -763,7 +763,7 @@ void intel_dsb_cleanup(struct intel_dsb *dsb)
 void intel_dsb_irq_handler(struct intel_display *display,
                           enum pipe pipe, enum intel_dsb_id dsb_id)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(to_i915(display->drm), pipe);
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
        u32 tmp, errors;
 
        tmp = intel_de_read_fw(display, DSB_INTERRUPT(pipe, dsb_id));
index b53b38c2f19f28095a8a53cb43f941d1c27ad0ba..2e0863093cffa5c577decdbb38966a0b4f20088f 100644 (file)
@@ -1793,7 +1793,6 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
 {
        struct intel_fbc *fbc = container_of(work, typeof(*fbc), underrun_work);
        struct intel_display *display = fbc->display;
-       struct drm_i915_private *i915 = to_i915(display->drm);
 
        mutex_lock(&fbc->lock);
 
@@ -1806,7 +1805,7 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
 
        intel_fbc_deactivate(fbc, "FIFO underrun");
        if (!fbc->flip_pending)
-               intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(i915, fbc->state.plane->pipe));
+               intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(display, fbc->state.plane->pipe));
        __intel_fbc_disable(fbc);
 out:
        mutex_unlock(&fbc->lock);
index 222cd0e1a2bc851249812f78e652298fde118f5f..0168894e9cd1bb99615702cb691b0a2ba1471264 100644 (file)
@@ -137,6 +137,7 @@ void intel_fdi_link_train(struct intel_crtc *crtc,
  */
 int intel_fdi_add_affected_crtcs(struct intel_atomic_state *state)
 {
+       struct intel_display *display = to_intel_display(state);
        struct drm_i915_private *i915 = to_i915(state->base.dev);
        const struct intel_crtc_state *old_crtc_state;
        const struct intel_crtc_state *new_crtc_state;
@@ -145,7 +146,7 @@ int intel_fdi_add_affected_crtcs(struct intel_atomic_state *state)
        if (!IS_IVYBRIDGE(i915) || INTEL_NUM_PIPES(i915) != 3)
                return 0;
 
-       crtc = intel_crtc_for_pipe(i915, PIPE_C);
+       crtc = intel_crtc_for_pipe(display, PIPE_C);
        new_crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
        if (!new_crtc_state)
                return 0;
@@ -157,7 +158,7 @@ int intel_fdi_add_affected_crtcs(struct intel_atomic_state *state)
        if (!old_crtc_state->fdi_lanes)
                return 0;
 
-       crtc = intel_crtc_for_pipe(i915, PIPE_B);
+       crtc = intel_crtc_for_pipe(display, PIPE_B);
        new_crtc_state = intel_atomic_get_crtc_state(&state->base, crtc);
        if (IS_ERR(new_crtc_state))
                return PTR_ERR(new_crtc_state);
@@ -184,6 +185,7 @@ static int ilk_check_fdi_lanes(struct drm_device *dev, enum pipe pipe,
                               struct intel_crtc_state *pipe_config,
                               enum pipe *pipe_to_reduce)
 {
+       struct intel_display *display = to_intel_display(dev);
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct drm_atomic_state *state = pipe_config->uapi.state;
        struct intel_crtc *other_crtc;
@@ -223,7 +225,7 @@ static int ilk_check_fdi_lanes(struct drm_device *dev, enum pipe pipe,
                if (pipe_config->fdi_lanes <= 2)
                        return 0;
 
-               other_crtc = intel_crtc_for_pipe(dev_priv, PIPE_C);
+               other_crtc = intel_crtc_for_pipe(display, PIPE_C);
                other_crtc_state =
                        intel_atomic_get_crtc_state(state, other_crtc);
                if (IS_ERR(other_crtc_state))
@@ -244,7 +246,7 @@ static int ilk_check_fdi_lanes(struct drm_device *dev, enum pipe pipe,
                        return -EINVAL;
                }
 
-               other_crtc = intel_crtc_for_pipe(dev_priv, PIPE_B);
+               other_crtc = intel_crtc_for_pipe(display, PIPE_B);
                other_crtc_state =
                        intel_atomic_get_crtc_state(state, other_crtc);
                if (IS_ERR(other_crtc_state))
index 8949fbb1cc60c92ec36f37acdda522841b3c31c2..4ffbaf44c21b9f301ae656cf88ab348cced9ff11 100644 (file)
@@ -57,6 +57,7 @@
 
 static bool ivb_can_enable_err_int(struct drm_device *dev)
 {
+       struct intel_display *display = to_intel_display(dev);
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct intel_crtc *crtc;
        enum pipe pipe;
@@ -64,7 +65,7 @@ static bool ivb_can_enable_err_int(struct drm_device *dev)
        lockdep_assert_held(&dev_priv->irq_lock);
 
        for_each_pipe(dev_priv, pipe) {
-               crtc = intel_crtc_for_pipe(dev_priv, pipe);
+               crtc = intel_crtc_for_pipe(display, pipe);
 
                if (crtc->cpu_fifo_underrun_disabled)
                        return false;
@@ -75,6 +76,7 @@ static bool ivb_can_enable_err_int(struct drm_device *dev)
 
 static bool cpt_can_enable_serr_int(struct drm_device *dev)
 {
+       struct intel_display *display = to_intel_display(dev);
        struct drm_i915_private *dev_priv = to_i915(dev);
        enum pipe pipe;
        struct intel_crtc *crtc;
@@ -82,7 +84,7 @@ static bool cpt_can_enable_serr_int(struct drm_device *dev)
        lockdep_assert_held(&dev_priv->irq_lock);
 
        for_each_pipe(dev_priv, pipe) {
-               crtc = intel_crtc_for_pipe(dev_priv, pipe);
+               crtc = intel_crtc_for_pipe(display, pipe);
 
                if (crtc->pch_fifo_underrun_disabled)
                        return false;
@@ -282,8 +284,9 @@ static void cpt_set_fifo_underrun_reporting(struct drm_device *dev,
 static bool __intel_set_cpu_fifo_underrun_reporting(struct drm_device *dev,
                                                    enum pipe pipe, bool enable)
 {
+       struct intel_display *display = to_intel_display(dev);
        struct drm_i915_private *dev_priv = to_i915(dev);
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
        bool old;
 
        lockdep_assert_held(&dev_priv->irq_lock);
@@ -351,8 +354,9 @@ bool intel_set_pch_fifo_underrun_reporting(struct drm_i915_private *dev_priv,
                                           enum pipe pch_transcoder,
                                           bool enable)
 {
+       struct intel_display *display = &dev_priv->display;
        struct intel_crtc *crtc =
-               intel_crtc_for_pipe(dev_priv, pch_transcoder);
+               intel_crtc_for_pipe(display, pch_transcoder);
        unsigned long flags;
        bool old;
 
@@ -395,7 +399,8 @@ bool intel_set_pch_fifo_underrun_reporting(struct drm_i915_private *dev_priv,
 void intel_cpu_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv,
                                         enum pipe pipe)
 {
-       struct intel_crtc *crtc = intel_crtc_for_pipe(dev_priv, pipe);
+       struct intel_display *display = &dev_priv->display;
+       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
        u32 underruns = 0;
 
        /* We may be called too early in init, thanks BIOS! */
index e7a9b860fac6e268d4671aea4bb3b8733b122c5f..c87cd1d16d0a2508487b9d3c3dd9582b803066bb 100644 (file)
@@ -26,7 +26,6 @@ void intel_link_bw_init_limits(struct intel_atomic_state *state,
                               struct intel_link_bw_limits *limits)
 {
        struct intel_display *display = to_intel_display(state);
-       struct drm_i915_private *i915 = to_i915(state->base.dev);
        enum pipe pipe;
 
        limits->force_fec_pipes = 0;
@@ -34,7 +33,7 @@ void intel_link_bw_init_limits(struct intel_atomic_state *state,
        for_each_pipe(display, pipe) {
                const struct intel_crtc_state *crtc_state =
                        intel_atomic_get_new_crtc_state(state,
-                                                       intel_crtc_for_pipe(i915, pipe));
+                                                       intel_crtc_for_pipe(display, pipe));
 
                if (state->base.duplicated && crtc_state) {
                        limits->max_bpp_x16[pipe] = crtc_state->max_link_bpp_x16;
index c2c3b3037938ff38ee5a2622abb997cb6ac935db..1f57549fce00caf5c687f02ca5062e1c221e7123 100644 (file)
@@ -222,6 +222,7 @@ static u8 get_transcoder_pipes(struct drm_i915_private *i915,
 static void get_portsync_pipes(struct intel_crtc *crtc,
                               u8 *master_pipe_mask, u8 *slave_pipes_mask)
 {
+       struct intel_display *display = to_intel_display(crtc);
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        struct intel_crtc_state *crtc_state =
                to_intel_crtc_state(crtc->base.state);
@@ -244,7 +245,7 @@ static void get_portsync_pipes(struct intel_crtc *crtc,
        *master_pipe_mask = get_transcoder_pipes(i915, BIT(master_transcoder));
        drm_WARN_ON(&i915->drm, !is_power_of_2(*master_pipe_mask));
 
-       master_crtc = intel_crtc_for_pipe(i915, ffs(*master_pipe_mask) - 1);
+       master_crtc = intel_crtc_for_pipe(display, ffs(*master_pipe_mask) - 1);
        master_crtc_state = to_intel_crtc_state(master_crtc->base.state);
        *slave_pipes_mask = get_transcoder_pipes(i915, master_crtc_state->sync_mode_slaves_mask);
 }
@@ -376,6 +377,7 @@ static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state
 static void
 intel_sanitize_plane_mapping(struct drm_i915_private *i915)
 {
+       struct intel_display *display = &i915->display;
        struct intel_crtc *crtc;
 
        if (DISPLAY_VER(i915) >= 4)
@@ -397,7 +399,7 @@ intel_sanitize_plane_mapping(struct drm_i915_private *i915)
                            "[PLANE:%d:%s] attached to the wrong pipe, disabling plane\n",
                            plane->base.base.id, plane->base.name);
 
-               plane_crtc = intel_crtc_for_pipe(i915, pipe);
+               plane_crtc = intel_crtc_for_pipe(display, pipe);
                intel_plane_disable_noatomic(plane_crtc, plane);
        }
 }
@@ -663,6 +665,7 @@ static void intel_sanitize_encoder(struct intel_encoder *encoder)
 /* FIXME read out full plane state for all planes */
 static void readout_plane_state(struct drm_i915_private *i915)
 {
+       struct intel_display *display = &i915->display;
        struct intel_plane *plane;
        struct intel_crtc *crtc;
 
@@ -675,7 +678,7 @@ static void readout_plane_state(struct drm_i915_private *i915)
 
                visible = plane->get_hw_state(plane, &pipe);
 
-               crtc = intel_crtc_for_pipe(i915, pipe);
+               crtc = intel_crtc_for_pipe(display, pipe);
                crtc_state = to_intel_crtc_state(crtc->base.state);
 
                intel_set_plane_visible(crtc_state, plane_state, visible);
@@ -696,6 +699,7 @@ static void readout_plane_state(struct drm_i915_private *i915)
 
 static void intel_modeset_readout_hw_state(struct drm_i915_private *i915)
 {
+       struct intel_display *display = &i915->display;
        struct intel_cdclk_state *cdclk_state =
                to_intel_cdclk_state(i915->display.cdclk.obj.state);
        struct intel_dbuf_state *dbuf_state =
@@ -744,7 +748,7 @@ static void intel_modeset_readout_hw_state(struct drm_i915_private *i915)
                pipe = 0;
 
                if (encoder->get_hw_state(encoder, &pipe)) {
-                       crtc = intel_crtc_for_pipe(i915, pipe);
+                       crtc = intel_crtc_for_pipe(display, pipe);
                        crtc_state = to_intel_crtc_state(crtc->base.state);
 
                        encoder->base.crtc = &crtc->base;
index 4853c480600426490d3c4ea0465f29441d64a53c..1d0b84b464c14ac40de2041b7f5416455c6eb358 100644 (file)
@@ -42,6 +42,7 @@ static void intel_plane_set_ckey(struct intel_plane_state *plane_state,
 int intel_sprite_set_colorkey_ioctl(struct drm_device *dev, void *data,
                                    struct drm_file *file_priv)
 {
+       struct intel_display *display = to_intel_display(dev);
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct drm_intel_sprite_colorkey *set = data;
        struct drm_plane *plane;
@@ -100,7 +101,7 @@ int intel_sprite_set_colorkey_ioctl(struct drm_device *dev, void *data,
                 */
                if (!ret && has_dst_key_in_primary_plane(dev_priv)) {
                        struct intel_crtc *crtc =
-                               intel_crtc_for_pipe(dev_priv,
+                               intel_crtc_for_pipe(display,
                                                    to_intel_plane(plane)->pipe);
 
                        plane_state = drm_atomic_get_plane_state(state,
index e955e399b3904672554aaa144cec38dc50cf17a3..29835b638495134e73e7dd82fa061b8b66ff1ddf 100644 (file)
@@ -3600,6 +3600,7 @@ static void intel_dbuf_mdclk_min_tracker_update(struct intel_atomic_state *state
 static enum pipe intel_mbus_joined_pipe(struct intel_atomic_state *state,
                                        const struct intel_dbuf_state *dbuf_state)
 {
+       struct intel_display *display = to_intel_display(state);
        struct drm_i915_private *i915 = to_i915(state->base.dev);
        enum pipe pipe = ffs(dbuf_state->active_pipes) - 1;
        const struct intel_crtc_state *new_crtc_state;
@@ -3608,7 +3609,7 @@ static enum pipe intel_mbus_joined_pipe(struct intel_atomic_state *state,
        drm_WARN_ON(&i915->drm, !dbuf_state->joined_mbus);
        drm_WARN_ON(&i915->drm, !is_power_of_2(dbuf_state->active_pipes));
 
-       crtc = intel_crtc_for_pipe(i915, pipe);
+       crtc = intel_crtc_for_pipe(display, pipe);
        new_crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
 
        if (new_crtc_state && !intel_crtc_needs_modeset(new_crtc_state))
@@ -3670,7 +3671,7 @@ void intel_dbuf_mbus_pre_ddb_update(struct intel_atomic_state *state)
 
 void intel_dbuf_mbus_post_ddb_update(struct intel_atomic_state *state)
 {
-       struct drm_i915_private *i915 = to_i915(state->base.dev);
+       struct intel_display *display = to_intel_display(state);
        const struct intel_dbuf_state *new_dbuf_state =
                intel_atomic_get_new_dbuf_state(state);
        const struct intel_dbuf_state *old_dbuf_state =
@@ -3689,7 +3690,7 @@ void intel_dbuf_mbus_post_ddb_update(struct intel_atomic_state *state)
                intel_dbuf_mbus_join_update(state, pipe);
 
                if (pipe != INVALID_PIPE) {
-                       struct intel_crtc *crtc = intel_crtc_for_pipe(i915, pipe);
+                       struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
 
                        intel_crtc_wait_for_next_vblank(crtc);
                }