diff options
| -rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 49 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 12 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 20 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_dvo.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 11 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 2 |
9 files changed, 73 insertions, 51 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index 4cf8e2e88a40..d1294978a38c 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
| @@ -537,6 +537,10 @@ void intel_crt_init(struct drm_device *dev) | |||
| 537 | } | 537 | } |
| 538 | 538 | ||
| 539 | intel_output->type = INTEL_OUTPUT_ANALOG; | 539 | intel_output->type = INTEL_OUTPUT_ANALOG; |
| 540 | intel_output->clone_mask = (1 << INTEL_SDVO_NON_TV_CLONE_BIT) | | ||
| 541 | (1 << INTEL_ANALOG_CLONE_BIT) | | ||
| 542 | (1 << INTEL_SDVO_LVDS_CLONE_BIT); | ||
| 543 | intel_output->crtc_mask = (1 << 0) | (1 << 1); | ||
| 540 | connector->interlace_allowed = 0; | 544 | connector->interlace_allowed = 0; |
| 541 | connector->doublescan_allowed = 0; | 545 | connector->doublescan_allowed = 0; |
| 542 | 546 | ||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 4fad113a1b29..3fadb5358858 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -3170,7 +3170,7 @@ static int intel_connector_clones(struct drm_device *dev, int type_mask) | |||
| 3170 | 3170 | ||
| 3171 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 3171 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { |
| 3172 | struct intel_output *intel_output = to_intel_output(connector); | 3172 | struct intel_output *intel_output = to_intel_output(connector); |
| 3173 | if (type_mask & (1 << intel_output->type)) | 3173 | if (type_mask & intel_output->clone_mask) |
| 3174 | index_mask |= (1 << entry); | 3174 | index_mask |= (1 << entry); |
| 3175 | entry++; | 3175 | entry++; |
| 3176 | } | 3176 | } |
| @@ -3253,51 +3253,10 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
| 3253 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 3253 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { |
| 3254 | struct intel_output *intel_output = to_intel_output(connector); | 3254 | struct intel_output *intel_output = to_intel_output(connector); |
| 3255 | struct drm_encoder *encoder = &intel_output->enc; | 3255 | struct drm_encoder *encoder = &intel_output->enc; |
| 3256 | int crtc_mask = 0, clone_mask = 0; | ||
| 3257 | 3256 | ||
| 3258 | /* valid crtcs */ | 3257 | encoder->possible_crtcs = intel_output->crtc_mask; |
| 3259 | switch(intel_output->type) { | 3258 | encoder->possible_clones = intel_connector_clones(dev, |
| 3260 | case INTEL_OUTPUT_HDMI: | 3259 | intel_output->clone_mask); |
| 3261 | crtc_mask = ((1 << 0)| | ||
| 3262 | (1 << 1)); | ||
| 3263 | clone_mask = ((1 << INTEL_OUTPUT_HDMI)); | ||
| 3264 | break; | ||
| 3265 | case INTEL_OUTPUT_DVO: | ||
| 3266 | case INTEL_OUTPUT_SDVO: | ||
| 3267 | crtc_mask = ((1 << 0)| | ||
| 3268 | (1 << 1)); | ||
| 3269 | clone_mask = ((1 << INTEL_OUTPUT_ANALOG) | | ||
| 3270 | (1 << INTEL_OUTPUT_DVO) | | ||
| 3271 | (1 << INTEL_OUTPUT_SDVO)); | ||
| 3272 | break; | ||
| 3273 | case INTEL_OUTPUT_ANALOG: | ||
| 3274 | crtc_mask = ((1 << 0)| | ||
| 3275 | (1 << 1)); | ||
| 3276 | clone_mask = ((1 << INTEL_OUTPUT_ANALOG) | | ||
| 3277 | (1 << INTEL_OUTPUT_DVO) | | ||
| 3278 | (1 << INTEL_OUTPUT_SDVO)); | ||
| 3279 | break; | ||
| 3280 | case INTEL_OUTPUT_LVDS: | ||
| 3281 | crtc_mask = (1 << 1); | ||
| 3282 | clone_mask = (1 << INTEL_OUTPUT_LVDS); | ||
| 3283 | break; | ||
| 3284 | case INTEL_OUTPUT_TVOUT: | ||
| 3285 | crtc_mask = ((1 << 0) | | ||
| 3286 | (1 << 1)); | ||
| 3287 | clone_mask = (1 << INTEL_OUTPUT_TVOUT); | ||
| 3288 | break; | ||
| 3289 | case INTEL_OUTPUT_DISPLAYPORT: | ||
| 3290 | crtc_mask = ((1 << 0) | | ||
| 3291 | (1 << 1)); | ||
| 3292 | clone_mask = (1 << INTEL_OUTPUT_DISPLAYPORT); | ||
| 3293 | break; | ||
| 3294 | case INTEL_OUTPUT_EDP: | ||
| 3295 | crtc_mask = (1 << 1); | ||
| 3296 | clone_mask = (1 << INTEL_OUTPUT_EDP); | ||
| 3297 | break; | ||
| 3298 | } | ||
| 3299 | encoder->possible_crtcs = crtc_mask; | ||
| 3300 | encoder->possible_clones = intel_connector_clones(dev, clone_mask); | ||
| 3301 | } | 3260 | } |
| 3302 | } | 3261 | } |
| 3303 | 3262 | ||
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index a6ff15ac548a..f2afc4af4bc9 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
| @@ -1254,6 +1254,18 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
| 1254 | else | 1254 | else |
| 1255 | intel_output->type = INTEL_OUTPUT_DISPLAYPORT; | 1255 | intel_output->type = INTEL_OUTPUT_DISPLAYPORT; |
| 1256 | 1256 | ||
| 1257 | if (output_reg == DP_B) | ||
| 1258 | intel_output->clone_mask = (1 << INTEL_DP_B_CLONE_BIT); | ||
| 1259 | else if (output_reg == DP_C) | ||
| 1260 | intel_output->clone_mask = (1 << INTEL_DP_C_CLONE_BIT); | ||
| 1261 | else if (output_reg == DP_D) | ||
| 1262 | intel_output->clone_mask = (1 << INTEL_DP_D_CLONE_BIT); | ||
| 1263 | |||
| 1264 | if (IS_eDP(intel_output)) { | ||
| 1265 | intel_output->crtc_mask = (1 << 1); | ||
| 1266 | intel_output->clone_mask = (1 << INTEL_OUTPUT_EDP); | ||
| 1267 | } else | ||
| 1268 | intel_output->crtc_mask = (1 << 0) | (1 << 1); | ||
| 1257 | connector->interlace_allowed = true; | 1269 | connector->interlace_allowed = true; |
| 1258 | connector->doublescan_allowed = 0; | 1270 | connector->doublescan_allowed = 0; |
| 1259 | 1271 | ||
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index d6f92ea1b553..25aa6facc12d 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
| @@ -57,6 +57,24 @@ | |||
| 57 | #define INTEL_OUTPUT_DISPLAYPORT 7 | 57 | #define INTEL_OUTPUT_DISPLAYPORT 7 |
| 58 | #define INTEL_OUTPUT_EDP 8 | 58 | #define INTEL_OUTPUT_EDP 8 |
| 59 | 59 | ||
| 60 | /* Intel Pipe Clone Bit */ | ||
| 61 | #define INTEL_HDMIB_CLONE_BIT 1 | ||
| 62 | #define INTEL_HDMIC_CLONE_BIT 2 | ||
| 63 | #define INTEL_HDMID_CLONE_BIT 3 | ||
| 64 | #define INTEL_HDMIE_CLONE_BIT 4 | ||
| 65 | #define INTEL_HDMIF_CLONE_BIT 5 | ||
| 66 | #define INTEL_SDVO_NON_TV_CLONE_BIT 6 | ||
| 67 | #define INTEL_SDVO_TV_CLONE_BIT 7 | ||
| 68 | #define INTEL_SDVO_LVDS_CLONE_BIT 8 | ||
| 69 | #define INTEL_ANALOG_CLONE_BIT 9 | ||
| 70 | #define INTEL_TV_CLONE_BIT 10 | ||
| 71 | #define INTEL_DP_B_CLONE_BIT 11 | ||
| 72 | #define INTEL_DP_C_CLONE_BIT 12 | ||
| 73 | #define INTEL_DP_D_CLONE_BIT 13 | ||
| 74 | #define INTEL_LVDS_CLONE_BIT 14 | ||
| 75 | #define INTEL_DVO_TMDS_CLONE_BIT 15 | ||
| 76 | #define INTEL_DVO_LVDS_CLONE_BIT 16 | ||
| 77 | |||
| 60 | #define INTEL_DVO_CHIP_NONE 0 | 78 | #define INTEL_DVO_CHIP_NONE 0 |
| 61 | #define INTEL_DVO_CHIP_LVDS 1 | 79 | #define INTEL_DVO_CHIP_LVDS 1 |
| 62 | #define INTEL_DVO_CHIP_TMDS 2 | 80 | #define INTEL_DVO_CHIP_TMDS 2 |
| @@ -86,6 +104,8 @@ struct intel_output { | |||
| 86 | bool needs_tv_clock; | 104 | bool needs_tv_clock; |
| 87 | void *dev_priv; | 105 | void *dev_priv; |
| 88 | void (*hot_plug)(struct intel_output *); | 106 | void (*hot_plug)(struct intel_output *); |
| 107 | int crtc_mask; | ||
| 108 | int clone_mask; | ||
| 89 | }; | 109 | }; |
| 90 | 110 | ||
| 91 | struct intel_crtc { | 111 | struct intel_crtc { |
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c index 13bff20930e8..a4d2606de778 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c | |||
| @@ -435,14 +435,20 @@ void intel_dvo_init(struct drm_device *dev) | |||
| 435 | continue; | 435 | continue; |
| 436 | 436 | ||
| 437 | intel_output->type = INTEL_OUTPUT_DVO; | 437 | intel_output->type = INTEL_OUTPUT_DVO; |
| 438 | intel_output->crtc_mask = (1 << 0) | (1 << 1); | ||
| 438 | switch (dvo->type) { | 439 | switch (dvo->type) { |
| 439 | case INTEL_DVO_CHIP_TMDS: | 440 | case INTEL_DVO_CHIP_TMDS: |
| 441 | intel_output->clone_mask = | ||
| 442 | (1 << INTEL_DVO_TMDS_CLONE_BIT) | | ||
| 443 | (1 << INTEL_ANALOG_CLONE_BIT); | ||
| 440 | drm_connector_init(dev, connector, | 444 | drm_connector_init(dev, connector, |
| 441 | &intel_dvo_connector_funcs, | 445 | &intel_dvo_connector_funcs, |
| 442 | DRM_MODE_CONNECTOR_DVII); | 446 | DRM_MODE_CONNECTOR_DVII); |
| 443 | encoder_type = DRM_MODE_ENCODER_TMDS; | 447 | encoder_type = DRM_MODE_ENCODER_TMDS; |
| 444 | break; | 448 | break; |
| 445 | case INTEL_DVO_CHIP_LVDS: | 449 | case INTEL_DVO_CHIP_LVDS: |
| 450 | intel_output->clone_mask = | ||
| 451 | (1 << INTEL_DVO_LVDS_CLONE_BIT); | ||
| 446 | drm_connector_init(dev, connector, | 452 | drm_connector_init(dev, connector, |
| 447 | &intel_dvo_connector_funcs, | 453 | &intel_dvo_connector_funcs, |
| 448 | DRM_MODE_CONNECTOR_LVDS); | 454 | DRM_MODE_CONNECTOR_LVDS); |
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 1842290cded3..fa304e136010 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
| @@ -230,22 +230,28 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
| 230 | 230 | ||
| 231 | connector->interlace_allowed = 0; | 231 | connector->interlace_allowed = 0; |
| 232 | connector->doublescan_allowed = 0; | 232 | connector->doublescan_allowed = 0; |
| 233 | intel_output->crtc_mask = (1 << 0) | (1 << 1); | ||
| 233 | 234 | ||
| 234 | /* Set up the DDC bus. */ | 235 | /* Set up the DDC bus. */ |
| 235 | if (sdvox_reg == SDVOB) | 236 | if (sdvox_reg == SDVOB) { |
| 237 | intel_output->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); | ||
| 236 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB"); | 238 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB"); |
| 237 | else if (sdvox_reg == SDVOC) | 239 | } else if (sdvox_reg == SDVOC) { |
| 240 | intel_output->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); | ||
| 238 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC"); | 241 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC"); |
| 239 | else if (sdvox_reg == HDMIB) | 242 | } else if (sdvox_reg == HDMIB) { |
| 243 | intel_output->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); | ||
| 240 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE, | 244 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE, |
| 241 | "HDMIB"); | 245 | "HDMIB"); |
| 242 | else if (sdvox_reg == HDMIC) | 246 | } else if (sdvox_reg == HDMIC) { |
| 247 | intel_output->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT); | ||
| 243 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD, | 248 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD, |
| 244 | "HDMIC"); | 249 | "HDMIC"); |
| 245 | else if (sdvox_reg == HDMID) | 250 | } else if (sdvox_reg == HDMID) { |
| 251 | intel_output->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT); | ||
| 246 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF, | 252 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF, |
| 247 | "HDMID"); | 253 | "HDMID"); |
| 248 | 254 | } | |
| 249 | if (!intel_output->ddc_bus) | 255 | if (!intel_output->ddc_bus) |
| 250 | goto err_connector; | 256 | goto err_connector; |
| 251 | 257 | ||
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index 3f445a80c552..8df02ef89261 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
| @@ -916,6 +916,8 @@ void intel_lvds_init(struct drm_device *dev) | |||
| 916 | drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc); | 916 | drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc); |
| 917 | intel_output->type = INTEL_OUTPUT_LVDS; | 917 | intel_output->type = INTEL_OUTPUT_LVDS; |
| 918 | 918 | ||
| 919 | intel_output->clone_mask = (1 << INTEL_LVDS_CLONE_BIT); | ||
| 920 | intel_output->crtc_mask = (1 << 1); | ||
| 919 | drm_encoder_helper_add(encoder, &intel_lvds_helper_funcs); | 921 | drm_encoder_helper_add(encoder, &intel_lvds_helper_funcs); |
| 920 | drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs); | 922 | drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs); |
| 921 | connector->display_info.subpixel_order = SubPixelHorizontalRGB; | 923 | connector->display_info.subpixel_order = SubPixelHorizontalRGB; |
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 95ca0acc4945..d3b74ba62b4a 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
| @@ -1967,6 +1967,9 @@ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags) | |||
| 1967 | intel_sdvo_set_colorimetry(intel_output, | 1967 | intel_sdvo_set_colorimetry(intel_output, |
| 1968 | SDVO_COLORIMETRY_RGB256); | 1968 | SDVO_COLORIMETRY_RGB256); |
| 1969 | connector->connector_type = DRM_MODE_CONNECTOR_HDMIA; | 1969 | connector->connector_type = DRM_MODE_CONNECTOR_HDMIA; |
| 1970 | intel_output->clone_mask = | ||
| 1971 | (1 << INTEL_SDVO_NON_TV_CLONE_BIT) | | ||
| 1972 | (1 << INTEL_ANALOG_CLONE_BIT); | ||
| 1970 | } | 1973 | } |
| 1971 | } else if (flags & SDVO_OUTPUT_SVID0) { | 1974 | } else if (flags & SDVO_OUTPUT_SVID0) { |
| 1972 | 1975 | ||
| @@ -1975,11 +1978,14 @@ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags) | |||
| 1975 | connector->connector_type = DRM_MODE_CONNECTOR_SVIDEO; | 1978 | connector->connector_type = DRM_MODE_CONNECTOR_SVIDEO; |
| 1976 | sdvo_priv->is_tv = true; | 1979 | sdvo_priv->is_tv = true; |
| 1977 | intel_output->needs_tv_clock = true; | 1980 | intel_output->needs_tv_clock = true; |
| 1981 | intel_output->clone_mask = 1 << INTEL_SDVO_TV_CLONE_BIT; | ||
| 1978 | } else if (flags & SDVO_OUTPUT_RGB0) { | 1982 | } else if (flags & SDVO_OUTPUT_RGB0) { |
| 1979 | 1983 | ||
| 1980 | sdvo_priv->controlled_output = SDVO_OUTPUT_RGB0; | 1984 | sdvo_priv->controlled_output = SDVO_OUTPUT_RGB0; |
| 1981 | encoder->encoder_type = DRM_MODE_ENCODER_DAC; | 1985 | encoder->encoder_type = DRM_MODE_ENCODER_DAC; |
| 1982 | connector->connector_type = DRM_MODE_CONNECTOR_VGA; | 1986 | connector->connector_type = DRM_MODE_CONNECTOR_VGA; |
| 1987 | intel_output->clone_mask = (1 << INTEL_SDVO_NON_TV_CLONE_BIT) | | ||
| 1988 | (1 << INTEL_ANALOG_CLONE_BIT); | ||
| 1983 | } else if (flags & SDVO_OUTPUT_RGB1) { | 1989 | } else if (flags & SDVO_OUTPUT_RGB1) { |
| 1984 | 1990 | ||
| 1985 | sdvo_priv->controlled_output = SDVO_OUTPUT_RGB1; | 1991 | sdvo_priv->controlled_output = SDVO_OUTPUT_RGB1; |
| @@ -1991,12 +1997,16 @@ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags) | |||
| 1991 | encoder->encoder_type = DRM_MODE_ENCODER_LVDS; | 1997 | encoder->encoder_type = DRM_MODE_ENCODER_LVDS; |
| 1992 | connector->connector_type = DRM_MODE_CONNECTOR_LVDS; | 1998 | connector->connector_type = DRM_MODE_CONNECTOR_LVDS; |
| 1993 | sdvo_priv->is_lvds = true; | 1999 | sdvo_priv->is_lvds = true; |
| 2000 | intel_output->clone_mask = (1 << INTEL_ANALOG_CLONE_BIT) | | ||
| 2001 | (1 << INTEL_SDVO_LVDS_CLONE_BIT); | ||
| 1994 | } else if (flags & SDVO_OUTPUT_LVDS1) { | 2002 | } else if (flags & SDVO_OUTPUT_LVDS1) { |
| 1995 | 2003 | ||
| 1996 | sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS1; | 2004 | sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS1; |
| 1997 | encoder->encoder_type = DRM_MODE_ENCODER_LVDS; | 2005 | encoder->encoder_type = DRM_MODE_ENCODER_LVDS; |
| 1998 | connector->connector_type = DRM_MODE_CONNECTOR_LVDS; | 2006 | connector->connector_type = DRM_MODE_CONNECTOR_LVDS; |
| 1999 | sdvo_priv->is_lvds = true; | 2007 | sdvo_priv->is_lvds = true; |
| 2008 | intel_output->clone_mask = (1 << INTEL_ANALOG_CLONE_BIT) | | ||
| 2009 | (1 << INTEL_SDVO_LVDS_CLONE_BIT); | ||
| 2000 | } else { | 2010 | } else { |
| 2001 | 2011 | ||
| 2002 | unsigned char bytes[2]; | 2012 | unsigned char bytes[2]; |
| @@ -2009,6 +2019,7 @@ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags) | |||
| 2009 | bytes[0], bytes[1]); | 2019 | bytes[0], bytes[1]); |
| 2010 | ret = false; | 2020 | ret = false; |
| 2011 | } | 2021 | } |
| 2022 | intel_output->crtc_mask = (1 << 0) | (1 << 1); | ||
| 2012 | 2023 | ||
| 2013 | if (ret && registered) | 2024 | if (ret && registered) |
| 2014 | ret = drm_sysfs_connector_add(connector) == 0 ? true : false; | 2025 | ret = drm_sysfs_connector_add(connector) == 0 ? true : false; |
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index da4ab4dc1630..2fbe13a0de81 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
| @@ -1718,6 +1718,7 @@ intel_tv_init(struct drm_device *dev) | |||
| 1718 | if (!intel_output) { | 1718 | if (!intel_output) { |
| 1719 | return; | 1719 | return; |
| 1720 | } | 1720 | } |
| 1721 | |||
| 1721 | connector = &intel_output->base; | 1722 | connector = &intel_output->base; |
| 1722 | 1723 | ||
| 1723 | drm_connector_init(dev, connector, &intel_tv_connector_funcs, | 1724 | drm_connector_init(dev, connector, &intel_tv_connector_funcs, |
| @@ -1729,6 +1730,7 @@ intel_tv_init(struct drm_device *dev) | |||
| 1729 | drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc); | 1730 | drm_mode_connector_attach_encoder(&intel_output->base, &intel_output->enc); |
| 1730 | tv_priv = (struct intel_tv_priv *)(intel_output + 1); | 1731 | tv_priv = (struct intel_tv_priv *)(intel_output + 1); |
| 1731 | intel_output->type = INTEL_OUTPUT_TVOUT; | 1732 | intel_output->type = INTEL_OUTPUT_TVOUT; |
| 1733 | intel_output->clone_mask = (1 << INTEL_TV_CLONE_BIT); | ||
| 1732 | intel_output->enc.possible_crtcs = ((1 << 0) | (1 << 1)); | 1734 | intel_output->enc.possible_crtcs = ((1 << 0) | (1 << 1)); |
| 1733 | intel_output->enc.possible_clones = (1 << INTEL_OUTPUT_TVOUT); | 1735 | intel_output->enc.possible_clones = (1 << INTEL_OUTPUT_TVOUT); |
| 1734 | intel_output->dev_priv = tv_priv; | 1736 | intel_output->dev_priv = tv_priv; |
