Subversion Repositories Kolibri OS

Rev

Rev 4104 | Rev 5139 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4104 Rev 4560
Line 128... Line 128...
128
	}
128
	}
129
}
129
}
Line 130... Line 130...
130
 
130
 
131
static void g4x_write_infoframe(struct drm_encoder *encoder,
131
static void g4x_write_infoframe(struct drm_encoder *encoder,
132
				enum hdmi_infoframe_type type,
132
				enum hdmi_infoframe_type type,
133
				const uint8_t *frame, ssize_t len)
133
				const void *frame, ssize_t len)
134
{
134
{
135
	uint32_t *data = (uint32_t *)frame;
135
	const uint32_t *data = frame;
136
	struct drm_device *dev = encoder->dev;
136
	struct drm_device *dev = encoder->dev;
137
	struct drm_i915_private *dev_priv = dev->dev_private;
137
	struct drm_i915_private *dev_priv = dev->dev_private;
138
	u32 val = I915_READ(VIDEO_DIP_CTL);
138
	u32 val = I915_READ(VIDEO_DIP_CTL);
Line 165... Line 165...
165
	POSTING_READ(VIDEO_DIP_CTL);
165
	POSTING_READ(VIDEO_DIP_CTL);
166
}
166
}
Line 167... Line 167...
167
 
167
 
168
static void ibx_write_infoframe(struct drm_encoder *encoder,
168
static void ibx_write_infoframe(struct drm_encoder *encoder,
169
				enum hdmi_infoframe_type type,
169
				enum hdmi_infoframe_type type,
170
				const uint8_t *frame, ssize_t len)
170
				const void *frame, ssize_t len)
171
{
171
{
172
	uint32_t *data = (uint32_t *)frame;
172
	const uint32_t *data = frame;
173
	struct drm_device *dev = encoder->dev;
173
	struct drm_device *dev = encoder->dev;
174
	struct drm_i915_private *dev_priv = dev->dev_private;
174
	struct drm_i915_private *dev_priv = dev->dev_private;
175
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
175
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
176
	int i, reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
176
	int i, reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
Line 203... Line 203...
203
	POSTING_READ(reg);
203
	POSTING_READ(reg);
204
}
204
}
Line 205... Line 205...
205
 
205
 
206
static void cpt_write_infoframe(struct drm_encoder *encoder,
206
static void cpt_write_infoframe(struct drm_encoder *encoder,
207
				enum hdmi_infoframe_type type,
207
				enum hdmi_infoframe_type type,
208
				const uint8_t *frame, ssize_t len)
208
				const void *frame, ssize_t len)
209
{
209
{
210
	uint32_t *data = (uint32_t *)frame;
210
	const uint32_t *data = frame;
211
	struct drm_device *dev = encoder->dev;
211
	struct drm_device *dev = encoder->dev;
212
	struct drm_i915_private *dev_priv = dev->dev_private;
212
	struct drm_i915_private *dev_priv = dev->dev_private;
213
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
213
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
214
	int i, reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
214
	int i, reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
Line 244... Line 244...
244
	POSTING_READ(reg);
244
	POSTING_READ(reg);
245
}
245
}
Line 246... Line 246...
246
 
246
 
247
static void vlv_write_infoframe(struct drm_encoder *encoder,
247
static void vlv_write_infoframe(struct drm_encoder *encoder,
248
				enum hdmi_infoframe_type type,
248
				enum hdmi_infoframe_type type,
249
				const uint8_t *frame, ssize_t len)
249
				const void *frame, ssize_t len)
250
{
250
{
251
	uint32_t *data = (uint32_t *)frame;
251
	const uint32_t *data = frame;
252
	struct drm_device *dev = encoder->dev;
252
	struct drm_device *dev = encoder->dev;
253
	struct drm_i915_private *dev_priv = dev->dev_private;
253
	struct drm_i915_private *dev_priv = dev->dev_private;
254
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
254
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
255
	int i, reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
255
	int i, reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
Line 282... Line 282...
282
	POSTING_READ(reg);
282
	POSTING_READ(reg);
283
}
283
}
Line 284... Line 284...
284
 
284
 
285
static void hsw_write_infoframe(struct drm_encoder *encoder,
285
static void hsw_write_infoframe(struct drm_encoder *encoder,
286
				enum hdmi_infoframe_type type,
286
				enum hdmi_infoframe_type type,
287
				const uint8_t *frame, ssize_t len)
287
				const void *frame, ssize_t len)
288
{
288
{
289
	uint32_t *data = (uint32_t *)frame;
289
	const uint32_t *data = frame;
290
	struct drm_device *dev = encoder->dev;
290
	struct drm_device *dev = encoder->dev;
291
	struct drm_i915_private *dev_priv = dev->dev_private;
291
	struct drm_i915_private *dev_priv = dev->dev_private;
292
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
292
	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->crtc);
293
	u32 ctl_reg = HSW_TVIDEO_DIP_CTL(intel_crtc->config.cpu_transcoder);
293
	u32 ctl_reg = HSW_TVIDEO_DIP_CTL(intel_crtc->config.cpu_transcoder);
Line 711... Line 711...
711
				  struct intel_crtc_config *pipe_config)
711
				  struct intel_crtc_config *pipe_config)
712
{
712
{
713
	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
713
	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
714
	struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
714
	struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
715
	u32 tmp, flags = 0;
715
	u32 tmp, flags = 0;
-
 
716
	int dotclock;
Line 716... Line 717...
716
 
717
 
Line 717... Line 718...
717
	tmp = I915_READ(intel_hdmi->hdmi_reg);
718
	tmp = I915_READ(intel_hdmi->hdmi_reg);
718
 
719
 
Line 725... Line 726...
725
		flags |= DRM_MODE_FLAG_PVSYNC;
726
		flags |= DRM_MODE_FLAG_PVSYNC;
726
	else
727
	else
727
		flags |= DRM_MODE_FLAG_NVSYNC;
728
		flags |= DRM_MODE_FLAG_NVSYNC;
Line 728... Line 729...
728
 
729
 
-
 
730
	pipe_config->adjusted_mode.flags |= flags;
-
 
731
 
-
 
732
	if ((tmp & SDVO_COLOR_FORMAT_MASK) == HDMI_COLOR_FORMAT_12bpc)
-
 
733
		dotclock = pipe_config->port_clock * 2 / 3;
-
 
734
	else
-
 
735
		dotclock = pipe_config->port_clock;
-
 
736
 
-
 
737
	if (HAS_PCH_SPLIT(dev_priv->dev))
-
 
738
		ironlake_check_encoder_dotclock(pipe_config, dotclock);
-
 
739
 
729
	pipe_config->adjusted_mode.flags |= flags;
740
	pipe_config->adjusted_mode.crtc_clock = dotclock;
Line 730... Line 741...
730
}
741
}
731
 
742
 
732
static void intel_enable_hdmi(struct intel_encoder *encoder)
743
static void intel_enable_hdmi(struct intel_encoder *encoder)
Line 834... Line 845...
834
{
845
{
835
	struct drm_device *dev = intel_hdmi_to_dev(hdmi);
846
	struct drm_device *dev = intel_hdmi_to_dev(hdmi);
Line 836... Line 847...
836
 
847
 
837
	if (IS_G4X(dev))
848
	if (IS_G4X(dev))
838
		return 165000;
849
		return 165000;
839
	else if (IS_HASWELL(dev))
850
	else if (IS_HASWELL(dev) || INTEL_INFO(dev)->gen >= 8)
840
		return 300000;
851
		return 300000;
841
	else
852
	else
842
		return 225000;
853
		return 225000;
Line -... Line 854...
-
 
854
}
843
}
855
 
844
 
856
static enum drm_mode_status
845
static int intel_hdmi_mode_valid(struct drm_connector *connector,
857
intel_hdmi_mode_valid(struct drm_connector *connector,
846
				 struct drm_display_mode *mode)
858
				 struct drm_display_mode *mode)
847
{
859
{
848
	if (mode->clock > hdmi_portclock_limit(intel_attached_hdmi(connector)))
860
	if (mode->clock > hdmi_portclock_limit(intel_attached_hdmi(connector)))
Line 860... Line 872...
860
			       struct intel_crtc_config *pipe_config)
872
			       struct intel_crtc_config *pipe_config)
861
{
873
{
862
	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
874
	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
863
	struct drm_device *dev = encoder->base.dev;
875
	struct drm_device *dev = encoder->base.dev;
864
	struct drm_display_mode *adjusted_mode = &pipe_config->adjusted_mode;
876
	struct drm_display_mode *adjusted_mode = &pipe_config->adjusted_mode;
865
	int clock_12bpc = pipe_config->requested_mode.clock * 3 / 2;
877
	int clock_12bpc = pipe_config->adjusted_mode.crtc_clock * 3 / 2;
866
	int portclock_limit = hdmi_portclock_limit(intel_hdmi);
878
	int portclock_limit = hdmi_portclock_limit(intel_hdmi);
867
	int desired_bpp;
879
	int desired_bpp;
Line 868... Line 880...
868
 
880
 
869
	if (intel_hdmi->color_range_auto) {
881
	if (intel_hdmi->color_range_auto) {
Line 902... Line 914...
902
	if (!pipe_config->bw_constrained) {
914
	if (!pipe_config->bw_constrained) {
903
		DRM_DEBUG_KMS("forcing pipe bpc to %i for HDMI\n", desired_bpp);
915
		DRM_DEBUG_KMS("forcing pipe bpc to %i for HDMI\n", desired_bpp);
904
		pipe_config->pipe_bpp = desired_bpp;
916
		pipe_config->pipe_bpp = desired_bpp;
905
	}
917
	}
Line 906... Line 918...
906
 
918
 
907
	if (adjusted_mode->clock > portclock_limit) {
919
	if (adjusted_mode->crtc_clock > portclock_limit) {
908
		DRM_DEBUG_KMS("too high HDMI clock, rejecting mode\n");
920
		DRM_DEBUG_KMS("too high HDMI clock, rejecting mode\n");
909
		return false;
921
		return false;
Line 910... Line 922...
910
	}
922
	}
Line 1061... Line 1073...
1061
		intel_crtc_restore_mode(intel_dig_port->base.base.crtc);
1073
		intel_crtc_restore_mode(intel_dig_port->base.base.crtc);
Line 1062... Line 1074...
1062
 
1074
 
1063
	return 0;
1075
	return 0;
Line 1064... Line 1076...
1064
}
1076
}
1065
 
1077
 
1066
static void intel_hdmi_pre_enable(struct intel_encoder *encoder)
1078
static void vlv_hdmi_pre_enable(struct intel_encoder *encoder)
1067
{
1079
{
1068
	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
1080
	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
1069
	struct drm_device *dev = encoder->base.dev;
1081
	struct drm_device *dev = encoder->base.dev;
1070
	struct drm_i915_private *dev_priv = dev->dev_private;
1082
	struct drm_i915_private *dev_priv = dev->dev_private;
1071
	struct intel_crtc *intel_crtc =
1083
	struct intel_crtc *intel_crtc =
1072
		to_intel_crtc(encoder->base.crtc);
1084
		to_intel_crtc(encoder->base.crtc);
1073
	int port = vlv_dport_to_channel(dport);
1085
	enum dpio_channel port = vlv_dport_to_channel(dport);
Line 1074... Line 1086...
1074
	int pipe = intel_crtc->pipe;
1086
	int pipe = intel_crtc->pipe;
1075
	u32 val;
1087
	u32 val;
Line 1076... Line 1088...
1076
 
1088
 
1077
	if (!IS_VALLEYVIEW(dev))
1089
	if (!IS_VALLEYVIEW(dev))
1078
		return;
1090
		return;
1079
 
1091
 
1080
	/* Enable clock channels for this port */
1092
	/* Enable clock channels for this port */
1081
	mutex_lock(&dev_priv->dpio_lock);
1093
	mutex_lock(&dev_priv->dpio_lock);
1082
	val = vlv_dpio_read(dev_priv, DPIO_DATA_LANE_A(port));
1094
	val = vlv_dpio_read(dev_priv, pipe, VLV_PCS01_DW8(port));
1083
	val = 0;
1095
	val = 0;
1084
	if (pipe)
1096
	if (pipe)
1085
		val |= (1<<21);
1097
		val |= (1<<21);
Line 1086... Line 1098...
1086
	else
1098
	else
1087
		val &= ~(1<<21);
1099
		val &= ~(1<<21);
1088
	val |= 0x001000c4;
1100
	val |= 0x001000c4;
1089
	vlv_dpio_write(dev_priv, DPIO_DATA_CHANNEL(port), val);
-
 
1090
 
1101
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW8(port), val);
1091
	/* HDMI 1.0V-2dB */
-
 
1092
	vlv_dpio_write(dev_priv, DPIO_TX_OCALINIT(port), 0);
1102
 
1093
	vlv_dpio_write(dev_priv, DPIO_TX_SWING_CTL4(port),
-
 
1094
			 0x2b245f5f);
1103
	/* HDMI 1.0V-2dB */
1095
	vlv_dpio_write(dev_priv, DPIO_TX_SWING_CTL2(port),
-
 
1096
			 0x5578b83a);
1104
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW5(port), 0);
1097
	vlv_dpio_write(dev_priv, DPIO_TX_SWING_CTL3(port),
1105
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW4(port), 0x2b245f5f);
1098
			 0x0c782040);
-
 
1099
	vlv_dpio_write(dev_priv, DPIO_TX3_SWING_CTL4(port),
1106
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW2(port), 0x5578b83a);
1100
			 0x2b247878);
-
 
Line 1101... Line 1107...
1101
	vlv_dpio_write(dev_priv, DPIO_PCS_STAGGER0(port), 0x00030000);
1107
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW3(port), 0x0c782040);
1102
	vlv_dpio_write(dev_priv, DPIO_PCS_CTL_OVER1(port),
1108
	vlv_dpio_write(dev_priv, pipe, VLV_TX3_DW4(port), 0x2b247878);
1103
			 0x00002000);
-
 
1104
	vlv_dpio_write(dev_priv, DPIO_TX_OCALINIT(port),
1109
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW11(port), 0x00030000);
1105
			 DPIO_TX_OCALINIT_EN);
-
 
1106
 
1110
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW9(port), 0x00002000);
Line 1107... Line 1111...
1107
	/* Program lane clock */
1111
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW5(port), DPIO_TX_OCALINIT_EN);
Line 1108... Line 1112...
1108
	vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF0(port),
1112
 
1109
			 0x00760018);
1113
	/* Program lane clock */
Line 1110... Line 1114...
1110
	vlv_dpio_write(dev_priv, DPIO_PCS_CLOCKBUF8(port),
1114
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW14(port), 0x00760018);
1111
			 0x00400888);
1115
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW23(port), 0x00400888);
1112
	mutex_unlock(&dev_priv->dpio_lock);
1116
	mutex_unlock(&dev_priv->dpio_lock);
1113
 
1117
 
1114
	intel_enable_hdmi(encoder);
1118
	intel_enable_hdmi(encoder);
-
 
1119
 
-
 
1120
	vlv_wait_port_ready(dev_priv, dport);
1115
 
1121
}
-
 
1122
 
Line 1116... Line 1123...
1116
	vlv_wait_port_ready(dev_priv, port);
1123
static void vlv_hdmi_pre_pll_enable(struct intel_encoder *encoder)
1117
}
1124
{
Line 1118... Line 1125...
1118
 
1125
	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
1119
static void intel_hdmi_pre_pll_enable(struct intel_encoder *encoder)
1126
	struct drm_device *dev = encoder->base.dev;
1120
{
1127
	struct drm_i915_private *dev_priv = dev->dev_private;
1121
	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
1128
	struct intel_crtc *intel_crtc =
1122
	struct drm_device *dev = encoder->base.dev;
1129
		to_intel_crtc(encoder->base.crtc);
1123
	struct drm_i915_private *dev_priv = dev->dev_private;
1130
	enum dpio_channel port = vlv_dport_to_channel(dport);
1124
	int port = vlv_dport_to_channel(dport);
1131
	int pipe = intel_crtc->pipe;
1125
 
1132
 
1126
	if (!IS_VALLEYVIEW(dev))
1133
	if (!IS_VALLEYVIEW(dev))
1127
		return;
1134
		return;
Line 1128... Line 1135...
1128
 
1135
 
1129
	/* Program Tx lane resets to default */
1136
	/* Program Tx lane resets to default */
1130
	mutex_lock(&dev_priv->dpio_lock);
1137
	mutex_lock(&dev_priv->dpio_lock);
1131
	vlv_dpio_write(dev_priv, DPIO_PCS_TX(port),
1138
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(port),
1132
			 DPIO_PCS_TX_LANE2_RESET |
1139
			 DPIO_PCS_TX_LANE2_RESET |
1133
			 DPIO_PCS_TX_LANE1_RESET);
1140
			 DPIO_PCS_TX_LANE1_RESET);
1134
	vlv_dpio_write(dev_priv, DPIO_PCS_CLK(port),
-
 
1135
			 DPIO_PCS_CLK_CRI_RXEB_EIOS_EN |
1141
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW1(port),
1136
			 DPIO_PCS_CLK_CRI_RXDIGFILTSG_EN |
-
 
1137
			 (1<
1142
			 DPIO_PCS_CLK_CRI_RXEB_EIOS_EN |
1138
			 DPIO_PCS_CLK_SOFT_RESET);
1143
			 DPIO_PCS_CLK_CRI_RXDIGFILTSG_EN |
Line 1139... Line 1144...
1139
 
1144
			 (1<
1140
	/* Fix up inter-pair skew failure */
1145
			 DPIO_PCS_CLK_SOFT_RESET);
1141
	vlv_dpio_write(dev_priv, DPIO_PCS_STAGGER1(port), 0x00750f00);
1146
 
1142
	vlv_dpio_write(dev_priv, DPIO_TX_CTL(port), 0x00001500);
1147
	/* Fix up inter-pair skew failure */
-
 
1148
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW12(port), 0x00750f00);
-
 
1149
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW11(port), 0x00001500);
1143
	vlv_dpio_write(dev_priv, DPIO_TX_LANE(port), 0x40400000);
1150
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW14(port), 0x40400000);
-
 
1151
 
Line 1144... Line 1152...
1144
 
1152
	vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW9(port), 0x00002000);
1145
	vlv_dpio_write(dev_priv, DPIO_PCS_CTL_OVER1(port),
1153
	vlv_dpio_write(dev_priv, pipe, VLV_TX_DW5(port), DPIO_TX_OCALINIT_EN);
1146
			 0x00002000);
1154
	mutex_unlock(&dev_priv->dpio_lock);
1147
	vlv_dpio_write(dev_priv, DPIO_TX_OCALINIT(port),
1155
}
1148
			 DPIO_TX_OCALINIT_EN);
1156
 
1149
	mutex_unlock(&dev_priv->dpio_lock);
1157
static void vlv_hdmi_post_disable(struct intel_encoder *encoder)
Line 1150... Line 1158...
1150
}
1158
{
1151
 
1159
	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
1152
static void intel_hdmi_post_disable(struct intel_encoder *encoder)
-
 
1153
{
1160
	struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
1154
	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
1161
	struct intel_crtc *intel_crtc =
1155
	struct drm_i915_private *dev_priv = encoder->base.dev->dev_private;
1162
		to_intel_crtc(encoder->base.crtc);
Line 1156... Line 1163...
1156
	int port = vlv_dport_to_channel(dport);
1163
	enum dpio_channel port = vlv_dport_to_channel(dport);
Line 1209... Line 1216...
1209
			   DRM_MODE_CONNECTOR_HDMIA);
1216
			   DRM_MODE_CONNECTOR_HDMIA);
1210
	drm_connector_helper_add(connector, &intel_hdmi_connector_helper_funcs);
1217
	drm_connector_helper_add(connector, &intel_hdmi_connector_helper_funcs);
Line 1211... Line 1218...
1211
 
1218
 
1212
	connector->interlace_allowed = 1;
1219
	connector->interlace_allowed = 1;
-
 
1220
	connector->doublescan_allowed = 0;
Line 1213... Line 1221...
1213
	connector->doublescan_allowed = 0;
1221
	connector->stereo_allowed = 1;
1214
 
1222
 
1215
	switch (port) {
1223
	switch (port) {
1216
	case PORT_B:
1224
	case PORT_B:
Line 1273... Line 1281...
1273
{
1281
{
1274
	struct intel_digital_port *intel_dig_port;
1282
	struct intel_digital_port *intel_dig_port;
1275
	struct intel_encoder *intel_encoder;
1283
	struct intel_encoder *intel_encoder;
1276
	struct intel_connector *intel_connector;
1284
	struct intel_connector *intel_connector;
Line 1277... Line 1285...
1277
 
1285
 
1278
	intel_dig_port = kzalloc(sizeof(struct intel_digital_port), GFP_KERNEL);
1286
	intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL);
1279
	if (!intel_dig_port)
1287
	if (!intel_dig_port)
Line 1280... Line 1288...
1280
		return;
1288
		return;
1281
 
1289
 
1282
	intel_connector = kzalloc(sizeof(struct intel_connector), GFP_KERNEL);
1290
	intel_connector = kzalloc(sizeof(*intel_connector), GFP_KERNEL);
1283
	if (!intel_connector) {
1291
	if (!intel_connector) {
1284
		kfree(intel_dig_port);
1292
		kfree(intel_dig_port);
Line 1294... Line 1302...
1294
	intel_encoder->mode_set = intel_hdmi_mode_set;
1302
	intel_encoder->mode_set = intel_hdmi_mode_set;
1295
	intel_encoder->disable = intel_disable_hdmi;
1303
	intel_encoder->disable = intel_disable_hdmi;
1296
	intel_encoder->get_hw_state = intel_hdmi_get_hw_state;
1304
	intel_encoder->get_hw_state = intel_hdmi_get_hw_state;
1297
	intel_encoder->get_config = intel_hdmi_get_config;
1305
	intel_encoder->get_config = intel_hdmi_get_config;
1298
	if (IS_VALLEYVIEW(dev)) {
1306
	if (IS_VALLEYVIEW(dev)) {
1299
		intel_encoder->pre_pll_enable = intel_hdmi_pre_pll_enable;
1307
		intel_encoder->pre_pll_enable = vlv_hdmi_pre_pll_enable;
1300
		intel_encoder->pre_enable = intel_hdmi_pre_enable;
1308
		intel_encoder->pre_enable = vlv_hdmi_pre_enable;
1301
		intel_encoder->enable = vlv_enable_hdmi;
1309
		intel_encoder->enable = vlv_enable_hdmi;
1302
		intel_encoder->post_disable = intel_hdmi_post_disable;
1310
		intel_encoder->post_disable = vlv_hdmi_post_disable;
1303
	} else {
1311
	} else {
1304
		intel_encoder->enable = intel_enable_hdmi;
1312
		intel_encoder->enable = intel_enable_hdmi;
1305
	}
1313
	}
Line 1306... Line 1314...
1306
 
1314