]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/gpu/drm/i915/display/intel_sdvo.c
Merge tag 'drm-intel-next-2024-02-27-1' of git://anongit.freedesktop.org/drm/drm...
[thirdparty/linux.git] / drivers / gpu / drm / i915 / display / intel_sdvo.c
index acc6b6804105102389dc26c3fefce80444d0adad..5f9e748adc89ee846de12974195e17ab38e14b21 100644 (file)
@@ -44,6 +44,7 @@
 #include "intel_connector.h"
 #include "intel_crtc.h"
 #include "intel_de.h"
+#include "intel_display_driver.h"
 #include "intel_display_types.h"
 #include "intel_fdi.h"
 #include "intel_fifo_underrun.h"
@@ -251,6 +252,7 @@ static void intel_sdvo_write_sdvox(struct intel_sdvo *intel_sdvo, u32 val)
 
 static bool intel_sdvo_read_byte(struct intel_sdvo *intel_sdvo, u8 addr, u8 *ch)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        struct i2c_msg msgs[] = {
                {
                        .addr = intel_sdvo->slave_addr,
@@ -270,7 +272,7 @@ static bool intel_sdvo_read_byte(struct intel_sdvo *intel_sdvo, u8 addr, u8 *ch)
        if ((ret = i2c_transfer(intel_sdvo->i2c, msgs, 2)) == 2)
                return true;
 
-       DRM_DEBUG_KMS("i2c transfer returned %d\n", ret);
+       drm_dbg_kms(&i915->drm, "i2c transfer returned %d\n", ret);
        return false;
 }
 
@@ -436,7 +438,8 @@ static void intel_sdvo_debug_write(struct intel_sdvo *intel_sdvo, u8 cmd,
        drm_WARN_ON(&dev_priv->drm, pos >= sizeof(buffer) - 1);
 #undef BUF_PRINT
 
-       DRM_DEBUG_KMS("%s: W: %02X %s\n", SDVO_NAME(intel_sdvo), cmd, buffer);
+       drm_dbg_kms(&dev_priv->drm, "%s: W: %02X %s\n", SDVO_NAME(intel_sdvo),
+                   cmd, buffer);
 }
 
 static const char * const cmd_status_names[] = {
@@ -461,6 +464,7 @@ static bool __intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
                                   const void *args, int args_len,
                                   bool unlocked)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        u8 *buf, status;
        struct i2c_msg *msgs;
        int i, ret = true;
@@ -510,13 +514,13 @@ static bool __intel_sdvo_write_cmd(struct intel_sdvo *intel_sdvo, u8 cmd,
        else
                ret = __i2c_transfer(intel_sdvo->i2c, msgs, i+3);
        if (ret < 0) {
-               DRM_DEBUG_KMS("I2c transfer returned %d\n", ret);
+               drm_dbg_kms(&i915->drm, "I2c transfer returned %d\n", ret);
                ret = false;
                goto out;
        }
        if (ret != i+3) {
                /* failure in I2C transfer */
-               DRM_DEBUG_KMS("I2c transfer returned %d/%d\n", ret, i+3);
+               drm_dbg_kms(&i915->drm, "I2c transfer returned %d/%d\n", ret, i+3);
                ret = false;
        }
 
@@ -603,12 +607,13 @@ static bool intel_sdvo_read_response(struct intel_sdvo *intel_sdvo,
        drm_WARN_ON(&dev_priv->drm, pos >= sizeof(buffer) - 1);
 #undef BUF_PRINT
 
-       DRM_DEBUG_KMS("%s: R: %s\n", SDVO_NAME(intel_sdvo), buffer);
+       drm_dbg_kms(&dev_priv->drm, "%s: R: %s\n",
+                   SDVO_NAME(intel_sdvo), buffer);
        return true;
 
 log_fail:
-       DRM_DEBUG_KMS("%s: R: ... failed %s\n",
-                     SDVO_NAME(intel_sdvo), buffer);
+       drm_dbg_kms(&dev_priv->drm, "%s: R: ... failed %s\n",
+                   SDVO_NAME(intel_sdvo), buffer);
        return false;
 }
 
@@ -757,7 +762,7 @@ static bool intel_sdvo_get_timing(struct intel_sdvo *intel_sdvo, u8 cmd,
 }
 
 static bool intel_sdvo_set_input_timing(struct intel_sdvo *intel_sdvo,
-                                        struct intel_sdvo_dtd *dtd)
+                                       struct intel_sdvo_dtd *dtd)
 {
        return intel_sdvo_set_timing(intel_sdvo,
                                     SDVO_CMD_SET_INPUT_TIMINGS_PART1, dtd);
@@ -925,8 +930,8 @@ static bool intel_sdvo_check_supp_encode(struct intel_sdvo *intel_sdvo)
 
        BUILD_BUG_ON(sizeof(encode) != 2);
        return intel_sdvo_get_value(intel_sdvo,
-                                 SDVO_CMD_GET_SUPP_ENCODE,
-                                 &encode, sizeof(encode));
+                                   SDVO_CMD_GET_SUPP_ENCODE,
+                                   &encode, sizeof(encode));
 }
 
 static bool intel_sdvo_set_encode(struct intel_sdvo *intel_sdvo,
@@ -1003,6 +1008,7 @@ static bool intel_sdvo_write_infoframe(struct intel_sdvo *intel_sdvo,
                                       unsigned int if_index, u8 tx_rate,
                                       const u8 *data, unsigned int length)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        u8 set_buf_index[2] = { if_index, 0 };
        u8 hbuf_size, tmp[8];
        int i;
@@ -1015,8 +1021,9 @@ static bool intel_sdvo_write_infoframe(struct intel_sdvo *intel_sdvo,
        if (!intel_sdvo_get_hbuf_size(intel_sdvo, &hbuf_size))
                return false;
 
-       DRM_DEBUG_KMS("writing sdvo hbuf: %i, length %u, hbuf_size: %i\n",
-                     if_index, length, hbuf_size);
+       drm_dbg_kms(&i915->drm,
+                   "writing sdvo hbuf: %i, length %u, hbuf_size: %i\n",
+                   if_index, length, hbuf_size);
 
        if (hbuf_size < length)
                return false;
@@ -1041,6 +1048,7 @@ static ssize_t intel_sdvo_read_infoframe(struct intel_sdvo *intel_sdvo,
                                         unsigned int if_index,
                                         u8 *data, unsigned int length)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        u8 set_buf_index[2] = { if_index, 0 };
        u8 hbuf_size, tx_rate, av_split;
        int i;
@@ -1070,8 +1078,9 @@ static ssize_t intel_sdvo_read_infoframe(struct intel_sdvo *intel_sdvo,
        if (!intel_sdvo_get_hbuf_size(intel_sdvo, &hbuf_size))
                return false;
 
-       DRM_DEBUG_KMS("reading sdvo hbuf: %i, length %u, hbuf_size: %i\n",
-                     if_index, length, hbuf_size);
+       drm_dbg_kms(&i915->drm,
+                   "reading sdvo hbuf: %i, length %u, hbuf_size: %i\n",
+                   if_index, length, hbuf_size);
 
        hbuf_size = min_t(unsigned int, length, hbuf_size);
 
@@ -1150,6 +1159,7 @@ static bool intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo,
 static void intel_sdvo_get_avi_infoframe(struct intel_sdvo *intel_sdvo,
                                         struct intel_crtc_state *crtc_state)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        u8 sdvo_data[HDMI_INFOFRAME_SIZE(AVI)];
        union hdmi_infoframe *frame = &crtc_state->infoframes.avi;
        ssize_t len;
@@ -1161,7 +1171,7 @@ static void intel_sdvo_get_avi_infoframe(struct intel_sdvo *intel_sdvo,
        len = intel_sdvo_read_infoframe(intel_sdvo, SDVO_HBUF_INDEX_AVI_IF,
                                        sdvo_data, sizeof(sdvo_data));
        if (len < 0) {
-               DRM_DEBUG_KMS("failed to read AVI infoframe\n");
+               drm_dbg_kms(&i915->drm, "failed to read AVI infoframe\n");
                return;
        } else if (len == 0) {
                return;
@@ -1172,13 +1182,14 @@ static void intel_sdvo_get_avi_infoframe(struct intel_sdvo *intel_sdvo,
 
        ret = hdmi_infoframe_unpack(frame, sdvo_data, len);
        if (ret) {
-               DRM_DEBUG_KMS("Failed to unpack AVI infoframe\n");
+               drm_dbg_kms(&i915->drm, "Failed to unpack AVI infoframe\n");
                return;
        }
 
        if (frame->any.type != HDMI_INFOFRAME_TYPE_AVI)
-               DRM_DEBUG_KMS("Found the wrong infoframe type 0x%x (expected 0x%02x)\n",
-                             frame->any.type, HDMI_INFOFRAME_TYPE_AVI);
+               drm_dbg_kms(&i915->drm,
+                           "Found the wrong infoframe type 0x%x (expected 0x%02x)\n",
+                           frame->any.type, HDMI_INFOFRAME_TYPE_AVI);
 }
 
 static void intel_sdvo_get_eld(struct intel_sdvo *intel_sdvo,
@@ -1209,7 +1220,7 @@ static bool intel_sdvo_set_tv_format(struct intel_sdvo *intel_sdvo,
        struct intel_sdvo_tv_format format;
        u32 format_map;
 
-       format_map = 1 << conn_state->tv.mode;
+       format_map = 1 << conn_state->tv.legacy_mode;
        memset(&format, 0, sizeof(format));
        memcpy(&format, &format_map, min(sizeof(format), sizeof(format_map)));
 
@@ -1347,6 +1358,7 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder,
                                     struct intel_crtc_state *pipe_config,
                                     struct drm_connector_state *conn_state)
 {
+       struct drm_i915_private *i915 = to_i915(encoder->base.dev);
        struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
        struct intel_sdvo_connector *intel_sdvo_connector =
                to_intel_sdvo_connector(conn_state->connector);
@@ -1359,7 +1371,7 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder,
                        return -EINVAL;
        }
 
-       DRM_DEBUG_KMS("forcing bpc to 8 for SDVO\n");
+       drm_dbg_kms(&i915->drm, "forcing bpc to 8 for SDVO\n");
        /* FIXME: Don't increase pipe_bpp */
        pipe_config->pipe_bpp = 8*3;
        pipe_config->sink_format = INTEL_OUTPUT_FORMAT_RGB;
@@ -1438,7 +1450,7 @@ static int intel_sdvo_compute_config(struct intel_encoder *encoder,
 
        if (!intel_sdvo_compute_avi_infoframe(intel_sdvo,
                                              pipe_config, conn_state)) {
-               DRM_DEBUG_KMS("bad AVI infoframe\n");
+               drm_dbg_kms(&i915->drm, "bad AVI infoframe\n");
                return -EINVAL;
        }
 
@@ -1915,8 +1927,8 @@ static void intel_enable_sdvo(struct intel_atomic_state *state,
         */
        if (success && !input1) {
                drm_dbg_kms(&dev_priv->drm,
-                           "First %s output reported failure to "
-                           "sync\n", SDVO_NAME(intel_sdvo));
+                           "First %s output reported failure to sync\n",
+                           SDVO_NAME(intel_sdvo));
        }
 
        if (0)
@@ -1975,37 +1987,38 @@ intel_sdvo_mode_valid(struct drm_connector *connector,
 
 static bool intel_sdvo_get_capabilities(struct intel_sdvo *intel_sdvo, struct intel_sdvo_caps *caps)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        BUILD_BUG_ON(sizeof(*caps) != 8);
        if (!intel_sdvo_get_value(intel_sdvo,
                                  SDVO_CMD_GET_DEVICE_CAPS,
                                  caps, sizeof(*caps)))
                return false;
 
-       DRM_DEBUG_KMS("SDVO capabilities:\n"
-                     "  vendor_id: %d\n"
-                     "  device_id: %d\n"
-                     "  device_rev_id: %d\n"
-                     "  sdvo_version_major: %d\n"
-                     "  sdvo_version_minor: %d\n"
-                     "  sdvo_num_inputs: %d\n"
-                     "  smooth_scaling: %d\n"
-                     "  sharp_scaling: %d\n"
-                     "  up_scaling: %d\n"
-                     "  down_scaling: %d\n"
-                     "  stall_support: %d\n"
-                     "  output_flags: %d\n",
-                     caps->vendor_id,
-                     caps->device_id,
-                     caps->device_rev_id,
-                     caps->sdvo_version_major,
-                     caps->sdvo_version_minor,
-                     caps->sdvo_num_inputs,
-                     caps->smooth_scaling,
-                     caps->sharp_scaling,
-                     caps->up_scaling,
-                     caps->down_scaling,
-                     caps->stall_support,
-                     caps->output_flags);
+       drm_dbg_kms(&i915->drm, "SDVO capabilities:\n"
+                   "  vendor_id: %d\n"
+                   "  device_id: %d\n"
+                   "  device_rev_id: %d\n"
+                   "  sdvo_version_major: %d\n"
+                   "  sdvo_version_minor: %d\n"
+                   "  sdvo_num_inputs: %d\n"
+                   "  smooth_scaling: %d\n"
+                   "  sharp_scaling: %d\n"
+                   "  up_scaling: %d\n"
+                   "  down_scaling: %d\n"
+                   "  stall_support: %d\n"
+                   "  output_flags: %d\n",
+                   caps->vendor_id,
+                   caps->device_id,
+                   caps->device_rev_id,
+                   caps->sdvo_version_major,
+                   caps->sdvo_version_minor,
+                   caps->sdvo_num_inputs,
+                   caps->smooth_scaling,
+                   caps->sharp_scaling,
+                   caps->up_scaling,
+                   caps->down_scaling,
+                   caps->stall_support,
+                   caps->output_flags);
 
        return true;
 }
@@ -2037,7 +2050,7 @@ static u16 intel_sdvo_get_hotplug_support(struct intel_sdvo *intel_sdvo)
                return 0;
 
        if (!intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT,
-                                       &hotplug, sizeof(hotplug)))
+                                 &hotplug, sizeof(hotplug)))
                return 0;
 
        return hotplug;
@@ -2120,8 +2133,9 @@ intel_sdvo_connector_matches_edid(struct intel_sdvo_connector *sdvo,
        bool monitor_is_digital = drm_edid_is_digital(drm_edid);
        bool connector_is_digital = !!IS_DIGITAL(sdvo);
 
-       DRM_DEBUG_KMS("connector_is_digital? %d, monitor_is_digital? %d\n",
-                     connector_is_digital, monitor_is_digital);
+       drm_dbg_kms(sdvo->base.base.dev,
+                   "connector_is_digital? %d, monitor_is_digital? %d\n",
+                   connector_is_digital, monitor_is_digital);
        return connector_is_digital == monitor_is_digital;
 }
 
@@ -2134,12 +2148,15 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
        enum drm_connector_status ret;
        u16 response;
 
-       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
-                     connector->base.id, connector->name);
+       drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s]\n",
+                   connector->base.id, connector->name);
 
        if (!intel_display_device_enabled(i915))
                return connector_status_disconnected;
 
+       if (!intel_display_driver_check_access(i915))
+               return connector->status;
+
        if (!intel_sdvo_set_target_output(intel_sdvo,
                                          intel_sdvo_connector->output_flag))
                return connector_status_unknown;
@@ -2149,9 +2166,9 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
                                  &response, 2))
                return connector_status_unknown;
 
-       DRM_DEBUG_KMS("SDVO response %d %d [%x]\n",
-                     response & 0xff, response >> 8,
-                     intel_sdvo_connector->output_flag);
+       drm_dbg_kms(&i915->drm, "SDVO response %d %d [%x]\n",
+                   response & 0xff, response >> 8,
+                   intel_sdvo_connector->output_flag);
 
        if (response == 0)
                return connector_status_disconnected;
@@ -2185,11 +2202,15 @@ intel_sdvo_detect(struct drm_connector *connector, bool force)
 
 static int intel_sdvo_get_ddc_modes(struct drm_connector *connector)
 {
+       struct drm_i915_private *i915 = to_i915(connector->dev);
        int num_modes = 0;
        const struct drm_edid *drm_edid;
 
-       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
-                     connector->base.id, connector->name);
+       drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s]\n",
+                   connector->base.id, connector->name);
+
+       if (!intel_display_driver_check_access(i915))
+               return drm_edid_connector_add_modes(connector);
 
        /* set the bus switch and get the modes */
        drm_edid = intel_sdvo_get_edid(connector);
@@ -2283,6 +2304,7 @@ static const struct drm_display_mode sdvo_tv_modes[] = {
 static int intel_sdvo_get_tv_modes(struct drm_connector *connector)
 {
        struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        struct intel_sdvo_connector *intel_sdvo_connector =
                to_intel_sdvo_connector(connector);
        const struct drm_connector_state *conn_state = connector->state;
@@ -2291,14 +2313,17 @@ static int intel_sdvo_get_tv_modes(struct drm_connector *connector)
        int num_modes = 0;
        int i;
 
-       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
-                     connector->base.id, connector->name);
+       drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s]\n",
+                   connector->base.id, connector->name);
+
+       if (!intel_display_driver_check_access(i915))
+               return 0;
 
        /*
         * Read the list of supported input resolutions for the selected TV
         * format.
         */
-       format_map = 1 << conn_state->tv.mode;
+       format_map = 1 << conn_state->tv.legacy_mode;
        memcpy(&tv_res, &format_map,
               min(sizeof(format_map), sizeof(struct intel_sdvo_sdtv_resolution_request)));
 
@@ -2363,7 +2388,7 @@ intel_sdvo_connector_atomic_get_property(struct drm_connector *connector,
                int i;
 
                for (i = 0; i < intel_sdvo_connector->format_supported_num; i++)
-                       if (state->tv.mode == intel_sdvo_connector->tv_format_supported[i]) {
+                       if (state->tv.legacy_mode == intel_sdvo_connector->tv_format_supported[i]) {
                                *val = i;
 
                                return 0;
@@ -2419,7 +2444,7 @@ intel_sdvo_connector_atomic_set_property(struct drm_connector *connector,
        struct intel_sdvo_connector_state *sdvo_state = to_intel_sdvo_connector_state(state);
 
        if (property == intel_sdvo_connector->tv_format) {
-               state->tv.mode = intel_sdvo_connector->tv_format_supported[val];
+               state->tv.legacy_mode = intel_sdvo_connector->tv_format_supported[val];
 
                if (state->crtc) {
                        struct drm_crtc_state *crtc_state =
@@ -2779,10 +2804,11 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, u16 type)
        struct drm_encoder *encoder = &intel_sdvo->base.base;
        struct drm_connector *connector;
        struct intel_encoder *intel_encoder = to_intel_encoder(encoder);
+       struct drm_i915_private *i915 = to_i915(intel_encoder->base.dev);
        struct intel_connector *intel_connector;
        struct intel_sdvo_connector *intel_sdvo_connector;
 
-       DRM_DEBUG_KMS("initialising DVI type 0x%x\n", type);
+       drm_dbg_kms(&i915->drm, "initialising DVI type 0x%x\n", type);
 
        intel_sdvo_connector = intel_sdvo_connector_alloc();
        if (!intel_sdvo_connector)
@@ -2793,7 +2819,7 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, u16 type)
        intel_connector = &intel_sdvo_connector->base;
        connector = &intel_connector->base;
        if (intel_sdvo_get_hotplug_support(intel_sdvo) &
-               intel_sdvo_connector->output_flag) {
+           intel_sdvo_connector->output_flag) {
                intel_sdvo->hotplug_active |= intel_sdvo_connector->output_flag;
                /*
                 * Some SDVO devices have one-shot hotplug interrupts.
@@ -2805,6 +2831,7 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, u16 type)
        } else {
                intel_connector->polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT;
        }
+       intel_connector->base.polled = intel_connector->polled;
        encoder->encoder_type = DRM_MODE_ENCODER_TMDS;
        connector->connector_type = DRM_MODE_CONNECTOR_DVID;
 
@@ -2827,12 +2854,13 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, u16 type)
 static bool
 intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, u16 type)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        struct drm_encoder *encoder = &intel_sdvo->base.base;
        struct drm_connector *connector;
        struct intel_connector *intel_connector;
        struct intel_sdvo_connector *intel_sdvo_connector;
 
-       DRM_DEBUG_KMS("initialising TV type 0x%x\n", type);
+       drm_dbg_kms(&i915->drm, "initialising TV type 0x%x\n", type);
 
        intel_sdvo_connector = intel_sdvo_connector_alloc();
        if (!intel_sdvo_connector)
@@ -2866,12 +2894,13 @@ err:
 static bool
 intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, u16 type)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        struct drm_encoder *encoder = &intel_sdvo->base.base;
        struct drm_connector *connector;
        struct intel_connector *intel_connector;
        struct intel_sdvo_connector *intel_sdvo_connector;
 
-       DRM_DEBUG_KMS("initialising analog type 0x%x\n", type);
+       drm_dbg_kms(&i915->drm, "initialising analog type 0x%x\n", type);
 
        intel_sdvo_connector = intel_sdvo_connector_alloc();
        if (!intel_sdvo_connector)
@@ -2880,6 +2909,7 @@ intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, u16 type)
        intel_connector = &intel_sdvo_connector->base;
        connector = &intel_connector->base;
        intel_connector->polled = DRM_CONNECTOR_POLL_CONNECT;
+       intel_connector->base.polled = intel_connector->polled;
        encoder->encoder_type = DRM_MODE_ENCODER_DAC;
        connector->connector_type = DRM_MODE_CONNECTOR_VGA;
 
@@ -2902,7 +2932,7 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, u16 type)
        struct intel_connector *intel_connector;
        struct intel_sdvo_connector *intel_sdvo_connector;
 
-       DRM_DEBUG_KMS("initialising LVDS type 0x%x\n", type);
+       drm_dbg_kms(&i915->drm, "initialising LVDS type 0x%x\n", type);
 
        intel_sdvo_connector = intel_sdvo_connector_alloc();
        if (!intel_sdvo_connector)
@@ -2986,6 +3016,7 @@ static bool intel_sdvo_output_init(struct intel_sdvo *sdvo, u16 type)
 static bool
 intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        static const u16 probe_order[] = {
                SDVO_OUTPUT_TMDS0,
                SDVO_OUTPUT_TMDS1,
@@ -3004,8 +3035,9 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo)
        flags = intel_sdvo_filter_output_flags(intel_sdvo->caps.output_flags);
 
        if (flags == 0) {
-               DRM_DEBUG_KMS("%s: Unknown SDVO output type (0x%04x)\n",
-                             SDVO_NAME(intel_sdvo), intel_sdvo->caps.output_flags);
+               drm_dbg_kms(&i915->drm,
+                           "%s: Unknown SDVO output type (0x%04x)\n",
+                           SDVO_NAME(intel_sdvo), intel_sdvo->caps.output_flags);
                return false;
        }
 
@@ -3067,8 +3099,8 @@ static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
 
 
        intel_sdvo_connector->tv_format =
-                       drm_property_create(dev, DRM_MODE_PROP_ENUM,
-                                           "mode", intel_sdvo_connector->format_supported_num);
+               drm_property_create(dev, DRM_MODE_PROP_ENUM,
+                                   "mode", intel_sdvo_connector->format_supported_num);
        if (!intel_sdvo_connector->tv_format)
                return false;
 
@@ -3076,7 +3108,7 @@ static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
                drm_property_add_enum(intel_sdvo_connector->tv_format, i,
                                      tv_format_names[intel_sdvo_connector->tv_format_supported[i]]);
 
-       intel_sdvo_connector->base.base.state->tv.mode = intel_sdvo_connector->tv_format_supported[0];
+       intel_sdvo_connector->base.base.state->tv.legacy_mode = intel_sdvo_connector->tv_format_supported[0];
        drm_object_attach_property(&intel_sdvo_connector->base.base.base,
                                   intel_sdvo_connector->tv_format, 0);
        return true;
@@ -3094,8 +3126,8 @@ static bool intel_sdvo_tv_create_property(struct intel_sdvo *intel_sdvo,
                state_assignment = response; \
                drm_object_attach_property(&connector->base, \
                                           intel_sdvo_connector->name, 0); \
-               DRM_DEBUG_KMS(#name ": max %d, default %d, current %d\n", \
-                             data_value[0], data_value[1], response); \
+               drm_dbg_kms(dev, #name ": max %d, default %d, current %d\n", \
+                           data_value[0], data_value[1], response); \
        } \
 } while (0)
 
@@ -3106,6 +3138,7 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
                                      struct intel_sdvo_connector *intel_sdvo_connector,
                                      struct intel_sdvo_enhancements_reply enhancements)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        struct drm_device *dev = intel_sdvo->base.base.dev;
        struct drm_connector *connector = &intel_sdvo_connector->base.base;
        struct drm_connector_state *conn_state = connector->state;
@@ -3142,10 +3175,9 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
                        return false;
 
                drm_object_attach_property(&connector->base,
-                                             intel_sdvo_connector->right, 0);
-               DRM_DEBUG_KMS("h_overscan: max %d, "
-                             "default %d, current %d\n",
-                             data_value[0], data_value[1], response);
+                                          intel_sdvo_connector->right, 0);
+               drm_dbg_kms(&i915->drm, "h_overscan: max %d, default %d, current %d\n",
+                           data_value[0], data_value[1], response);
        }
 
        if (enhancements.overscan_v) {
@@ -3164,7 +3196,7 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
                intel_sdvo_connector->max_vscan = data_value[0];
                intel_sdvo_connector->top =
                        drm_property_create_range(dev, 0,
-                                           "top_margin", 0, data_value[0]);
+                                                 "top_margin", 0, data_value[0]);
                if (!intel_sdvo_connector->top)
                        return false;
 
@@ -3173,15 +3205,14 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
 
                intel_sdvo_connector->bottom =
                        drm_property_create_range(dev, 0,
-                                           "bottom_margin", 0, data_value[0]);
+                                                 "bottom_margin", 0, data_value[0]);
                if (!intel_sdvo_connector->bottom)
                        return false;
 
                drm_object_attach_property(&connector->base,
-                                             intel_sdvo_connector->bottom, 0);
-               DRM_DEBUG_KMS("v_overscan: max %d, "
-                             "default %d, current %d\n",
-                             data_value[0], data_value[1], response);
+                                          intel_sdvo_connector->bottom, 0);
+               drm_dbg_kms(&i915->drm, "v_overscan: max %d, default %d, current %d\n",
+                           data_value[0], data_value[1], response);
        }
 
        ENHANCEMENT(&sdvo_state->tv, hpos, HPOS);
@@ -3209,7 +3240,7 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo *intel_sdvo,
 
                drm_object_attach_property(&connector->base,
                                           intel_sdvo_connector->dot_crawl, 0);
-               DRM_DEBUG_KMS("dot crawl: current %d\n", response);
+               drm_dbg_kms(&i915->drm, "dot crawl: current %d\n", response);
        }
 
        return true;
@@ -3234,6 +3265,7 @@ intel_sdvo_create_enhance_property_lvds(struct intel_sdvo *intel_sdvo,
 static bool intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
                                               struct intel_sdvo_connector *intel_sdvo_connector)
 {
+       struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
        union {
                struct intel_sdvo_enhancements_reply reply;
                u16 response;
@@ -3245,7 +3277,7 @@ static bool intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
                                  SDVO_CMD_GET_SUPPORTED_ENHANCEMENTS,
                                  &enhancements, sizeof(enhancements)) ||
            enhancements.response == 0) {
-               DRM_DEBUG_KMS("No enhancement is supported\n");
+               drm_dbg_kms(&i915->drm, "No enhancement is supported\n");
                return true;
        }
 
@@ -3465,23 +3497,23 @@ bool intel_sdvo_init(struct drm_i915_private *dev_priv,
                goto err_output;
 
        drm_dbg_kms(&dev_priv->drm, "%s device VID/DID: %02X:%02X.%02X, "
-                       "clock range %dMHz - %dMHz, "
-                       "num inputs: %d, "
-                       "output 1: %c, output 2: %c\n",
-                       SDVO_NAME(intel_sdvo),
-                       intel_sdvo->caps.vendor_id, intel_sdvo->caps.device_id,
-                       intel_sdvo->caps.device_rev_id,
-                       intel_sdvo->pixel_clock_min / 1000,
-                       intel_sdvo->pixel_clock_max / 1000,
-                       intel_sdvo->caps.sdvo_num_inputs,
-                       /* check currently supported outputs */
-                       intel_sdvo->caps.output_flags &
-                       (SDVO_OUTPUT_TMDS0 | SDVO_OUTPUT_RGB0 |
-                        SDVO_OUTPUT_LVDS0 | SDVO_OUTPUT_SVID0 |
-                        SDVO_OUTPUT_CVBS0 | SDVO_OUTPUT_YPRPB0) ? 'Y' : 'N',
-                       intel_sdvo->caps.output_flags &
-                       (SDVO_OUTPUT_TMDS1 | SDVO_OUTPUT_RGB1 |
-                        SDVO_OUTPUT_LVDS1) ? 'Y' : 'N');
+                   "clock range %dMHz - %dMHz, "
+                   "num inputs: %d, "
+                   "output 1: %c, output 2: %c\n",
+                   SDVO_NAME(intel_sdvo),
+                   intel_sdvo->caps.vendor_id, intel_sdvo->caps.device_id,
+                   intel_sdvo->caps.device_rev_id,
+                   intel_sdvo->pixel_clock_min / 1000,
+                   intel_sdvo->pixel_clock_max / 1000,
+                   intel_sdvo->caps.sdvo_num_inputs,
+                   /* check currently supported outputs */
+                   intel_sdvo->caps.output_flags &
+                   (SDVO_OUTPUT_TMDS0 | SDVO_OUTPUT_RGB0 |
+                    SDVO_OUTPUT_LVDS0 | SDVO_OUTPUT_SVID0 |
+                    SDVO_OUTPUT_CVBS0 | SDVO_OUTPUT_YPRPB0) ? 'Y' : 'N',
+                   intel_sdvo->caps.output_flags &
+                   (SDVO_OUTPUT_TMDS1 | SDVO_OUTPUT_RGB1 |
+                    SDVO_OUTPUT_LVDS1) ? 'Y' : 'N');
        return true;
 
 err_output: