Merge drm/drm-next into drm-intel-next-queued
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / display / intel_dp.c
index c7424e2..0a5a919 100644 (file)
@@ -49,6 +49,7 @@
 #include "intel_audio.h"
 #include "intel_connector.h"
 #include "intel_ddi.h"
+#include "intel_display_debugfs.h"
 #include "intel_display_types.h"
 #include "intel_dp.h"
 #include "intel_dp_link_training.h"
@@ -146,11 +147,6 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
        return intel_dig_port->base.type == INTEL_OUTPUT_EDP;
 }
 
-static struct intel_dp *intel_attached_dp(struct intel_connector *connector)
-{
-       return enc_to_intel_dp(intel_attached_encoder(connector));
-}
-
 static void intel_dp_link_down(struct intel_encoder *encoder,
                               const struct intel_crtc_state *old_crtc_state);
 static bool edp_panel_vdd_on(struct intel_dp *intel_dp);
@@ -272,7 +268,7 @@ static int cnl_max_source_rate(struct intel_dp *intel_dp)
        struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
        enum port port = dig_port->base.port;
 
-       u32 voltage = I915_READ(CNL_PORT_COMP_DW3) & VOLTAGE_INFO_MASK;
+       u32 voltage = intel_de_read(dev_priv, CNL_PORT_COMP_DW3) & VOLTAGE_INFO_MASK;
 
        /* Low voltage SKUs are limited to max of 5.4G */
        if (voltage == VOLTAGE_INFO_0_85V)
@@ -323,14 +319,14 @@ intel_dp_set_source_rates(struct intel_dp *intel_dp)
                162000, 270000
        };
        struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
+       struct intel_encoder *encoder = &dig_port->base;
        struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
-       const struct ddi_vbt_port_info *info =
-               &dev_priv->vbt.ddi_port_info[dig_port->base.port];
        const int *source_rates;
-       int size, max_rate = 0, vbt_max_rate = info->dp_max_link_rate;
+       int size, max_rate = 0, vbt_max_rate;
 
        /* This should only be done once */
-       WARN_ON(intel_dp->source_rates || intel_dp->num_source_rates);
+       drm_WARN_ON(&dev_priv->drm,
+                   intel_dp->source_rates || intel_dp->num_source_rates);
 
        if (INTEL_GEN(dev_priv) >= 10) {
                source_rates = cnl_rates;
@@ -354,6 +350,7 @@ intel_dp_set_source_rates(struct intel_dp *intel_dp)
                size = ARRAY_SIZE(g4x_rates);
        }
 
+       vbt_max_rate = intel_bios_dp_max_link_rate(encoder);
        if (max_rate && vbt_max_rate)
                max_rate = min(max_rate, vbt_max_rate);
        else if (vbt_max_rate)
@@ -519,12 +516,13 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915,
         */
        bits_per_pixel = (link_clock * lane_count * 8) /
                         intel_dp_mode_to_fec_clock(mode_clock);
-       DRM_DEBUG_KMS("Max link bpp: %u\n", bits_per_pixel);
+       drm_dbg_kms(&i915->drm, "Max link bpp: %u\n", bits_per_pixel);
 
        /* Small Joiner Check: output bpp <= joiner RAM (bits) / Horiz. width */
        max_bpp_small_joiner_ram = small_joiner_ram_size_bits(i915) /
                mode_hdisplay;
-       DRM_DEBUG_KMS("Max small joiner bpp: %u\n", max_bpp_small_joiner_ram);
+       drm_dbg_kms(&i915->drm, "Max small joiner bpp: %u\n",
+                   max_bpp_small_joiner_ram);
 
        /*
         * Greatest allowed DSC BPP = MIN (output BPP from available Link BW
@@ -534,8 +532,8 @@ static u16 intel_dp_dsc_get_output_bpp(struct drm_i915_private *i915,
 
        /* Error out if the max bpp is less than smallest allowed valid bpp */
        if (bits_per_pixel < valid_dsc_bpp[0]) {
-               DRM_DEBUG_KMS("Unsupported BPP %u, min %u\n",
-                             bits_per_pixel, valid_dsc_bpp[0]);
+               drm_dbg_kms(&i915->drm, "Unsupported BPP %u, min %u\n",
+                           bits_per_pixel, valid_dsc_bpp[0]);
                return 0;
        }
 
@@ -760,20 +758,22 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
        enum dpio_channel ch = vlv_pipe_to_channel(pipe);
        u32 DP;
 
-       if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN,
-                "skipping pipe %c power sequencer kick due to [ENCODER:%d:%s] being active\n",
-                pipe_name(pipe), intel_dig_port->base.base.base.id,
-                intel_dig_port->base.base.name))
+       if (drm_WARN(&dev_priv->drm,
+                    intel_de_read(dev_priv, intel_dp->output_reg) & DP_PORT_EN,
+                    "skipping pipe %c power sequencer kick due to [ENCODER:%d:%s] being active\n",
+                    pipe_name(pipe), intel_dig_port->base.base.base.id,
+                    intel_dig_port->base.base.name))
                return;
 
-       DRM_DEBUG_KMS("kicking pipe %c power sequencer for [ENCODER:%d:%s]\n",
-                     pipe_name(pipe), intel_dig_port->base.base.base.id,
-                     intel_dig_port->base.base.name);
+       drm_dbg_kms(&dev_priv->drm,
+                   "kicking pipe %c power sequencer for [ENCODER:%d:%s]\n",
+                   pipe_name(pipe), intel_dig_port->base.base.base.id,
+                   intel_dig_port->base.base.name);
 
        /* Preserve the BIOS-computed detected bit. This is
         * supposed to be read-only.
         */
-       DP = I915_READ(intel_dp->output_reg) & DP_DETECTED;
+       DP = intel_de_read(dev_priv, intel_dp->output_reg) & DP_DETECTED;
        DP |= DP_VOLTAGE_0_4 | DP_PRE_EMPHASIS_0;
        DP |= DP_PORT_WIDTH(1);
        DP |= DP_LINK_TRAIN_PAT_1;
@@ -783,7 +783,7 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
        else
                DP |= DP_PIPE_SEL(pipe);
 
-       pll_enabled = I915_READ(DPLL(pipe)) & DPLL_VCO_ENABLE;
+       pll_enabled = intel_de_read(dev_priv, DPLL(pipe)) & DPLL_VCO_ENABLE;
 
        /*
         * The DPLL for the pipe must be enabled for this to work.
@@ -795,8 +795,9 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
 
                if (vlv_force_pll_on(dev_priv, pipe, IS_CHERRYVIEW(dev_priv) ?
                                     &chv_dpll[0].dpll : &vlv_dpll[0].dpll)) {
-                       DRM_ERROR("Failed to force on pll for pipe %c!\n",
-                                 pipe_name(pipe));
+                       drm_err(&dev_priv->drm,
+                               "Failed to force on pll for pipe %c!\n",
+                               pipe_name(pipe));
                        return;
                }
        }
@@ -807,14 +808,14 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
         * to make this power sequencer lock onto the port.
         * Otherwise even VDD force bit won't work.
         */
-       I915_WRITE(intel_dp->output_reg, DP);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, DP);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
-       I915_WRITE(intel_dp->output_reg, DP | DP_PORT_EN);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, DP | DP_PORT_EN);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
-       I915_WRITE(intel_dp->output_reg, DP & ~DP_PORT_EN);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, DP & ~DP_PORT_EN);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
        if (!pll_enabled) {
                vlv_force_pll_off(dev_priv, pipe);
@@ -837,13 +838,16 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
                struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
                if (encoder->type == INTEL_OUTPUT_EDP) {
-                       WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
-                               intel_dp->active_pipe != intel_dp->pps_pipe);
+                       drm_WARN_ON(&dev_priv->drm,
+                                   intel_dp->active_pipe != INVALID_PIPE &&
+                                   intel_dp->active_pipe !=
+                                   intel_dp->pps_pipe);
 
                        if (intel_dp->pps_pipe != INVALID_PIPE)
                                pipes &= ~(1 << intel_dp->pps_pipe);
                } else {
-                       WARN_ON(intel_dp->pps_pipe != INVALID_PIPE);
+                       drm_WARN_ON(&dev_priv->drm,
+                                   intel_dp->pps_pipe != INVALID_PIPE);
 
                        if (intel_dp->active_pipe != INVALID_PIPE)
                                pipes &= ~(1 << intel_dp->active_pipe);
@@ -866,10 +870,10 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
        lockdep_assert_held(&dev_priv->pps_mutex);
 
        /* We should never land here with regular DP ports */
-       WARN_ON(!intel_dp_is_edp(intel_dp));
+       drm_WARN_ON(&dev_priv->drm, !intel_dp_is_edp(intel_dp));
 
-       WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
-               intel_dp->active_pipe != intel_dp->pps_pipe);
+       drm_WARN_ON(&dev_priv->drm, intel_dp->active_pipe != INVALID_PIPE &&
+                   intel_dp->active_pipe != intel_dp->pps_pipe);
 
        if (intel_dp->pps_pipe != INVALID_PIPE)
                return intel_dp->pps_pipe;
@@ -880,16 +884,17 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
         * Didn't find one. This should not happen since there
         * are two power sequencers and up to two eDP ports.
         */
-       if (WARN_ON(pipe == INVALID_PIPE))
+       if (drm_WARN_ON(&dev_priv->drm, pipe == INVALID_PIPE))
                pipe = PIPE_A;
 
        vlv_steal_power_sequencer(dev_priv, pipe);
        intel_dp->pps_pipe = pipe;
 
-       DRM_DEBUG_KMS("picked pipe %c power sequencer for [ENCODER:%d:%s]\n",
-                     pipe_name(intel_dp->pps_pipe),
-                     intel_dig_port->base.base.base.id,
-                     intel_dig_port->base.base.name);
+       drm_dbg_kms(&dev_priv->drm,
+                   "picked pipe %c power sequencer for [ENCODER:%d:%s]\n",
+                   pipe_name(intel_dp->pps_pipe),
+                   intel_dig_port->base.base.base.id,
+                   intel_dig_port->base.base.name);
 
        /* init power sequencer on this pipe and port */
        intel_dp_init_panel_power_sequencer(intel_dp);
@@ -913,7 +918,7 @@ bxt_power_sequencer_idx(struct intel_dp *intel_dp)
        lockdep_assert_held(&dev_priv->pps_mutex);
 
        /* We should never land here with regular DP ports */
-       WARN_ON(!intel_dp_is_edp(intel_dp));
+       drm_WARN_ON(&dev_priv->drm, !intel_dp_is_edp(intel_dp));
 
        if (!intel_dp->pps_reset)
                return backlight_controller;
@@ -935,13 +940,13 @@ typedef bool (*vlv_pipe_check)(struct drm_i915_private *dev_priv,
 static bool vlv_pipe_has_pp_on(struct drm_i915_private *dev_priv,
                               enum pipe pipe)
 {
-       return I915_READ(PP_STATUS(pipe)) & PP_ON;
+       return intel_de_read(dev_priv, PP_STATUS(pipe)) & PP_ON;
 }
 
 static bool vlv_pipe_has_vdd_on(struct drm_i915_private *dev_priv,
                                enum pipe pipe)
 {
-       return I915_READ(PP_CONTROL(pipe)) & EDP_FORCE_VDD;
+       return intel_de_read(dev_priv, PP_CONTROL(pipe)) & EDP_FORCE_VDD;
 }
 
 static bool vlv_pipe_any(struct drm_i915_private *dev_priv,
@@ -958,7 +963,7 @@ vlv_initial_pps_pipe(struct drm_i915_private *dev_priv,
        enum pipe pipe;
 
        for (pipe = PIPE_A; pipe <= PIPE_B; pipe++) {
-               u32 port_sel = I915_READ(PP_ON_DELAYS(pipe)) &
+               u32 port_sel = intel_de_read(dev_priv, PP_ON_DELAYS(pipe)) &
                        PANEL_PORT_SELECT_MASK;
 
                if (port_sel != PANEL_PORT_SELECT_VLV(port))
@@ -997,16 +1002,18 @@ vlv_initial_power_sequencer_setup(struct intel_dp *intel_dp)
 
        /* didn't find one? just let vlv_power_sequencer_pipe() pick one when needed */
        if (intel_dp->pps_pipe == INVALID_PIPE) {
-               DRM_DEBUG_KMS("no initial power sequencer for [ENCODER:%d:%s]\n",
-                             intel_dig_port->base.base.base.id,
-                             intel_dig_port->base.base.name);
+               drm_dbg_kms(&dev_priv->drm,
+                           "no initial power sequencer for [ENCODER:%d:%s]\n",
+                           intel_dig_port->base.base.base.id,
+                           intel_dig_port->base.base.name);
                return;
        }
 
-       DRM_DEBUG_KMS("initial power sequencer for [ENCODER:%d:%s]: pipe %c\n",
-                     intel_dig_port->base.base.base.id,
-                     intel_dig_port->base.base.name,
-                     pipe_name(intel_dp->pps_pipe));
+       drm_dbg_kms(&dev_priv->drm,
+                   "initial power sequencer for [ENCODER:%d:%s]: pipe %c\n",
+                   intel_dig_port->base.base.base.id,
+                   intel_dig_port->base.base.name,
+                   pipe_name(intel_dp->pps_pipe));
 
        intel_dp_init_panel_power_sequencer(intel_dp);
        intel_dp_init_panel_power_sequencer_registers(intel_dp, false);
@@ -1016,8 +1023,10 @@ void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
 {
        struct intel_encoder *encoder;
 
-       if (WARN_ON(!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv) &&
-                   !IS_GEN9_LP(dev_priv)))
+       if (drm_WARN_ON(&dev_priv->drm,
+                       !(IS_VALLEYVIEW(dev_priv) ||
+                         IS_CHERRYVIEW(dev_priv) ||
+                         IS_GEN9_LP(dev_priv))))
                return;
 
        /*
@@ -1033,7 +1042,8 @@ void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
        for_each_intel_dp(&dev_priv->drm, encoder) {
                struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
-               WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
+               drm_WARN_ON(&dev_priv->drm,
+                           intel_dp->active_pipe != INVALID_PIPE);
 
                if (encoder->type != INTEL_OUTPUT_EDP)
                        continue;
@@ -1119,12 +1129,13 @@ static int edp_notify_handler(struct notifier_block *this, unsigned long code,
 
                        pp_ctrl_reg = PP_CONTROL(pipe);
                        pp_div_reg  = PP_DIVISOR(pipe);
-                       pp_div = I915_READ(pp_div_reg);
+                       pp_div = intel_de_read(dev_priv, pp_div_reg);
                        pp_div &= PP_REFERENCE_DIVIDER_MASK;
 
                        /* 0x1F write to PP_DIV_REG sets max cycle delay */
-                       I915_WRITE(pp_div_reg, pp_div | 0x1F);
-                       I915_WRITE(pp_ctrl_reg, PANEL_UNLOCK_REGS);
+                       intel_de_write(dev_priv, pp_div_reg, pp_div | 0x1F);
+                       intel_de_write(dev_priv, pp_ctrl_reg,
+                                      PANEL_UNLOCK_REGS);
                        msleep(intel_dp->panel_power_cycle_delay);
                }
        }
@@ -1142,7 +1153,7 @@ static bool edp_have_panel_power(struct intel_dp *intel_dp)
            intel_dp->pps_pipe == INVALID_PIPE)
                return false;
 
-       return (I915_READ(_pp_stat_reg(intel_dp)) & PP_ON) != 0;
+       return (intel_de_read(dev_priv, _pp_stat_reg(intel_dp)) & PP_ON) != 0;
 }
 
 static bool edp_have_panel_vdd(struct intel_dp *intel_dp)
@@ -1155,7 +1166,7 @@ static bool edp_have_panel_vdd(struct intel_dp *intel_dp)
            intel_dp->pps_pipe == INVALID_PIPE)
                return false;
 
-       return I915_READ(_pp_ctrl_reg(intel_dp)) & EDP_FORCE_VDD;
+       return intel_de_read(dev_priv, _pp_ctrl_reg(intel_dp)) & EDP_FORCE_VDD;
 }
 
 static void
@@ -1167,10 +1178,11 @@ intel_dp_check_edp(struct intel_dp *intel_dp)
                return;
 
        if (!edp_have_panel_power(intel_dp) && !edp_have_panel_vdd(intel_dp)) {
-               WARN(1, "eDP powered off while attempting aux channel communication.\n");
-               DRM_DEBUG_KMS("Status 0x%08x Control 0x%08x\n",
-                             I915_READ(_pp_stat_reg(intel_dp)),
-                             I915_READ(_pp_ctrl_reg(intel_dp)));
+               drm_WARN(&dev_priv->drm, 1,
+                        "eDP powered off while attempting aux channel communication.\n");
+               drm_dbg_kms(&dev_priv->drm, "Status 0x%08x Control 0x%08x\n",
+                           intel_de_read(dev_priv, _pp_stat_reg(intel_dp)),
+                           intel_de_read(dev_priv, _pp_ctrl_reg(intel_dp)));
        }
 }
 
@@ -1191,8 +1203,9 @@ intel_dp_aux_wait_done(struct intel_dp *intel_dp)
        trace_i915_reg_rw(false, ch_ctl, status, sizeof(status), true);
 
        if (!done)
-               DRM_ERROR("%s did not complete or timeout within %ums (status 0x%08x)\n",
-                         intel_dp->aux.name, timeout_ms, status);
+               drm_err(&i915->drm,
+                       "%s: did not complete or timeout within %ums (status 0x%08x)\n",
+                       intel_dp->aux.name, timeout_ms, status);
 #undef C
 
        return status;
@@ -1209,13 +1222,14 @@ static u32 g4x_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
         * The clock divider is based off the hrawclk, and would like to run at
         * 2MHz.  So, take the hrawclk value and divide by 2000 and use that
         */
-       return DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 2000);
+       return DIV_ROUND_CLOSEST(RUNTIME_INFO(dev_priv)->rawclk_freq, 2000);
 }
 
 static u32 ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
 {
        struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
        struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
+       u32 freq;
 
        if (index)
                return 0;
@@ -1226,9 +1240,10 @@ static u32 ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
         * divide by 2000 and use that
         */
        if (dig_port->aux_ch == AUX_CH_A)
-               return DIV_ROUND_CLOSEST(dev_priv->cdclk.hw.cdclk, 2000);
+               freq = dev_priv->cdclk.hw.cdclk;
        else
-               return DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 2000);
+               freq = RUNTIME_INFO(dev_priv)->rawclk_freq;
+       return DIV_ROUND_CLOSEST(freq, 2000);
 }
 
 static u32 hsw_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
@@ -1378,8 +1393,9 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
                const u32 status = intel_uncore_read(uncore, ch_ctl);
 
                if (status != intel_dp->aux_busy_last_status) {
-                       WARN(1, "dp_aux_ch not started status 0x%08x\n",
-                            status);
+                       drm_WARN(&i915->drm, 1,
+                                "%s: not started (status 0x%08x)\n",
+                                intel_dp->aux.name, status);
                        intel_dp->aux_busy_last_status = status;
                }
 
@@ -1388,7 +1404,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
        }
 
        /* Only 5 data registers! */
-       if (WARN_ON(send_bytes > 20 || recv_size > 20)) {
+       if (drm_WARN_ON(&i915->drm, send_bytes > 20 || recv_size > 20)) {
                ret = -E2BIG;
                goto out;
        }
@@ -1440,7 +1456,8 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
        }
 
        if ((status & DP_AUX_CH_CTL_DONE) == 0) {
-               DRM_ERROR("dp_aux_ch not done status 0x%08x\n", status);
+               drm_err(&i915->drm, "%s: not done (status 0x%08x)\n",
+                       intel_dp->aux.name, status);
                ret = -EBUSY;
                goto out;
        }
@@ -1450,7 +1467,8 @@ done:
         * Timeouts occur when the sink is not connected
         */
        if (status & DP_AUX_CH_CTL_RECEIVE_ERROR) {
-               DRM_ERROR("dp_aux_ch receive error status 0x%08x\n", status);
+               drm_err(&i915->drm, "%s: receive error (status 0x%08x)\n",
+                       intel_dp->aux.name, status);
                ret = -EIO;
                goto out;
        }
@@ -1458,7 +1476,8 @@ done:
        /* Timeouts occur when the device isn't connected, so they're
         * "normal" -- don't fill the kernel log with these */
        if (status & DP_AUX_CH_CTL_TIME_OUT_ERROR) {
-               DRM_DEBUG_KMS("dp_aux_ch timeout status 0x%08x\n", status);
+               drm_dbg_kms(&i915->drm, "%s: timeout (status 0x%08x)\n",
+                           intel_dp->aux.name, status);
                ret = -ETIMEDOUT;
                goto out;
        }
@@ -1473,8 +1492,9 @@ done:
         * drm layer takes care for the necessary retries.
         */
        if (recv_bytes == 0 || recv_bytes > 20) {
-               DRM_DEBUG_KMS("Forbidden recv_bytes = %d on aux transaction\n",
-                             recv_bytes);
+               drm_dbg_kms(&i915->drm,
+                           "%s: Forbidden recv_bytes = %d on aux transaction\n",
+                           intel_dp->aux.name, recv_bytes);
                ret = -EBUSY;
                goto out;
        }
@@ -1742,7 +1762,8 @@ intel_dp_aux_init(struct intel_dp *intel_dp)
        drm_dp_aux_init(&intel_dp->aux);
 
        /* Failure to allocate our preferred name is not critical */
-       intel_dp->aux.name = kasprintf(GFP_KERNEL, "DPDDC-%c",
+       intel_dp->aux.name = kasprintf(GFP_KERNEL, "AUX %c/port %c",
+                                      aux_ch_name(dig_port->aux_ch),
                                       port_name(encoder->port));
        intel_dp->aux.transfer = intel_dp_aux_transfer;
 }
@@ -1918,8 +1939,9 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp,
                /* Get bpp from vbt only for panels that dont have bpp in edid */
                if (intel_connector->base.display_info.bpc == 0 &&
                    dev_priv->vbt.edp.bpp && dev_priv->vbt.edp.bpp < bpp) {
-                       DRM_DEBUG_KMS("clamping bpp for eDP panel to BIOS-provided %i\n",
-                                     dev_priv->vbt.edp.bpp);
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "clamping bpp for eDP panel to BIOS-provided %i\n",
+                                   dev_priv->vbt.edp.bpp);
                        bpp = dev_priv->vbt.edp.bpp;
                }
        }
@@ -2115,7 +2137,8 @@ static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
 
        /* Min Input BPC for ICL+ is 8 */
        if (pipe_bpp < 8 * 3) {
-               DRM_DEBUG_KMS("No DSC support for less than 8bpc\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "No DSC support for less than 8bpc\n");
                return -EINVAL;
        }
 
@@ -2150,7 +2173,8 @@ static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
                                                     adjusted_mode->crtc_clock,
                                                     adjusted_mode->crtc_hdisplay);
                if (!dsc_max_output_bpp || !dsc_dp_slice_count) {
-                       DRM_DEBUG_KMS("Compressed BPP/Slice Count not supported\n");
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "Compressed BPP/Slice Count not supported\n");
                        return -EINVAL;
                }
                pipe_config->dsc.compressed_bpp = min_t(u16,
@@ -2167,26 +2191,28 @@ static int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
                if (pipe_config->dsc.slice_count > 1) {
                        pipe_config->dsc.dsc_split = true;
                } else {
-                       DRM_DEBUG_KMS("Cannot split stream to use 2 VDSC instances\n");
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "Cannot split stream to use 2 VDSC instances\n");
                        return -EINVAL;
                }
        }
 
        ret = intel_dp_dsc_compute_params(&dig_port->base, pipe_config);
        if (ret < 0) {
-               DRM_DEBUG_KMS("Cannot compute valid DSC parameters for Input Bpp = %d "
-                             "Compressed BPP = %d\n",
-                             pipe_config->pipe_bpp,
-                             pipe_config->dsc.compressed_bpp);
+               drm_dbg_kms(&dev_priv->drm,
+                           "Cannot compute valid DSC parameters for Input Bpp = %d "
+                           "Compressed BPP = %d\n",
+                           pipe_config->pipe_bpp,
+                           pipe_config->dsc.compressed_bpp);
                return ret;
        }
 
        pipe_config->dsc.compression_enable = true;
-       DRM_DEBUG_KMS("DP DSC computed with Input Bpp = %d "
-                     "Compressed Bpp = %d Slice Count = %d\n",
-                     pipe_config->pipe_bpp,
-                     pipe_config->dsc.compressed_bpp,
-                     pipe_config->dsc.slice_count);
+       drm_dbg_kms(&dev_priv->drm, "DP DSC computed with Input Bpp = %d "
+                   "Compressed Bpp = %d Slice Count = %d\n",
+                   pipe_config->pipe_bpp,
+                   pipe_config->dsc.compressed_bpp,
+                   pipe_config->dsc.slice_count);
 
        return 0;
 }
@@ -2214,7 +2240,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
                                                    intel_dp->max_link_rate);
 
        /* No common link rates between source and sink */
-       WARN_ON(common_len <= 0);
+       drm_WARN_ON(encoder->base.dev, common_len <= 0);
 
        limits.min_clock = 0;
        limits.max_clock = common_len - 1;
@@ -2515,7 +2541,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
        /* Preserve the BIOS-computed detected bit. This is
         * supposed to be read-only.
         */
-       intel_dp->DP = I915_READ(intel_dp->output_reg) & DP_DETECTED;
+       intel_dp->DP = intel_de_read(dev_priv, intel_dp->output_reg) & DP_DETECTED;
 
        /* Handle DP bits in common between all three register formats */
        intel_dp->DP |= DP_VOLTAGE_0_4 | DP_PRE_EMPHASIS_0;
@@ -2539,12 +2565,12 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
 
                intel_dp->DP |= DP_LINK_TRAIN_OFF_CPT;
 
-               trans_dp = I915_READ(TRANS_DP_CTL(crtc->pipe));
+               trans_dp = intel_de_read(dev_priv, TRANS_DP_CTL(crtc->pipe));
                if (drm_dp_enhanced_frame_cap(intel_dp->dpcd))
                        trans_dp |= TRANS_DP_ENH_FRAMING;
                else
                        trans_dp &= ~TRANS_DP_ENH_FRAMING;
-               I915_WRITE(TRANS_DP_CTL(crtc->pipe), trans_dp);
+               intel_de_write(dev_priv, TRANS_DP_CTL(crtc->pipe), trans_dp);
        } else {
                if (IS_G4X(dev_priv) && pipe_config->limited_color_range)
                        intel_dp->DP |= DP_COLOR_RANGE_16_235;
@@ -2590,18 +2616,20 @@ static void wait_panel_status(struct intel_dp *intel_dp,
        pp_stat_reg = _pp_stat_reg(intel_dp);
        pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
 
-       DRM_DEBUG_KMS("mask %08x value %08x status %08x control %08x\n",
-                       mask, value,
-                       I915_READ(pp_stat_reg),
-                       I915_READ(pp_ctrl_reg));
+       drm_dbg_kms(&dev_priv->drm,
+                   "mask %08x value %08x status %08x control %08x\n",
+                   mask, value,
+                   intel_de_read(dev_priv, pp_stat_reg),
+                   intel_de_read(dev_priv, pp_ctrl_reg));
 
        if (intel_de_wait_for_register(dev_priv, pp_stat_reg,
                                       mask, value, 5000))
-               DRM_ERROR("Panel status timeout: status %08x control %08x\n",
-                               I915_READ(pp_stat_reg),
-                               I915_READ(pp_ctrl_reg));
+               drm_err(&dev_priv->drm,
+                       "Panel status timeout: status %08x control %08x\n",
+                       intel_de_read(dev_priv, pp_stat_reg),
+                       intel_de_read(dev_priv, pp_ctrl_reg));
 
-       DRM_DEBUG_KMS("Wait complete\n");
+       drm_dbg_kms(&dev_priv->drm, "Wait complete\n");
 }
 
 static void wait_panel_on(struct intel_dp *intel_dp)
@@ -2660,9 +2688,9 @@ static  u32 ilk_get_pp_control(struct intel_dp *intel_dp)
 
        lockdep_assert_held(&dev_priv->pps_mutex);
 
-       control = I915_READ(_pp_ctrl_reg(intel_dp));
-       if (WARN_ON(!HAS_DDI(dev_priv) &&
-                   (control & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS)) {
+       control = intel_de_read(dev_priv, _pp_ctrl_reg(intel_dp));
+       if (drm_WARN_ON(&dev_priv->drm, !HAS_DDI(dev_priv) &&
+                       (control & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS)) {
                control &= ~PANEL_UNLOCK_MASK;
                control |= PANEL_UNLOCK_REGS;
        }
@@ -2696,9 +2724,9 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
        intel_display_power_get(dev_priv,
                                intel_aux_power_domain(intel_dig_port));
 
-       DRM_DEBUG_KMS("Turning [ENCODER:%d:%s] VDD on\n",
-                     intel_dig_port->base.base.base.id,
-                     intel_dig_port->base.base.name);
+       drm_dbg_kms(&dev_priv->drm, "Turning [ENCODER:%d:%s] VDD on\n",
+                   intel_dig_port->base.base.base.id,
+                   intel_dig_port->base.base.name);
 
        if (!edp_have_panel_power(intel_dp))
                wait_panel_power_cycle(intel_dp);
@@ -2709,17 +2737,19 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
        pp_stat_reg = _pp_stat_reg(intel_dp);
        pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
 
-       I915_WRITE(pp_ctrl_reg, pp);
-       POSTING_READ(pp_ctrl_reg);
-       DRM_DEBUG_KMS("PP_STATUS: 0x%08x PP_CONTROL: 0x%08x\n",
-                       I915_READ(pp_stat_reg), I915_READ(pp_ctrl_reg));
+       intel_de_write(dev_priv, pp_ctrl_reg, pp);
+       intel_de_posting_read(dev_priv, pp_ctrl_reg);
+       drm_dbg_kms(&dev_priv->drm, "PP_STATUS: 0x%08x PP_CONTROL: 0x%08x\n",
+                   intel_de_read(dev_priv, pp_stat_reg),
+                   intel_de_read(dev_priv, pp_ctrl_reg));
        /*
         * If the panel wasn't on, delay before accessing aux channel
         */
        if (!edp_have_panel_power(intel_dp)) {
-               DRM_DEBUG_KMS("[ENCODER:%d:%s] panel power wasn't enabled\n",
-                             intel_dig_port->base.base.base.id,
-                             intel_dig_port->base.base.name);
+               drm_dbg_kms(&dev_priv->drm,
+                           "[ENCODER:%d:%s] panel power wasn't enabled\n",
+                           intel_dig_port->base.base.base.id,
+                           intel_dig_port->base.base.name);
                msleep(intel_dp->panel_power_up_delay);
        }
 
@@ -2759,14 +2789,14 @@ static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
 
        lockdep_assert_held(&dev_priv->pps_mutex);
 
-       WARN_ON(intel_dp->want_panel_vdd);
+       drm_WARN_ON(&dev_priv->drm, intel_dp->want_panel_vdd);
 
        if (!edp_have_panel_vdd(intel_dp))
                return;
 
-       DRM_DEBUG_KMS("Turning [ENCODER:%d:%s] VDD off\n",
-                     intel_dig_port->base.base.base.id,
-                     intel_dig_port->base.base.name);
+       drm_dbg_kms(&dev_priv->drm, "Turning [ENCODER:%d:%s] VDD off\n",
+                   intel_dig_port->base.base.base.id,
+                   intel_dig_port->base.base.name);
 
        pp = ilk_get_pp_control(intel_dp);
        pp &= ~EDP_FORCE_VDD;
@@ -2774,12 +2804,13 @@ static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
        pp_ctrl_reg = _pp_ctrl_reg(intel_dp);
        pp_stat_reg = _pp_stat_reg(intel_dp);
 
-       I915_WRITE(pp_ctrl_reg, pp);
-       POSTING_READ(pp_ctrl_reg);
+       intel_de_write(dev_priv, pp_ctrl_reg, pp);
+       intel_de_posting_read(dev_priv, pp_ctrl_reg);
 
        /* Make sure sequencer is idle before allowing subsequent activity */
-       DRM_DEBUG_KMS("PP_STATUS: 0x%08x PP_CONTROL: 0x%08x\n",
-       I915_READ(pp_stat_reg), I915_READ(pp_ctrl_reg));
+       drm_dbg_kms(&dev_priv->drm, "PP_STATUS: 0x%08x PP_CONTROL: 0x%08x\n",
+                   intel_de_read(dev_priv, pp_stat_reg),
+                   intel_de_read(dev_priv, pp_ctrl_reg));
 
        if ((pp & PANEL_POWER_ON) == 0)
                intel_dp->panel_power_off_time = ktime_get_boottime();
@@ -2851,14 +2882,14 @@ static void edp_panel_on(struct intel_dp *intel_dp)
        if (!intel_dp_is_edp(intel_dp))
                return;
 
-       DRM_DEBUG_KMS("Turn [ENCODER:%d:%s] panel power on\n",
-                     dp_to_dig_port(intel_dp)->base.base.base.id,
-                     dp_to_dig_port(intel_dp)->base.base.name);
+       drm_dbg_kms(&dev_priv->drm, "Turn [ENCODER:%d:%s] panel power on\n",
+                   dp_to_dig_port(intel_dp)->base.base.base.id,
+                   dp_to_dig_port(intel_dp)->base.base.name);
 
-       if (WARN(edp_have_panel_power(intel_dp),
-                "[ENCODER:%d:%s] panel power already on\n",
-                dp_to_dig_port(intel_dp)->base.base.base.id,
-                dp_to_dig_port(intel_dp)->base.base.name))
+       if (drm_WARN(&dev_priv->drm, edp_have_panel_power(intel_dp),
+                    "[ENCODER:%d:%s] panel power already on\n",
+                    dp_to_dig_port(intel_dp)->base.base.base.id,
+                    dp_to_dig_port(intel_dp)->base.base.name))
                return;
 
        wait_panel_power_cycle(intel_dp);
@@ -2868,24 +2899,24 @@ static void edp_panel_on(struct intel_dp *intel_dp)
        if (IS_GEN(dev_priv, 5)) {
                /* ILK workaround: disable reset around power sequence */
                pp &= ~PANEL_POWER_RESET;
-               I915_WRITE(pp_ctrl_reg, pp);
-               POSTING_READ(pp_ctrl_reg);
+               intel_de_write(dev_priv, pp_ctrl_reg, pp);
+               intel_de_posting_read(dev_priv, pp_ctrl_reg);
        }
 
        pp |= PANEL_POWER_ON;
        if (!IS_GEN(dev_priv, 5))
                pp |= PANEL_POWER_RESET;
 
-       I915_WRITE(pp_ctrl_reg, pp);
-       POSTING_READ(pp_ctrl_reg);
+       intel_de_write(dev_priv, pp_ctrl_reg, pp);
+       intel_de_posting_read(dev_priv, pp_ctrl_reg);
 
        wait_panel_on(intel_dp);
        intel_dp->last_power_on = jiffies;
 
        if (IS_GEN(dev_priv, 5)) {
                pp |= PANEL_POWER_RESET; /* restore panel reset bit */
-               I915_WRITE(pp_ctrl_reg, pp);
-               POSTING_READ(pp_ctrl_reg);
+               intel_de_write(dev_priv, pp_ctrl_reg, pp);
+               intel_de_posting_read(dev_priv, pp_ctrl_reg);
        }
 }
 
@@ -2913,11 +2944,12 @@ static void edp_panel_off(struct intel_dp *intel_dp)
        if (!intel_dp_is_edp(intel_dp))
                return;
 
-       DRM_DEBUG_KMS("Turn [ENCODER:%d:%s] panel power off\n",
-                     dig_port->base.base.base.id, dig_port->base.base.name);
+       drm_dbg_kms(&dev_priv->drm, "Turn [ENCODER:%d:%s] panel power off\n",
+                   dig_port->base.base.base.id, dig_port->base.base.name);
 
-       WARN(!intel_dp->want_panel_vdd, "Need [ENCODER:%d:%s] VDD to turn off panel\n",
-            dig_port->base.base.base.id, dig_port->base.base.name);
+       drm_WARN(&dev_priv->drm, !intel_dp->want_panel_vdd,
+                "Need [ENCODER:%d:%s] VDD to turn off panel\n",
+                dig_port->base.base.base.id, dig_port->base.base.name);
 
        pp = ilk_get_pp_control(intel_dp);
        /* We need to switch off panel power _and_ force vdd, for otherwise some
@@ -2929,8 +2961,8 @@ static void edp_panel_off(struct intel_dp *intel_dp)
 
        intel_dp->want_panel_vdd = false;
 
-       I915_WRITE(pp_ctrl_reg, pp);
-       POSTING_READ(pp_ctrl_reg);
+       intel_de_write(dev_priv, pp_ctrl_reg, pp);
+       intel_de_posting_read(dev_priv, pp_ctrl_reg);
 
        wait_panel_off(intel_dp);
        intel_dp->panel_power_off_time = ktime_get_boottime();
@@ -2971,8 +3003,8 @@ static void _intel_edp_backlight_on(struct intel_dp *intel_dp)
                pp = ilk_get_pp_control(intel_dp);
                pp |= EDP_BLC_ENABLE;
 
-               I915_WRITE(pp_ctrl_reg, pp);
-               POSTING_READ(pp_ctrl_reg);
+               intel_de_write(dev_priv, pp_ctrl_reg, pp);
+               intel_de_posting_read(dev_priv, pp_ctrl_reg);
        }
 }
 
@@ -3007,8 +3039,8 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp)
                pp = ilk_get_pp_control(intel_dp);
                pp &= ~EDP_BLC_ENABLE;
 
-               I915_WRITE(pp_ctrl_reg, pp);
-               POSTING_READ(pp_ctrl_reg);
+               intel_de_write(dev_priv, pp_ctrl_reg, pp);
+               intel_de_posting_read(dev_priv, pp_ctrl_reg);
        }
 
        intel_dp->last_backlight_off = jiffies;
@@ -3059,7 +3091,7 @@ static void assert_dp_port(struct intel_dp *intel_dp, bool state)
 {
        struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
        struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
-       bool cur_state = I915_READ(intel_dp->output_reg) & DP_PORT_EN;
+       bool cur_state = intel_de_read(dev_priv, intel_dp->output_reg) & DP_PORT_EN;
 
        I915_STATE_WARN(cur_state != state,
                        "[ENCODER:%d:%s] state assertion failure (expected %s, current %s)\n",
@@ -3070,7 +3102,7 @@ static void assert_dp_port(struct intel_dp *intel_dp, bool state)
 
 static void assert_edp_pll(struct drm_i915_private *dev_priv, bool state)
 {
-       bool cur_state = I915_READ(DP_A) & DP_PLL_ENABLE;
+       bool cur_state = intel_de_read(dev_priv, DP_A) & DP_PLL_ENABLE;
 
        I915_STATE_WARN(cur_state != state,
                        "eDP PLL state assertion failure (expected %s, current %s)\n",
@@ -3089,8 +3121,8 @@ static void ilk_edp_pll_on(struct intel_dp *intel_dp,
        assert_dp_port_disabled(intel_dp);
        assert_edp_pll_disabled(dev_priv);
 
-       DRM_DEBUG_KMS("enabling eDP PLL for clock %d\n",
-                     pipe_config->port_clock);
+       drm_dbg_kms(&dev_priv->drm, "enabling eDP PLL for clock %d\n",
+                   pipe_config->port_clock);
 
        intel_dp->DP &= ~DP_PLL_FREQ_MASK;
 
@@ -3099,8 +3131,8 @@ static void ilk_edp_pll_on(struct intel_dp *intel_dp,
        else
                intel_dp->DP |= DP_PLL_FREQ_270MHZ;
 
-       I915_WRITE(DP_A, intel_dp->DP);
-       POSTING_READ(DP_A);
+       intel_de_write(dev_priv, DP_A, intel_dp->DP);
+       intel_de_posting_read(dev_priv, DP_A);
        udelay(500);
 
        /*
@@ -3114,8 +3146,8 @@ static void ilk_edp_pll_on(struct intel_dp *intel_dp,
 
        intel_dp->DP |= DP_PLL_ENABLE;
 
-       I915_WRITE(DP_A, intel_dp->DP);
-       POSTING_READ(DP_A);
+       intel_de_write(dev_priv, DP_A, intel_dp->DP);
+       intel_de_posting_read(dev_priv, DP_A);
        udelay(200);
 }
 
@@ -3129,12 +3161,12 @@ static void ilk_edp_pll_off(struct intel_dp *intel_dp,
        assert_dp_port_disabled(intel_dp);
        assert_edp_pll_enabled(dev_priv);
 
-       DRM_DEBUG_KMS("disabling eDP PLL\n");
+       drm_dbg_kms(&dev_priv->drm, "disabling eDP PLL\n");
 
        intel_dp->DP &= ~DP_PLL_ENABLE;
 
-       I915_WRITE(DP_A, intel_dp->DP);
-       POSTING_READ(DP_A);
+       intel_de_write(dev_priv, DP_A, intel_dp->DP);
+       intel_de_posting_read(dev_priv, DP_A);
        udelay(200);
 }
 
@@ -3149,7 +3181,7 @@ static bool downstream_hpd_needs_d0(struct intel_dp *intel_dp)
         * FIXME should really check all downstream ports...
         */
        return intel_dp->dpcd[DP_DPCD_REV] == 0x11 &&
-               intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT &&
+               drm_dp_is_branch(intel_dp->dpcd) &&
                intel_dp->downstream_ports[0] & DP_DS_PORT_HPD;
 }
 
@@ -3214,7 +3246,7 @@ static bool cpt_dp_port_selected(struct drm_i915_private *dev_priv,
        enum pipe p;
 
        for_each_pipe(dev_priv, p) {
-               u32 val = I915_READ(TRANS_DP_CTL(p));
+               u32 val = intel_de_read(dev_priv, TRANS_DP_CTL(p));
 
                if ((val & TRANS_DP_PORT_SEL_MASK) == TRANS_DP_PORT_SEL(port)) {
                        *pipe = p;
@@ -3222,7 +3254,8 @@ static bool cpt_dp_port_selected(struct drm_i915_private *dev_priv,
                }
        }
 
-       DRM_DEBUG_KMS("No pipe for DP port %c found\n", port_name(port));
+       drm_dbg_kms(&dev_priv->drm, "No pipe for DP port %c found\n",
+                   port_name(port));
 
        /* must initialize pipe to something for the asserts */
        *pipe = PIPE_A;
@@ -3237,7 +3270,7 @@ bool intel_dp_port_enabled(struct drm_i915_private *dev_priv,
        bool ret;
        u32 val;
 
-       val = I915_READ(dp_reg);
+       val = intel_de_read(dev_priv, dp_reg);
 
        ret = val & DP_PORT_EN;
 
@@ -3289,12 +3322,13 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
        else
                pipe_config->output_types |= BIT(INTEL_OUTPUT_DP);
 
-       tmp = I915_READ(intel_dp->output_reg);
+       tmp = intel_de_read(dev_priv, intel_dp->output_reg);
 
        pipe_config->has_audio = tmp & DP_AUDIO_OUTPUT_ENABLE && port != PORT_A;
 
        if (HAS_PCH_CPT(dev_priv) && port != PORT_A) {
-               u32 trans_dp = I915_READ(TRANS_DP_CTL(crtc->pipe));
+               u32 trans_dp = intel_de_read(dev_priv,
+                                            TRANS_DP_CTL(crtc->pipe));
 
                if (trans_dp & TRANS_DP_HSYNC_ACTIVE_HIGH)
                        flags |= DRM_MODE_FLAG_PHSYNC;
@@ -3328,7 +3362,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
        intel_dp_get_m_n(crtc, pipe_config);
 
        if (port == PORT_A) {
-               if ((I915_READ(DP_A) & DP_PLL_FREQ_MASK) == DP_PLL_FREQ_162MHZ)
+               if ((intel_de_read(dev_priv, DP_A) & DP_PLL_FREQ_MASK) == DP_PLL_FREQ_162MHZ)
                        pipe_config->port_clock = 162000;
                else
                        pipe_config->port_clock = 270000;
@@ -3353,8 +3387,9 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
                 * up by the BIOS, and thus we can't get the mode at module
                 * load.
                 */
-               DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
-                             pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
+               drm_dbg_kms(&dev_priv->drm,
+                           "pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n",
+                           pipe_config->pipe_bpp, dev_priv->vbt.edp.bpp);
                dev_priv->vbt.edp.bpp = pipe_config->pipe_bpp;
        }
 }
@@ -3447,11 +3482,12 @@ _intel_dp_set_link_train(struct intel_dp *intel_dp,
        u8 train_pat_mask = drm_dp_training_pattern_mask(intel_dp->dpcd);
 
        if (dp_train_pat & train_pat_mask)
-               DRM_DEBUG_KMS("Using DP training pattern TPS%d\n",
-                             dp_train_pat & train_pat_mask);
+               drm_dbg_kms(&dev_priv->drm,
+                           "Using DP training pattern TPS%d\n",
+                           dp_train_pat & train_pat_mask);
 
        if (HAS_DDI(dev_priv)) {
-               u32 temp = I915_READ(intel_dp->regs.dp_tp_ctl);
+               u32 temp = intel_de_read(dev_priv, intel_dp->regs.dp_tp_ctl);
 
                if (dp_train_pat & DP_LINK_SCRAMBLING_DISABLE)
                        temp |= DP_TP_CTL_SCRAMBLE_DISABLE;
@@ -3477,7 +3513,7 @@ _intel_dp_set_link_train(struct intel_dp *intel_dp,
                        temp |= DP_TP_CTL_LINK_TRAIN_PAT4;
                        break;
                }
-               I915_WRITE(intel_dp->regs.dp_tp_ctl, temp);
+               intel_de_write(dev_priv, intel_dp->regs.dp_tp_ctl, temp);
 
        } else if ((IS_IVYBRIDGE(dev_priv) && port == PORT_A) ||
                   (HAS_PCH_CPT(dev_priv) && port != PORT_A)) {
@@ -3494,7 +3530,8 @@ _intel_dp_set_link_train(struct intel_dp *intel_dp,
                        *DP |= DP_LINK_TRAIN_PAT_2_CPT;
                        break;
                case DP_TRAINING_PATTERN_3:
-                       DRM_DEBUG_KMS("TPS3 not supported, using TPS2 instead\n");
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "TPS3 not supported, using TPS2 instead\n");
                        *DP |= DP_LINK_TRAIN_PAT_2_CPT;
                        break;
                }
@@ -3513,7 +3550,8 @@ _intel_dp_set_link_train(struct intel_dp *intel_dp,
                        *DP |= DP_LINK_TRAIN_PAT_2;
                        break;
                case DP_TRAINING_PATTERN_3:
-                       DRM_DEBUG_KMS("TPS3 not supported, using TPS2 instead\n");
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "TPS3 not supported, using TPS2 instead\n");
                        *DP |= DP_LINK_TRAIN_PAT_2;
                        break;
                }
@@ -3539,8 +3577,8 @@ static void intel_dp_enable_port(struct intel_dp *intel_dp,
        if (old_crtc_state->has_audio)
                intel_dp->DP |= DP_AUDIO_OUTPUT_ENABLE;
 
-       I915_WRITE(intel_dp->output_reg, intel_dp->DP);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, intel_dp->DP);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 }
 
 static void intel_enable_dp(struct intel_encoder *encoder,
@@ -3550,11 +3588,11 @@ static void intel_enable_dp(struct intel_encoder *encoder,
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
        struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
        struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
-       u32 dp_reg = I915_READ(intel_dp->output_reg);
+       u32 dp_reg = intel_de_read(dev_priv, intel_dp->output_reg);
        enum pipe pipe = crtc->pipe;
        intel_wakeref_t wakeref;
 
-       if (WARN_ON(dp_reg & DP_PORT_EN))
+       if (drm_WARN_ON(&dev_priv->drm, dp_reg & DP_PORT_EN))
                return;
 
        with_pps_lock(intel_dp, wakeref) {
@@ -3583,8 +3621,8 @@ static void intel_enable_dp(struct intel_encoder *encoder,
        intel_dp_stop_link_train(intel_dp);
 
        if (pipe_config->has_audio) {
-               DRM_DEBUG_DRIVER("Enabling DP audio on pipe %c\n",
-                                pipe_name(pipe));
+               drm_dbg(&dev_priv->drm, "Enabling DP audio on pipe %c\n",
+                       pipe_name(pipe));
                intel_audio_codec_enable(encoder, pipe_config, conn_state);
        }
 }
@@ -3625,9 +3663,9 @@ static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
        enum pipe pipe = intel_dp->pps_pipe;
        i915_reg_t pp_on_reg = PP_ON_DELAYS(pipe);
 
-       WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
+       drm_WARN_ON(&dev_priv->drm, intel_dp->active_pipe != INVALID_PIPE);
 
-       if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
+       if (drm_WARN_ON(&dev_priv->drm, pipe != PIPE_A && pipe != PIPE_B))
                return;
 
        edp_panel_vdd_off_sync(intel_dp);
@@ -3641,11 +3679,12 @@ static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
         * port select always when logically disconnecting a power sequencer
         * from a port.
         */
-       DRM_DEBUG_KMS("detaching pipe %c power sequencer from [ENCODER:%d:%s]\n",
-                     pipe_name(pipe), intel_dig_port->base.base.base.id,
-                     intel_dig_port->base.base.name);
-       I915_WRITE(pp_on_reg, 0);
-       POSTING_READ(pp_on_reg);
+       drm_dbg_kms(&dev_priv->drm,
+                   "detaching pipe %c power sequencer from [ENCODER:%d:%s]\n",
+                   pipe_name(pipe), intel_dig_port->base.base.base.id,
+                   intel_dig_port->base.base.name);
+       intel_de_write(dev_priv, pp_on_reg, 0);
+       intel_de_posting_read(dev_priv, pp_on_reg);
 
        intel_dp->pps_pipe = INVALID_PIPE;
 }
@@ -3660,17 +3699,18 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
        for_each_intel_dp(&dev_priv->drm, encoder) {
                struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
-               WARN(intel_dp->active_pipe == pipe,
-                    "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
-                    pipe_name(pipe), encoder->base.base.id,
-                    encoder->base.name);
+               drm_WARN(&dev_priv->drm, intel_dp->active_pipe == pipe,
+                        "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
+                        pipe_name(pipe), encoder->base.base.id,
+                        encoder->base.name);
 
                if (intel_dp->pps_pipe != pipe)
                        continue;
 
-               DRM_DEBUG_KMS("stealing pipe %c power sequencer from [ENCODER:%d:%s]\n",
-                             pipe_name(pipe), encoder->base.base.id,
-                             encoder->base.name);
+               drm_dbg_kms(&dev_priv->drm,
+                           "stealing pipe %c power sequencer from [ENCODER:%d:%s]\n",
+                           pipe_name(pipe), encoder->base.base.id,
+                           encoder->base.name);
 
                /* make sure vdd is off before we steal it */
                vlv_detach_power_sequencer(intel_dp);
@@ -3686,7 +3726,7 @@ static void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
 
        lockdep_assert_held(&dev_priv->pps_mutex);
 
-       WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
+       drm_WARN_ON(&dev_priv->drm, intel_dp->active_pipe != INVALID_PIPE);
 
        if (intel_dp->pps_pipe != INVALID_PIPE &&
            intel_dp->pps_pipe != crtc->pipe) {
@@ -3712,9 +3752,10 @@ static void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
        /* now it's all ours */
        intel_dp->pps_pipe = crtc->pipe;
 
-       DRM_DEBUG_KMS("initializing pipe %c power sequencer for [ENCODER:%d:%s]\n",
-                     pipe_name(intel_dp->pps_pipe), encoder->base.base.id,
-                     encoder->base.name);
+       drm_dbg_kms(&dev_priv->drm,
+                   "initializing pipe %c power sequencer for [ENCODER:%d:%s]\n",
+                   pipe_name(intel_dp->pps_pipe), encoder->base.base.id,
+                   encoder->base.name);
 
        /* init power sequencer on this pipe and port */
        intel_dp_init_panel_power_sequencer(intel_dp);
@@ -4140,18 +4181,22 @@ intel_dp_set_signal_levels(struct intel_dp *intel_dp)
        }
 
        if (mask)
-               DRM_DEBUG_KMS("Using signal levels %08x\n", signal_levels);
-
-       DRM_DEBUG_KMS("Using vswing level %d\n",
-               train_set & DP_TRAIN_VOLTAGE_SWING_MASK);
-       DRM_DEBUG_KMS("Using pre-emphasis level %d\n",
-               (train_set & DP_TRAIN_PRE_EMPHASIS_MASK) >>
-                       DP_TRAIN_PRE_EMPHASIS_SHIFT);
+               drm_dbg_kms(&dev_priv->drm, "Using signal levels %08x\n",
+                           signal_levels);
+
+       drm_dbg_kms(&dev_priv->drm, "Using vswing level %d%s\n",
+                   train_set & DP_TRAIN_VOLTAGE_SWING_MASK,
+                   train_set & DP_TRAIN_MAX_SWING_REACHED ? " (max)" : "");
+       drm_dbg_kms(&dev_priv->drm, "Using pre-emphasis level %d%s\n",
+                   (train_set & DP_TRAIN_PRE_EMPHASIS_MASK) >>
+                   DP_TRAIN_PRE_EMPHASIS_SHIFT,
+                   train_set & DP_TRAIN_MAX_PRE_EMPHASIS_REACHED ?
+                   " (max)" : "");
 
        intel_dp->DP = (intel_dp->DP & ~mask) | signal_levels;
 
-       I915_WRITE(intel_dp->output_reg, intel_dp->DP);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, intel_dp->DP);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 }
 
 void
@@ -4164,8 +4209,8 @@ intel_dp_program_link_training_pattern(struct intel_dp *intel_dp,
 
        _intel_dp_set_link_train(intel_dp, &intel_dp->DP, dp_train_pat);
 
-       I915_WRITE(intel_dp->output_reg, intel_dp->DP);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, intel_dp->DP);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 }
 
 void intel_dp_set_idle_link_train(struct intel_dp *intel_dp)
@@ -4178,10 +4223,10 @@ void intel_dp_set_idle_link_train(struct intel_dp *intel_dp)
        if (!HAS_DDI(dev_priv))
                return;
 
-       val = I915_READ(intel_dp->regs.dp_tp_ctl);
+       val = intel_de_read(dev_priv, intel_dp->regs.dp_tp_ctl);
        val &= ~DP_TP_CTL_LINK_TRAIN_MASK;
        val |= DP_TP_CTL_LINK_TRAIN_IDLE;
-       I915_WRITE(intel_dp->regs.dp_tp_ctl, val);
+       intel_de_write(dev_priv, intel_dp->regs.dp_tp_ctl, val);
 
        /*
         * Until TGL on PORT_A we can have only eDP in SST mode. There the only
@@ -4195,7 +4240,8 @@ void intel_dp_set_idle_link_train(struct intel_dp *intel_dp)
 
        if (intel_de_wait_for_set(dev_priv, intel_dp->regs.dp_tp_status,
                                  DP_TP_STATUS_IDLE_DONE, 1))
-               DRM_ERROR("Timed out waiting for DP idle patterns\n");
+               drm_err(&dev_priv->drm,
+                       "Timed out waiting for DP idle patterns\n");
 }
 
 static void
@@ -4208,10 +4254,12 @@ intel_dp_link_down(struct intel_encoder *encoder,
        enum port port = encoder->port;
        u32 DP = intel_dp->DP;
 
-       if (WARN_ON((I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0))
+       if (drm_WARN_ON(&dev_priv->drm,
+                       (intel_de_read(dev_priv, intel_dp->output_reg) &
+                        DP_PORT_EN) == 0))
                return;
 
-       DRM_DEBUG_KMS("\n");
+       drm_dbg_kms(&dev_priv->drm, "\n");
 
        if ((IS_IVYBRIDGE(dev_priv) && port == PORT_A) ||
            (HAS_PCH_CPT(dev_priv) && port != PORT_A)) {
@@ -4221,12 +4269,12 @@ intel_dp_link_down(struct intel_encoder *encoder,
                DP &= ~DP_LINK_TRAIN_MASK;
                DP |= DP_LINK_TRAIN_PAT_IDLE;
        }
-       I915_WRITE(intel_dp->output_reg, DP);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, DP);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
        DP &= ~(DP_PORT_EN | DP_AUDIO_OUTPUT_ENABLE);
-       I915_WRITE(intel_dp->output_reg, DP);
-       POSTING_READ(intel_dp->output_reg);
+       intel_de_write(dev_priv, intel_dp->output_reg, DP);
+       intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
        /*
         * HW workaround for IBX, we need to move the port
@@ -4245,12 +4293,12 @@ intel_dp_link_down(struct intel_encoder *encoder,
                DP &= ~(DP_PIPE_SEL_MASK | DP_LINK_TRAIN_MASK);
                DP |= DP_PORT_EN | DP_PIPE_SEL(PIPE_A) |
                        DP_LINK_TRAIN_PAT_1;
-               I915_WRITE(intel_dp->output_reg, DP);
-               POSTING_READ(intel_dp->output_reg);
+               intel_de_write(dev_priv, intel_dp->output_reg, DP);
+               intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
                DP &= ~DP_PORT_EN;
-               I915_WRITE(intel_dp->output_reg, DP);
-               POSTING_READ(intel_dp->output_reg);
+               intel_de_write(dev_priv, intel_dp->output_reg, DP);
+               intel_de_posting_read(dev_priv, intel_dp->output_reg);
 
                intel_wait_for_vblank_if_active(dev_priv, PIPE_A);
                intel_set_cpu_fifo_underrun_reporting(dev_priv, PIPE_A, true);
@@ -4370,7 +4418,7 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)
                to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
 
        /* this function is meant to be called only once */
-       WARN_ON(intel_dp->dpcd[DP_DPCD_REV] != 0);
+       drm_WARN_ON(&dev_priv->drm, intel_dp->dpcd[DP_DPCD_REV] != 0);
 
        if (!intel_dp_read_dpcd(intel_dp))
                return false;
@@ -4390,8 +4438,9 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)
        if (drm_dp_dpcd_read(&intel_dp->aux, DP_EDP_DPCD_REV,
                             intel_dp->edp_dpcd, sizeof(intel_dp->edp_dpcd)) ==
                             sizeof(intel_dp->edp_dpcd))
-               DRM_DEBUG_KMS("eDP DPCD: %*ph\n", (int) sizeof(intel_dp->edp_dpcd),
-                             intel_dp->edp_dpcd);
+               drm_dbg_kms(&dev_priv->drm, "eDP DPCD: %*ph\n",
+                           (int)sizeof(intel_dp->edp_dpcd),
+                           intel_dp->edp_dpcd);
 
        /*
         * This has to be called after intel_dp->edp_dpcd is filled, PSR checks
@@ -5125,7 +5174,7 @@ int intel_dp_retrain_link(struct intel_encoder *encoder,
 
        crtc_state = to_intel_crtc_state(crtc->base.state);
 
-       WARN_ON(!intel_crtc_has_dp_encoder(crtc_state));
+       drm_WARN_ON(&dev_priv->drm, !intel_crtc_has_dp_encoder(crtc_state));
 
        if (!crtc_state->hw.active)
                return 0;
@@ -5195,7 +5244,8 @@ intel_dp_hotplug(struct intel_encoder *encoder,
 
        drm_modeset_drop_locks(&ctx);
        drm_modeset_acquire_fini(&ctx);
-       WARN(ret, "Acquiring modeset locks failed with %i\n", ret);
+       drm_WARN(encoder->base.dev, ret,
+                "Acquiring modeset locks failed with %i\n", ret);
 
        /*
         * Keeping it consistent with intel_ddi_hotplug() and
@@ -5281,7 +5331,8 @@ intel_dp_short_pulse(struct intel_dp *intel_dp)
        intel_psr_short_pulse(intel_dp);
 
        if (intel_dp->compliance.test_type == DP_TEST_LINK_TRAINING) {
-               DRM_DEBUG_KMS("Link Training Compliance Test requested\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "Link Training Compliance Test requested\n");
                /* Send a Hotplug Uevent to userspace to start modeset */
                drm_kms_helper_hotplug_event(&dev_priv->drm);
        }
@@ -5370,7 +5421,7 @@ static bool ibx_digital_port_connected(struct intel_encoder *encoder)
                return false;
        }
 
-       return I915_READ(SDEISR) & bit;
+       return intel_de_read(dev_priv, SDEISR) & bit;
 }
 
 static bool cpt_digital_port_connected(struct intel_encoder *encoder)
@@ -5393,7 +5444,7 @@ static bool cpt_digital_port_connected(struct intel_encoder *encoder)
                return false;
        }
 
-       return I915_READ(SDEISR) & bit;
+       return intel_de_read(dev_priv, SDEISR) & bit;
 }
 
 static bool spt_digital_port_connected(struct intel_encoder *encoder)
@@ -5412,7 +5463,7 @@ static bool spt_digital_port_connected(struct intel_encoder *encoder)
                return cpt_digital_port_connected(encoder);
        }
 
-       return I915_READ(SDEISR) & bit;
+       return intel_de_read(dev_priv, SDEISR) & bit;
 }
 
 static bool g4x_digital_port_connected(struct intel_encoder *encoder)
@@ -5435,7 +5486,7 @@ static bool g4x_digital_port_connected(struct intel_encoder *encoder)
                return false;
        }
 
-       return I915_READ(PORT_HOTPLUG_STAT) & bit;
+       return intel_de_read(dev_priv, PORT_HOTPLUG_STAT) & bit;
 }
 
 static bool gm45_digital_port_connected(struct intel_encoder *encoder)
@@ -5458,7 +5509,7 @@ static bool gm45_digital_port_connected(struct intel_encoder *encoder)
                return false;
        }
 
-       return I915_READ(PORT_HOTPLUG_STAT) & bit;
+       return intel_de_read(dev_priv, PORT_HOTPLUG_STAT) & bit;
 }
 
 static bool ilk_digital_port_connected(struct intel_encoder *encoder)
@@ -5466,7 +5517,7 @@ static bool ilk_digital_port_connected(struct intel_encoder *encoder)
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
        if (encoder->hpd_pin == HPD_PORT_A)
-               return I915_READ(DEISR) & DE_DP_A_HOTPLUG;
+               return intel_de_read(dev_priv, DEISR) & DE_DP_A_HOTPLUG;
        else
                return ibx_digital_port_connected(encoder);
 }
@@ -5476,7 +5527,7 @@ static bool snb_digital_port_connected(struct intel_encoder *encoder)
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
        if (encoder->hpd_pin == HPD_PORT_A)
-               return I915_READ(DEISR) & DE_DP_A_HOTPLUG;
+               return intel_de_read(dev_priv, DEISR) & DE_DP_A_HOTPLUG;
        else
                return cpt_digital_port_connected(encoder);
 }
@@ -5486,7 +5537,7 @@ static bool ivb_digital_port_connected(struct intel_encoder *encoder)
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
        if (encoder->hpd_pin == HPD_PORT_A)
-               return I915_READ(DEISR) & DE_DP_A_HOTPLUG_IVB;
+               return intel_de_read(dev_priv, DEISR) & DE_DP_A_HOTPLUG_IVB;
        else
                return cpt_digital_port_connected(encoder);
 }
@@ -5496,7 +5547,7 @@ static bool bdw_digital_port_connected(struct intel_encoder *encoder)
        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
        if (encoder->hpd_pin == HPD_PORT_A)
-               return I915_READ(GEN8_DE_PORT_ISR) & GEN8_PORT_DP_A_HOTPLUG;
+               return intel_de_read(dev_priv, GEN8_DE_PORT_ISR) & GEN8_PORT_DP_A_HOTPLUG;
        else
                return cpt_digital_port_connected(encoder);
 }
@@ -5521,16 +5572,16 @@ static bool bxt_digital_port_connected(struct intel_encoder *encoder)
                return false;
        }
 
-       return I915_READ(GEN8_DE_PORT_ISR) & bit;
+       return intel_de_read(dev_priv, GEN8_DE_PORT_ISR) & bit;
 }
 
 static bool intel_combo_phy_connected(struct drm_i915_private *dev_priv,
                                      enum phy phy)
 {
        if (HAS_PCH_MCC(dev_priv) && phy == PHY_C)
-               return I915_READ(SDEISR) & SDE_TC_HOTPLUG_ICP(PORT_TC1);
+               return intel_de_read(dev_priv, SDEISR) & SDE_TC_HOTPLUG_ICP(PORT_TC1);
 
-       return I915_READ(SDEISR) & SDE_DDI_HOTPLUG_ICP(phy);
+       return intel_de_read(dev_priv, SDEISR) & SDE_DDI_HOTPLUG_ICP(phy);
 }
 
 static bool icp_digital_port_connected(struct intel_encoder *encoder)
@@ -5656,9 +5707,10 @@ intel_dp_detect(struct drm_connector *connector,
        struct intel_encoder *encoder = &dig_port->base;
        enum drm_connector_status status;
 
-       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
-                     connector->base.id, connector->name);
-       WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
+       drm_dbg_kms(&dev_priv->drm, "[CONNECTOR:%d:%s]\n",
+                   connector->base.id, connector->name);
+       drm_WARN_ON(&dev_priv->drm,
+                   !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
 
        /* Can't disconnect eDP */
        if (intel_dp_is_edp(intel_dp))
@@ -5673,9 +5725,10 @@ intel_dp_detect(struct drm_connector *connector,
                memset(intel_dp->dsc_dpcd, 0, sizeof(intel_dp->dsc_dpcd));
 
                if (intel_dp->is_mst) {
-                       DRM_DEBUG_KMS("MST device may have disappeared %d vs %d\n",
-                                     intel_dp->is_mst,
-                                     intel_dp->mst_mgr.mst_state);
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "MST device may have disappeared %d vs %d\n",
+                                   intel_dp->is_mst,
+                                   intel_dp->mst_mgr.mst_state);
                        intel_dp->is_mst = false;
                        drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst_mgr,
                                                        intel_dp->is_mst);
@@ -5763,8 +5816,8 @@ intel_dp_force(struct drm_connector *connector)
                intel_aux_power_domain(dig_port);
        intel_wakeref_t wakeref;
 
-       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
-                     connector->base.id, connector->name);
+       drm_dbg_kms(&dev_priv->drm, "[CONNECTOR:%d:%s]\n",
+                   connector->base.id, connector->name);
        intel_dp_unset_edid(intel_dp);
 
        if (connector->status != connector_status_connected)
@@ -5815,7 +5868,7 @@ intel_dp_connector_register(struct drm_connector *connector)
        if (ret)
                return ret;
 
-       i915_debugfs_connector_add(connector);
+       intel_connector_debugfs_add(connector);
 
        DRM_DEBUG_KMS("registering %s bus for %s\n",
                      intel_dp->aux.name, connector->kdev->kobj.name);
@@ -6492,7 +6545,8 @@ static void intel_edp_panel_vdd_sanitize(struct intel_dp *intel_dp)
         * schedule a vdd off, so we don't hold on to the reference
         * indefinitely.
         */
-       DRM_DEBUG_KMS("VDD left on by BIOS, adjusting state tracking\n");
+       drm_dbg_kms(&dev_priv->drm,
+                   "VDD left on by BIOS, adjusting state tracking\n");
        intel_display_power_get(dev_priv, intel_aux_power_domain(dig_port));
 
        edp_panel_vdd_schedule_off(intel_dp);
@@ -6519,7 +6573,7 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
        intel_wakeref_t wakeref;
 
        if (!HAS_DDI(dev_priv))
-               intel_dp->DP = I915_READ(intel_dp->output_reg);
+               intel_dp->DP = intel_de_read(dev_priv, intel_dp->output_reg);
 
        if (lspcon->active)
                lspcon_resume(lspcon);
@@ -6545,6 +6599,140 @@ void intel_dp_encoder_reset(struct drm_encoder *encoder)
        }
 }
 
+static int intel_modeset_tile_group(struct intel_atomic_state *state,
+                                   int tile_group_id)
+{
+       struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+       struct drm_connector_list_iter conn_iter;
+       struct drm_connector *connector;
+       int ret = 0;
+
+       drm_connector_list_iter_begin(&dev_priv->drm, &conn_iter);
+       drm_for_each_connector_iter(connector, &conn_iter) {
+               struct drm_connector_state *conn_state;
+               struct intel_crtc_state *crtc_state;
+               struct intel_crtc *crtc;
+
+               if (!connector->has_tile ||
+                   connector->tile_group->id != tile_group_id)
+                       continue;
+
+               conn_state = drm_atomic_get_connector_state(&state->base,
+                                                           connector);
+               if (IS_ERR(conn_state)) {
+                       ret = PTR_ERR(conn_state);
+                       break;
+               }
+
+               crtc = to_intel_crtc(conn_state->crtc);
+
+               if (!crtc)
+                       continue;
+
+               crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+               crtc_state->uapi.mode_changed = true;
+
+               ret = drm_atomic_add_affected_planes(&state->base, &crtc->base);
+               if (ret)
+                       break;
+       }
+       drm_connector_list_iter_end(&conn_iter);
+
+       return ret;
+}
+
+static int intel_modeset_affected_transcoders(struct intel_atomic_state *state, u8 transcoders)
+{
+       struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+       struct intel_crtc *crtc;
+
+       if (transcoders == 0)
+               return 0;
+
+       for_each_intel_crtc(&dev_priv->drm, crtc) {
+               struct intel_crtc_state *crtc_state;
+               int ret;
+
+               crtc_state = intel_atomic_get_crtc_state(&state->base, crtc);
+               if (IS_ERR(crtc_state))
+                       return PTR_ERR(crtc_state);
+
+               if (!crtc_state->hw.enable)
+                       continue;
+
+               if (!(transcoders & BIT(crtc_state->cpu_transcoder)))
+                       continue;
+
+               crtc_state->uapi.mode_changed = true;
+
+               ret = drm_atomic_add_affected_connectors(&state->base, &crtc->base);
+               if (ret)
+                       return ret;
+
+               ret = drm_atomic_add_affected_planes(&state->base, &crtc->base);
+               if (ret)
+                       return ret;
+
+               transcoders &= ~BIT(crtc_state->cpu_transcoder);
+       }
+
+       drm_WARN_ON(&dev_priv->drm, transcoders != 0);
+
+       return 0;
+}
+
+static int intel_modeset_synced_crtcs(struct intel_atomic_state *state,
+                                     struct drm_connector *connector)
+{
+       const struct drm_connector_state *old_conn_state =
+               drm_atomic_get_old_connector_state(&state->base, connector);
+       const struct intel_crtc_state *old_crtc_state;
+       struct intel_crtc *crtc;
+       u8 transcoders;
+
+       crtc = to_intel_crtc(old_conn_state->crtc);
+       if (!crtc)
+               return 0;
+
+       old_crtc_state = intel_atomic_get_old_crtc_state(state, crtc);
+
+       if (!old_crtc_state->hw.active)
+               return 0;
+
+       transcoders = old_crtc_state->sync_mode_slaves_mask;
+       if (old_crtc_state->master_transcoder != INVALID_TRANSCODER)
+               transcoders |= BIT(old_crtc_state->master_transcoder);
+
+       return intel_modeset_affected_transcoders(state,
+                                                 transcoders);
+}
+
+static int intel_dp_connector_atomic_check(struct drm_connector *conn,
+                                          struct drm_atomic_state *_state)
+{
+       struct drm_i915_private *dev_priv = to_i915(conn->dev);
+       struct intel_atomic_state *state = to_intel_atomic_state(_state);
+       int ret;
+
+       ret = intel_digital_connector_atomic_check(conn, &state->base);
+       if (ret)
+               return ret;
+
+       if (INTEL_GEN(dev_priv) < 11)
+               return 0;
+
+       if (!intel_connector_needs_modeset(state, conn))
+               return 0;
+
+       if (conn->has_tile) {
+               ret = intel_modeset_tile_group(state, conn->tile_group->id);
+               if (ret)
+                       return ret;
+       }
+
+       return intel_modeset_synced_crtcs(state, conn);
+}
+
 static const struct drm_connector_funcs intel_dp_connector_funcs = {
        .force = intel_dp_force,
        .fill_modes = drm_helper_probe_single_connector_modes,
@@ -6561,7 +6749,7 @@ static const struct drm_connector_helper_funcs intel_dp_connector_helper_funcs =
        .detect_ctx = intel_dp_detect,
        .get_modes = intel_dp_get_modes,
        .mode_valid = intel_dp_mode_valid,
-       .atomic_check = intel_digital_connector_atomic_check,
+       .atomic_check = intel_dp_connector_atomic_check,
 };
 
 static const struct drm_encoder_funcs intel_dp_enc_funcs = {
@@ -6697,10 +6885,10 @@ intel_pps_readout_hw_state(struct intel_dp *intel_dp, struct edp_power_seq *seq)
 
        /* Ensure PPS is unlocked */
        if (!HAS_DDI(dev_priv))
-               I915_WRITE(regs.pp_ctrl, pp_ctl);
+               intel_de_write(dev_priv, regs.pp_ctrl, pp_ctl);
 
-       pp_on = I915_READ(regs.pp_on);
-       pp_off = I915_READ(regs.pp_off);
+       pp_on = intel_de_read(dev_priv, regs.pp_on);
+       pp_off = intel_de_read(dev_priv, regs.pp_off);
 
        /* Pull timing values out of registers */
        seq->t1_t3 = REG_FIELD_GET(PANEL_POWER_UP_DELAY_MASK, pp_on);
@@ -6711,7 +6899,7 @@ intel_pps_readout_hw_state(struct intel_dp *intel_dp, struct edp_power_seq *seq)
        if (i915_mmio_reg_valid(regs.pp_div)) {
                u32 pp_div;
 
-               pp_div = I915_READ(regs.pp_div);
+               pp_div = intel_de_read(dev_priv, regs.pp_div);
 
                seq->t11_t12 = REG_FIELD_GET(PANEL_POWER_CYCLE_DELAY_MASK, pp_div) * 1000;
        } else {
@@ -6768,8 +6956,9 @@ intel_dp_init_panel_power_sequencer(struct intel_dp *intel_dp)
         */
        if (dev_priv->quirks & QUIRK_INCREASE_T12_DELAY) {
                vbt.t11_t12 = max_t(u16, vbt.t11_t12, 1300 * 10);
-               DRM_DEBUG_KMS("Increasing T12 panel delay as per the quirk to %d\n",
-                             vbt.t11_t12);
+               drm_dbg_kms(&dev_priv->drm,
+                           "Increasing T12 panel delay as per the quirk to %d\n",
+                           vbt.t11_t12);
        }
        /* T11_T12 delay is special and actually in units of 100ms, but zero
         * based in the hw (so we need to add 100 ms). But the sw vbt
@@ -6811,12 +7000,15 @@ intel_dp_init_panel_power_sequencer(struct intel_dp *intel_dp)
        intel_dp->panel_power_cycle_delay = get_delay(t11_t12);
 #undef get_delay
 
-       DRM_DEBUG_KMS("panel power up delay %d, power down delay %d, power cycle delay %d\n",
-                     intel_dp->panel_power_up_delay, intel_dp->panel_power_down_delay,
-                     intel_dp->panel_power_cycle_delay);
+       drm_dbg_kms(&dev_priv->drm,
+                   "panel power up delay %d, power down delay %d, power cycle delay %d\n",
+                   intel_dp->panel_power_up_delay,
+                   intel_dp->panel_power_down_delay,
+                   intel_dp->panel_power_cycle_delay);
 
-       DRM_DEBUG_KMS("backlight on delay %d, off delay %d\n",
-                     intel_dp->backlight_on_delay, intel_dp->backlight_off_delay);
+       drm_dbg_kms(&dev_priv->drm, "backlight on delay %d, off delay %d\n",
+                   intel_dp->backlight_on_delay,
+                   intel_dp->backlight_off_delay);
 
        /*
         * We override the HW backlight delays to 1 because we do manual waits
@@ -6841,7 +7033,7 @@ intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
 {
        struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
        u32 pp_on, pp_off, port_sel = 0;
-       int div = dev_priv->rawclk_freq / 1000;
+       int div = RUNTIME_INFO(dev_priv)->rawclk_freq / 1000;
        struct pps_registers regs;
        enum port port = dp_to_dig_port(intel_dp)->base.port;
        const struct edp_power_seq *seq = &intel_dp->pps_delays;
@@ -6865,14 +7057,16 @@ intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
        if (force_disable_vdd) {
                u32 pp = ilk_get_pp_control(intel_dp);
 
-               WARN(pp & PANEL_POWER_ON, "Panel power already on\n");
+               drm_WARN(&dev_priv->drm, pp & PANEL_POWER_ON,
+                        "Panel power already on\n");
 
                if (pp & EDP_FORCE_VDD)
-                       DRM_DEBUG_KMS("VDD already on, disabling first\n");
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "VDD already on, disabling first\n");
 
                pp &= ~EDP_FORCE_VDD;
 
-               I915_WRITE(regs.pp_ctrl, pp);
+               intel_de_write(dev_priv, regs.pp_ctrl, pp);
        }
 
        pp_on = REG_FIELD_PREP(PANEL_POWER_UP_DELAY_MASK, seq->t1_t3) |
@@ -6903,31 +7097,31 @@ intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
 
        pp_on |= port_sel;
 
-       I915_WRITE(regs.pp_on, pp_on);
-       I915_WRITE(regs.pp_off, pp_off);
+       intel_de_write(dev_priv, regs.pp_on, pp_on);
+       intel_de_write(dev_priv, regs.pp_off, pp_off);
 
        /*
         * Compute the divisor for the pp clock, simply match the Bspec formula.
         */
        if (i915_mmio_reg_valid(regs.pp_div)) {
-               I915_WRITE(regs.pp_div,
-                          REG_FIELD_PREP(PP_REFERENCE_DIVIDER_MASK, (100 * div) / 2 - 1) |
-                          REG_FIELD_PREP(PANEL_POWER_CYCLE_DELAY_MASK, DIV_ROUND_UP(seq->t11_t12, 1000)));
+               intel_de_write(dev_priv, regs.pp_div,
+                              REG_FIELD_PREP(PP_REFERENCE_DIVIDER_MASK, (100 * div) / 2 - 1) | REG_FIELD_PREP(PANEL_POWER_CYCLE_DELAY_MASK, DIV_ROUND_UP(seq->t11_t12, 1000)));
        } else {
                u32 pp_ctl;
 
-               pp_ctl = I915_READ(regs.pp_ctrl);
+               pp_ctl = intel_de_read(dev_priv, regs.pp_ctrl);
                pp_ctl &= ~BXT_POWER_CYCLE_DELAY_MASK;
                pp_ctl |= REG_FIELD_PREP(BXT_POWER_CYCLE_DELAY_MASK, DIV_ROUND_UP(seq->t11_t12, 1000));
-               I915_WRITE(regs.pp_ctrl, pp_ctl);
+               intel_de_write(dev_priv, regs.pp_ctrl, pp_ctl);
        }
 
-       DRM_DEBUG_KMS("panel power sequencer register settings: PP_ON %#x, PP_OFF %#x, PP_DIV %#x\n",
-                     I915_READ(regs.pp_on),
-                     I915_READ(regs.pp_off),
-                     i915_mmio_reg_valid(regs.pp_div) ?
-                     I915_READ(regs.pp_div) :
-                     (I915_READ(regs.pp_ctrl) & BXT_POWER_CYCLE_DELAY_MASK));
+       drm_dbg_kms(&dev_priv->drm,
+                   "panel power sequencer register settings: PP_ON %#x, PP_OFF %#x, PP_DIV %#x\n",
+                   intel_de_read(dev_priv, regs.pp_on),
+                   intel_de_read(dev_priv, regs.pp_off),
+                   i915_mmio_reg_valid(regs.pp_div) ?
+                   intel_de_read(dev_priv, regs.pp_div) :
+                   (intel_de_read(dev_priv, regs.pp_ctrl) & BXT_POWER_CYCLE_DELAY_MASK));
 }
 
 static void intel_dp_pps_init(struct intel_dp *intel_dp)
@@ -6964,22 +7158,24 @@ static void intel_dp_set_drrs_state(struct drm_i915_private *dev_priv,
        enum drrs_refresh_rate_type index = DRRS_HIGH_RR;
 
        if (refresh_rate <= 0) {
-               DRM_DEBUG_KMS("Refresh rate should be positive non-zero.\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "Refresh rate should be positive non-zero.\n");
                return;
        }
 
        if (intel_dp == NULL) {
-               DRM_DEBUG_KMS("DRRS not supported.\n");
+               drm_dbg_kms(&dev_priv->drm, "DRRS not supported.\n");
                return;
        }
 
        if (!intel_crtc) {
-               DRM_DEBUG_KMS("DRRS: intel_crtc not initialized\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "DRRS: intel_crtc not initialized\n");
                return;
        }
 
        if (dev_priv->drrs.type < SEAMLESS_DRRS_SUPPORT) {
-               DRM_DEBUG_KMS("Only Seamless DRRS supported.\n");
+               drm_dbg_kms(&dev_priv->drm, "Only Seamless DRRS supported.\n");
                return;
        }
 
@@ -6988,13 +7184,14 @@ static void intel_dp_set_drrs_state(struct drm_i915_private *dev_priv,
                index = DRRS_LOW_RR;
 
        if (index == dev_priv->drrs.refresh_rate_type) {
-               DRM_DEBUG_KMS(
-                       "DRRS requested for previously set RR...ignoring\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "DRRS requested for previously set RR...ignoring\n");
                return;
        }
 
        if (!crtc_state->hw.active) {
-               DRM_DEBUG_KMS("eDP encoder disabled. CRTC not Active\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "eDP encoder disabled. CRTC not Active\n");
                return;
        }
 
@@ -7008,13 +7205,14 @@ static void intel_dp_set_drrs_state(struct drm_i915_private *dev_priv,
                        break;
                case DRRS_MAX_RR:
                default:
-                       DRM_ERROR("Unsupported refreshrate type\n");
+                       drm_err(&dev_priv->drm,
+                               "Unsupported refreshrate type\n");
                }
        } else if (INTEL_GEN(dev_priv) > 6) {
                i915_reg_t reg = PIPECONF(crtc_state->cpu_transcoder);
                u32 val;
 
-               val = I915_READ(reg);
+               val = intel_de_read(dev_priv, reg);
                if (index > DRRS_HIGH_RR) {
                        if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
                                val |= PIPECONF_EDP_RR_MODE_SWITCH_VLV;
@@ -7026,12 +7224,13 @@ static void intel_dp_set_drrs_state(struct drm_i915_private *dev_priv,
                        else
                                val &= ~PIPECONF_EDP_RR_MODE_SWITCH;
                }
-               I915_WRITE(reg, val);
+               intel_de_write(dev_priv, reg, val);
        }
 
        dev_priv->drrs.refresh_rate_type = index;
 
-       DRM_DEBUG_KMS("eDP Refresh Rate set to : %dHz\n", refresh_rate);
+       drm_dbg_kms(&dev_priv->drm, "eDP Refresh Rate set to : %dHz\n",
+                   refresh_rate);
 }
 
 /**
@@ -7047,18 +7246,19 @@ void intel_edp_drrs_enable(struct intel_dp *intel_dp,
        struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
 
        if (!crtc_state->has_drrs) {
-               DRM_DEBUG_KMS("Panel doesn't support DRRS\n");
+               drm_dbg_kms(&dev_priv->drm, "Panel doesn't support DRRS\n");
                return;
        }
 
        if (dev_priv->psr.enabled) {
-               DRM_DEBUG_KMS("PSR enabled. Not enabling DRRS.\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "PSR enabled. Not enabling DRRS.\n");
                return;
        }
 
        mutex_lock(&dev_priv->drrs.mutex);
        if (dev_priv->drrs.dp) {
-               DRM_DEBUG_KMS("DRRS already enabled\n");
+               drm_dbg_kms(&dev_priv->drm, "DRRS already enabled\n");
                goto unlock;
        }
 
@@ -7284,25 +7484,28 @@ intel_dp_drrs_init(struct intel_connector *connector,
        mutex_init(&dev_priv->drrs.mutex);
 
        if (INTEL_GEN(dev_priv) <= 6) {
-               DRM_DEBUG_KMS("DRRS supported for Gen7 and above\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "DRRS supported for Gen7 and above\n");
                return NULL;
        }
 
        if (dev_priv->vbt.drrs_type != SEAMLESS_DRRS_SUPPORT) {
-               DRM_DEBUG_KMS("VBT doesn't support DRRS\n");
+               drm_dbg_kms(&dev_priv->drm, "VBT doesn't support DRRS\n");
                return NULL;
        }
 
        downclock_mode = intel_panel_edid_downclock_mode(connector, fixed_mode);
        if (!downclock_mode) {
-               DRM_DEBUG_KMS("Downclock mode is not found. DRRS not supported\n");
+               drm_dbg_kms(&dev_priv->drm,
+                           "Downclock mode is not found. DRRS not supported\n");
                return NULL;
        }
 
        dev_priv->drrs.type = dev_priv->vbt.drrs_type;
 
        dev_priv->drrs.refresh_rate_type = DRRS_HIGH_RR;
-       DRM_DEBUG_KMS("seamless DRRS supported for eDP panel.\n");
+       drm_dbg_kms(&dev_priv->drm,
+                   "seamless DRRS supported for eDP panel.\n");
        return downclock_mode;
 }
 
@@ -7331,8 +7534,10 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
         * with an already powered-on LVDS power sequencer.
         */
        if (intel_get_lvds_encoder(dev_priv)) {
-               WARN_ON(!(HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv)));
-               DRM_INFO("LVDS was detected, not registering eDP\n");
+               drm_WARN_ON(dev,
+                           !(HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv)));
+               drm_info(&dev_priv->drm,
+                        "LVDS was detected, not registering eDP\n");
 
                return false;
        }
@@ -7348,7 +7553,8 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
 
        if (!has_dpcd) {
                /* if this fails, presume the device is a ghost */
-               DRM_INFO("failed to retrieve link info, disabling eDP\n");
+               drm_info(&dev_priv->drm,
+                        "failed to retrieve link info, disabling eDP\n");
                goto out_vdd_off;
        }
 
@@ -7393,17 +7599,21 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
                if (pipe != PIPE_A && pipe != PIPE_B)
                        pipe = PIPE_A;
 
-               DRM_DEBUG_KMS("using pipe %c for initial backlight setup\n",
-                             pipe_name(pipe));
+               drm_dbg_kms(&dev_priv->drm,
+                           "using pipe %c for initial backlight setup\n",
+                           pipe_name(pipe));
        }
 
        intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
        intel_connector->panel.backlight.power = intel_edp_backlight_power;
        intel_panel_setup_backlight(connector, pipe);
 
-       if (fixed_mode)
-               drm_connector_init_panel_orientation_property(
-                       connector, fixed_mode->hdisplay, fixed_mode->vdisplay);
+       if (fixed_mode) {
+               /* We do not know the orientation, but their might be a quirk */
+               drm_connector_set_panel_orientation_with_quirk(connector,
+                               DRM_MODE_PANEL_ORIENTATION_UNKNOWN,
+                               fixed_mode->hdisplay, fixed_mode->vdisplay);
+       }
 
        return true;
 
@@ -7459,10 +7669,10 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
        INIT_WORK(&intel_connector->modeset_retry_work,
                  intel_dp_modeset_retry_work_fn);
 
-       if (WARN(intel_dig_port->max_lanes < 1,
-                "Not enough lanes (%d) for DP on [ENCODER:%d:%s]\n",
-                intel_dig_port->max_lanes, intel_encoder->base.base.id,
-                intel_encoder->base.name))
+       if (drm_WARN(dev, intel_dig_port->max_lanes < 1,
+                    "Not enough lanes (%d) for DP on [ENCODER:%d:%s]\n",
+                    intel_dig_port->max_lanes, intel_encoder->base.base.id,
+                    intel_encoder->base.name))
                return false;
 
        intel_dp_set_source_rates(intel_dp);
@@ -7472,7 +7682,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
        intel_dp->active_pipe = INVALID_PIPE;
 
        /* Preserve the current hw state. */
-       intel_dp->DP = I915_READ(intel_dp->output_reg);
+       intel_dp->DP = intel_de_read(dev_priv, intel_dp->output_reg);
        intel_dp->attached_connector = intel_connector;
 
        if (intel_dp_is_port_edp(dev_priv, port)) {
@@ -7480,7 +7690,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
                 * Currently we don't support eDP on TypeC ports, although in
                 * theory it could work on TypeC legacy ports.
                 */
-               WARN_ON(intel_phy_is_tc(dev_priv, phy));
+               drm_WARN_ON(dev, intel_phy_is_tc(dev_priv, phy));
                type = DRM_MODE_CONNECTOR_eDP;
        } else {
                type = DRM_MODE_CONNECTOR_DisplayPort;
@@ -7498,14 +7708,16 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
                intel_encoder->type = INTEL_OUTPUT_EDP;
 
        /* eDP only on port B and/or C on vlv/chv */
-       if (WARN_ON((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
-                   intel_dp_is_edp(intel_dp) &&
-                   port != PORT_B && port != PORT_C))
+       if (drm_WARN_ON(dev, (IS_VALLEYVIEW(dev_priv) ||
+                             IS_CHERRYVIEW(dev_priv)) &&
+                       intel_dp_is_edp(intel_dp) &&
+                       port != PORT_B && port != PORT_C))
                return false;
 
-       DRM_DEBUG_KMS("Adding %s connector on [ENCODER:%d:%s]\n",
-                     type == DRM_MODE_CONNECTOR_eDP ? "eDP" : "DP",
-                     intel_encoder->base.base.id, intel_encoder->base.name);
+       drm_dbg_kms(&dev_priv->drm,
+                   "Adding %s connector on [ENCODER:%d:%s]\n",
+                   type == DRM_MODE_CONNECTOR_eDP ? "eDP" : "DP",
+                   intel_encoder->base.base.id, intel_encoder->base.name);
 
        drm_connector_init(dev, connector, &intel_dp_connector_funcs, type);
        drm_connector_helper_add(connector, &intel_dp_connector_helper_funcs);
@@ -7518,6 +7730,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
                connector->ycbcr_420_allowed = true;
 
        intel_encoder->hpd_pin = intel_hpd_pin_default(dev_priv, port);
+       intel_connector->polled = DRM_CONNECTOR_POLL_HPD;
 
        intel_dp_aux_init(intel_dp);
 
@@ -7543,7 +7756,8 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
        if (is_hdcp_supported(dev_priv, port) && !intel_dp_is_edp(intel_dp)) {
                int ret = intel_hdcp_init(intel_connector, &intel_dp_hdcp_shim);
                if (ret)
-                       DRM_DEBUG_KMS("HDCP init failed, skipping.\n");
+                       drm_dbg_kms(&dev_priv->drm,
+                                   "HDCP init failed, skipping.\n");
        }
 
        /* For G4X desktop chip, PEG_BAND_GAP_DATA 3:0 must first be written
@@ -7551,8 +7765,9 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
         * generated on the port when a cable is not attached.
         */
        if (IS_G45(dev_priv)) {
-               u32 temp = I915_READ(PEG_BAND_GAP_DATA);
-               I915_WRITE(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd);
+               u32 temp = intel_de_read(dev_priv, PEG_BAND_GAP_DATA);
+               intel_de_write(dev_priv, PEG_BAND_GAP_DATA,
+                              (temp & ~0xf) | 0xd);
        }
 
        return true;