diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 18 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dvo.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_hdmi.c | 10 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_sdvo.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 2 |
9 files changed, 35 insertions, 61 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index 7ed4a41c3965..e1d02be368a5 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
@@ -658,9 +658,7 @@ void intel_crt_init(struct drm_device *dev) | |||
658 | intel_connector_attach_encoder(intel_connector, &crt->base); | 658 | intel_connector_attach_encoder(intel_connector, &crt->base); |
659 | 659 | ||
660 | crt->base.type = INTEL_OUTPUT_ANALOG; | 660 | crt->base.type = INTEL_OUTPUT_ANALOG; |
661 | crt->base.clone_mask = (1 << INTEL_SDVO_NON_TV_CLONE_BIT | | 661 | crt->base.cloneable = true; |
662 | 1 << INTEL_ANALOG_CLONE_BIT | | ||
663 | 1 << INTEL_SDVO_LVDS_CLONE_BIT); | ||
664 | if (IS_HASWELL(dev)) | 662 | if (IS_HASWELL(dev)) |
665 | crt->base.crtc_mask = (1 << 0); | 663 | crt->base.crtc_mask = (1 << 0); |
666 | else | 664 | else |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index e9e476eca89f..5c0a72606225 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -6707,15 +6707,23 @@ int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, | |||
6707 | return 0; | 6707 | return 0; |
6708 | } | 6708 | } |
6709 | 6709 | ||
6710 | static int intel_encoder_clones(struct drm_device *dev, int type_mask) | 6710 | static int intel_encoder_clones(struct intel_encoder *encoder) |
6711 | { | 6711 | { |
6712 | struct intel_encoder *encoder; | 6712 | struct drm_device *dev = encoder->base.dev; |
6713 | struct intel_encoder *source_encoder; | ||
6713 | int index_mask = 0; | 6714 | int index_mask = 0; |
6714 | int entry = 0; | 6715 | int entry = 0; |
6715 | 6716 | ||
6716 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, base.head) { | 6717 | list_for_each_entry(source_encoder, |
6717 | if (type_mask & encoder->clone_mask) | 6718 | &dev->mode_config.encoder_list, base.head) { |
6719 | |||
6720 | if (encoder == source_encoder) | ||
6718 | index_mask |= (1 << entry); | 6721 | index_mask |= (1 << entry); |
6722 | |||
6723 | /* Intel hw has only one MUX where enocoders could be cloned. */ | ||
6724 | if (encoder->cloneable && source_encoder->cloneable) | ||
6725 | index_mask |= (1 << entry); | ||
6726 | |||
6719 | entry++; | 6727 | entry++; |
6720 | } | 6728 | } |
6721 | 6729 | ||
@@ -6874,7 +6882,7 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
6874 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, base.head) { | 6882 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, base.head) { |
6875 | encoder->base.possible_crtcs = encoder->crtc_mask; | 6883 | encoder->base.possible_crtcs = encoder->crtc_mask; |
6876 | encoder->base.possible_clones = | 6884 | encoder->base.possible_clones = |
6877 | intel_encoder_clones(dev, encoder->clone_mask); | 6885 | intel_encoder_clones(encoder); |
6878 | } | 6886 | } |
6879 | 6887 | ||
6880 | /* disable all the possible outputs/crtcs before entering KMS mode */ | 6888 | /* disable all the possible outputs/crtcs before entering KMS mode */ |
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 9f415643c8e2..d1489ab56fc9 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -2451,18 +2451,10 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
2451 | 2451 | ||
2452 | connector->polled = DRM_CONNECTOR_POLL_HPD; | 2452 | connector->polled = DRM_CONNECTOR_POLL_HPD; |
2453 | 2453 | ||
2454 | if (output_reg == DP_B || output_reg == PCH_DP_B) | 2454 | intel_encoder->cloneable = false; |
2455 | intel_encoder->clone_mask = (1 << INTEL_DP_B_CLONE_BIT); | ||
2456 | else if (output_reg == DP_C || output_reg == PCH_DP_C) | ||
2457 | intel_encoder->clone_mask = (1 << INTEL_DP_C_CLONE_BIT); | ||
2458 | else if (output_reg == DP_D || output_reg == PCH_DP_D) | ||
2459 | intel_encoder->clone_mask = (1 << INTEL_DP_D_CLONE_BIT); | ||
2460 | 2455 | ||
2461 | if (is_edp(intel_dp)) { | 2456 | INIT_DELAYED_WORK(&intel_dp->panel_vdd_work, |
2462 | intel_encoder->clone_mask = (1 << INTEL_EDP_CLONE_BIT); | 2457 | ironlake_panel_vdd_work); |
2463 | INIT_DELAYED_WORK(&intel_dp->panel_vdd_work, | ||
2464 | ironlake_panel_vdd_work); | ||
2465 | } | ||
2466 | 2458 | ||
2467 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); | 2459 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); |
2468 | 2460 | ||
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 35488aae5d09..76ba554f6592 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -90,25 +90,6 @@ | |||
90 | #define INTEL_OUTPUT_DISPLAYPORT 7 | 90 | #define INTEL_OUTPUT_DISPLAYPORT 7 |
91 | #define INTEL_OUTPUT_EDP 8 | 91 | #define INTEL_OUTPUT_EDP 8 |
92 | 92 | ||
93 | /* Intel Pipe Clone Bit */ | ||
94 | #define INTEL_HDMIB_CLONE_BIT 1 | ||
95 | #define INTEL_HDMIC_CLONE_BIT 2 | ||
96 | #define INTEL_HDMID_CLONE_BIT 3 | ||
97 | #define INTEL_HDMIE_CLONE_BIT 4 | ||
98 | #define INTEL_HDMIF_CLONE_BIT 5 | ||
99 | #define INTEL_SDVO_NON_TV_CLONE_BIT 6 | ||
100 | #define INTEL_SDVO_TV_CLONE_BIT 7 | ||
101 | #define INTEL_SDVO_LVDS_CLONE_BIT 8 | ||
102 | #define INTEL_ANALOG_CLONE_BIT 9 | ||
103 | #define INTEL_TV_CLONE_BIT 10 | ||
104 | #define INTEL_DP_B_CLONE_BIT 11 | ||
105 | #define INTEL_DP_C_CLONE_BIT 12 | ||
106 | #define INTEL_DP_D_CLONE_BIT 13 | ||
107 | #define INTEL_LVDS_CLONE_BIT 14 | ||
108 | #define INTEL_DVO_TMDS_CLONE_BIT 15 | ||
109 | #define INTEL_DVO_LVDS_CLONE_BIT 16 | ||
110 | #define INTEL_EDP_CLONE_BIT 17 | ||
111 | |||
112 | #define INTEL_DVO_CHIP_NONE 0 | 93 | #define INTEL_DVO_CHIP_NONE 0 |
113 | #define INTEL_DVO_CHIP_LVDS 1 | 94 | #define INTEL_DVO_CHIP_LVDS 1 |
114 | #define INTEL_DVO_CHIP_TMDS 2 | 95 | #define INTEL_DVO_CHIP_TMDS 2 |
@@ -153,9 +134,13 @@ struct intel_encoder { | |||
153 | struct drm_encoder base; | 134 | struct drm_encoder base; |
154 | int type; | 135 | int type; |
155 | bool needs_tv_clock; | 136 | bool needs_tv_clock; |
137 | /* | ||
138 | * Intel hw has only one MUX where encoders could be clone, hence a | ||
139 | * simple flag is enough to compute the possible_clones mask. | ||
140 | */ | ||
141 | bool cloneable; | ||
156 | void (*hot_plug)(struct intel_encoder *); | 142 | void (*hot_plug)(struct intel_encoder *); |
157 | int crtc_mask; | 143 | int crtc_mask; |
158 | int clone_mask; | ||
159 | }; | 144 | }; |
160 | 145 | ||
161 | struct intel_connector { | 146 | struct intel_connector { |
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c index 36c542e5036b..556cf6bf2a55 100644 --- a/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c | |||
@@ -396,17 +396,14 @@ void intel_dvo_init(struct drm_device *dev) | |||
396 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1); | 396 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1); |
397 | switch (dvo->type) { | 397 | switch (dvo->type) { |
398 | case INTEL_DVO_CHIP_TMDS: | 398 | case INTEL_DVO_CHIP_TMDS: |
399 | intel_encoder->clone_mask = | 399 | intel_encoder->cloneable = true; |
400 | (1 << INTEL_DVO_TMDS_CLONE_BIT) | | ||
401 | (1 << INTEL_ANALOG_CLONE_BIT); | ||
402 | drm_connector_init(dev, connector, | 400 | drm_connector_init(dev, connector, |
403 | &intel_dvo_connector_funcs, | 401 | &intel_dvo_connector_funcs, |
404 | DRM_MODE_CONNECTOR_DVII); | 402 | DRM_MODE_CONNECTOR_DVII); |
405 | encoder_type = DRM_MODE_ENCODER_TMDS; | 403 | encoder_type = DRM_MODE_ENCODER_TMDS; |
406 | break; | 404 | break; |
407 | case INTEL_DVO_CHIP_LVDS: | 405 | case INTEL_DVO_CHIP_LVDS: |
408 | intel_encoder->clone_mask = | 406 | intel_encoder->cloneable = false; |
409 | (1 << INTEL_DVO_LVDS_CLONE_BIT); | ||
410 | drm_connector_init(dev, connector, | 407 | drm_connector_init(dev, connector, |
411 | &intel_dvo_connector_funcs, | 408 | &intel_dvo_connector_funcs, |
412 | DRM_MODE_CONNECTOR_LVDS); | 409 | DRM_MODE_CONNECTOR_LVDS); |
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index 98f602427eb8..593b8fe2e00a 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
@@ -923,42 +923,36 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
923 | connector->doublescan_allowed = 0; | 923 | connector->doublescan_allowed = 0; |
924 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); | 924 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); |
925 | 925 | ||
926 | intel_encoder->cloneable = false; | ||
927 | |||
926 | /* Set up the DDC bus. */ | 928 | /* Set up the DDC bus. */ |
927 | if (sdvox_reg == SDVOB) { | 929 | if (sdvox_reg == SDVOB) { |
928 | intel_encoder->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); | ||
929 | intel_hdmi->ddc_bus = GMBUS_PORT_DPB; | 930 | intel_hdmi->ddc_bus = GMBUS_PORT_DPB; |
930 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; | 931 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; |
931 | } else if (sdvox_reg == SDVOC) { | 932 | } else if (sdvox_reg == SDVOC) { |
932 | intel_encoder->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); | ||
933 | intel_hdmi->ddc_bus = GMBUS_PORT_DPC; | 933 | intel_hdmi->ddc_bus = GMBUS_PORT_DPC; |
934 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; | 934 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; |
935 | } else if (sdvox_reg == HDMIB) { | 935 | } else if (sdvox_reg == HDMIB) { |
936 | intel_encoder->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); | ||
937 | intel_hdmi->ddc_bus = GMBUS_PORT_DPB; | 936 | intel_hdmi->ddc_bus = GMBUS_PORT_DPB; |
938 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; | 937 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; |
939 | } else if (sdvox_reg == HDMIC) { | 938 | } else if (sdvox_reg == HDMIC) { |
940 | intel_encoder->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT); | ||
941 | intel_hdmi->ddc_bus = GMBUS_PORT_DPC; | 939 | intel_hdmi->ddc_bus = GMBUS_PORT_DPC; |
942 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; | 940 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; |
943 | } else if (sdvox_reg == HDMID) { | 941 | } else if (sdvox_reg == HDMID) { |
944 | intel_encoder->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT); | ||
945 | intel_hdmi->ddc_bus = GMBUS_PORT_DPD; | 942 | intel_hdmi->ddc_bus = GMBUS_PORT_DPD; |
946 | dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; | 943 | dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; |
947 | } else if (sdvox_reg == DDI_BUF_CTL(PORT_B)) { | 944 | } else if (sdvox_reg == DDI_BUF_CTL(PORT_B)) { |
948 | DRM_DEBUG_DRIVER("LPT: detected output on DDI B\n"); | 945 | DRM_DEBUG_DRIVER("LPT: detected output on DDI B\n"); |
949 | intel_encoder->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); | ||
950 | intel_hdmi->ddc_bus = GMBUS_PORT_DPB; | 946 | intel_hdmi->ddc_bus = GMBUS_PORT_DPB; |
951 | intel_hdmi->ddi_port = PORT_B; | 947 | intel_hdmi->ddi_port = PORT_B; |
952 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; | 948 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; |
953 | } else if (sdvox_reg == DDI_BUF_CTL(PORT_C)) { | 949 | } else if (sdvox_reg == DDI_BUF_CTL(PORT_C)) { |
954 | DRM_DEBUG_DRIVER("LPT: detected output on DDI C\n"); | 950 | DRM_DEBUG_DRIVER("LPT: detected output on DDI C\n"); |
955 | intel_encoder->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); | ||
956 | intel_hdmi->ddc_bus = GMBUS_PORT_DPC; | 951 | intel_hdmi->ddc_bus = GMBUS_PORT_DPC; |
957 | intel_hdmi->ddi_port = PORT_C; | 952 | intel_hdmi->ddi_port = PORT_C; |
958 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; | 953 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; |
959 | } else if (sdvox_reg == DDI_BUF_CTL(PORT_D)) { | 954 | } else if (sdvox_reg == DDI_BUF_CTL(PORT_D)) { |
960 | DRM_DEBUG_DRIVER("LPT: detected output on DDI D\n"); | 955 | DRM_DEBUG_DRIVER("LPT: detected output on DDI D\n"); |
961 | intel_encoder->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); | ||
962 | intel_hdmi->ddc_bus = GMBUS_PORT_DPD; | 956 | intel_hdmi->ddc_bus = GMBUS_PORT_DPD; |
963 | intel_hdmi->ddi_port = PORT_D; | 957 | intel_hdmi->ddi_port = PORT_D; |
964 | dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; | 958 | dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; |
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index e05c0d3e3440..d789fdad5d37 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -967,7 +967,7 @@ bool intel_lvds_init(struct drm_device *dev) | |||
967 | intel_connector_attach_encoder(intel_connector, intel_encoder); | 967 | intel_connector_attach_encoder(intel_connector, intel_encoder); |
968 | intel_encoder->type = INTEL_OUTPUT_LVDS; | 968 | intel_encoder->type = INTEL_OUTPUT_LVDS; |
969 | 969 | ||
970 | intel_encoder->clone_mask = (1 << INTEL_LVDS_CLONE_BIT); | 970 | intel_encoder->cloneable = false; |
971 | if (HAS_PCH_SPLIT(dev)) | 971 | if (HAS_PCH_SPLIT(dev)) |
972 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); | 972 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2); |
973 | else if (IS_GEN4(dev)) | 973 | else if (IS_GEN4(dev)) |
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 26a6a4d0d078..d881602a9155 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
@@ -2078,8 +2078,7 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device) | |||
2078 | connector->connector_type = DRM_MODE_CONNECTOR_HDMIA; | 2078 | connector->connector_type = DRM_MODE_CONNECTOR_HDMIA; |
2079 | intel_sdvo->is_hdmi = true; | 2079 | intel_sdvo->is_hdmi = true; |
2080 | } | 2080 | } |
2081 | intel_sdvo->base.clone_mask = ((1 << INTEL_SDVO_NON_TV_CLONE_BIT) | | 2081 | intel_sdvo->base.cloneable = true; |
2082 | (1 << INTEL_ANALOG_CLONE_BIT)); | ||
2083 | 2082 | ||
2084 | intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo); | 2083 | intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo); |
2085 | if (intel_sdvo->is_hdmi) | 2084 | if (intel_sdvo->is_hdmi) |
@@ -2110,7 +2109,7 @@ intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, int type) | |||
2110 | 2109 | ||
2111 | intel_sdvo->is_tv = true; | 2110 | intel_sdvo->is_tv = true; |
2112 | intel_sdvo->base.needs_tv_clock = true; | 2111 | intel_sdvo->base.needs_tv_clock = true; |
2113 | intel_sdvo->base.clone_mask = 1 << INTEL_SDVO_TV_CLONE_BIT; | 2112 | intel_sdvo->base.cloneable = false; |
2114 | 2113 | ||
2115 | intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo); | 2114 | intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo); |
2116 | 2115 | ||
@@ -2153,8 +2152,7 @@ intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, int device) | |||
2153 | intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB1; | 2152 | intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB1; |
2154 | } | 2153 | } |
2155 | 2154 | ||
2156 | intel_sdvo->base.clone_mask = ((1 << INTEL_SDVO_NON_TV_CLONE_BIT) | | 2155 | intel_sdvo->base.cloneable = true; |
2157 | (1 << INTEL_ANALOG_CLONE_BIT)); | ||
2158 | 2156 | ||
2159 | intel_sdvo_connector_init(intel_sdvo_connector, | 2157 | intel_sdvo_connector_init(intel_sdvo_connector, |
2160 | intel_sdvo); | 2158 | intel_sdvo); |
@@ -2186,8 +2184,10 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device) | |||
2186 | intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS1; | 2184 | intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS1; |
2187 | } | 2185 | } |
2188 | 2186 | ||
2189 | intel_sdvo->base.clone_mask = ((1 << INTEL_ANALOG_CLONE_BIT) | | 2187 | /* SDVO LVDS is cloneable because the SDVO encoder does the upscaling, |
2190 | (1 << INTEL_SDVO_LVDS_CLONE_BIT)); | 2188 | * as opposed to native LVDS, where we upscale with the panel-fitter |
2189 | * (and hence only the native LVDS resolution could be cloned). */ | ||
2190 | intel_sdvo->base.cloneable = true; | ||
2191 | 2191 | ||
2192 | intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo); | 2192 | intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo); |
2193 | if (!intel_sdvo_create_enhance_property(intel_sdvo, intel_sdvo_connector)) | 2193 | if (!intel_sdvo_create_enhance_property(intel_sdvo, intel_sdvo_connector)) |
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index befce6c49704..1a0bab07699e 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c | |||
@@ -1622,7 +1622,7 @@ intel_tv_init(struct drm_device *dev) | |||
1622 | intel_connector_attach_encoder(intel_connector, intel_encoder); | 1622 | intel_connector_attach_encoder(intel_connector, intel_encoder); |
1623 | intel_encoder->type = INTEL_OUTPUT_TVOUT; | 1623 | intel_encoder->type = INTEL_OUTPUT_TVOUT; |
1624 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1); | 1624 | intel_encoder->crtc_mask = (1 << 0) | (1 << 1); |
1625 | intel_encoder->clone_mask = (1 << INTEL_TV_CLONE_BIT); | 1625 | intel_encoder->cloneable = false; |
1626 | intel_encoder->base.possible_crtcs = ((1 << 0) | (1 << 1)); | 1626 | intel_encoder->base.possible_crtcs = ((1 << 0) | (1 << 1)); |
1627 | intel_encoder->base.possible_clones = (1 << INTEL_OUTPUT_TVOUT); | 1627 | intel_encoder->base.possible_clones = (1 << INTEL_OUTPUT_TVOUT); |
1628 | intel_tv->type = DRM_MODE_CONNECTOR_Unknown; | 1628 | intel_tv->type = DRM_MODE_CONNECTOR_Unknown; |