77
88#include <linux/string_helpers.h>
99
10+ #include <drm/drm_print.h>
11+
1012#include "g4x_dp.h"
11- #include "i915_drv.h"
1213#include "i915_reg.h"
14+ #include "i915_utils.h"
1315#include "intel_audio.h"
1416#include "intel_backlight.h"
1517#include "intel_connector.h"
2830#include "intel_hotplug.h"
2931#include "intel_pch_display.h"
3032#include "intel_pps.h"
31- #include "vlv_sideband.h"
3233
3334static const struct dpll g4x_dpll [] = {
3435 { .dot = 162000 , .p1 = 2 , .p2 = 10 , .n = 2 , .m1 = 23 , .m2 = 8 , },
@@ -60,14 +61,13 @@ static void g4x_dp_set_clock(struct intel_encoder *encoder,
6061 struct intel_crtc_state * pipe_config )
6162{
6263 struct intel_display * display = to_intel_display (encoder );
63- struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
6464 const struct dpll * divisor = NULL ;
6565 int i , count = 0 ;
6666
6767 if (display -> platform .g4x ) {
6868 divisor = g4x_dpll ;
6969 count = ARRAY_SIZE (g4x_dpll );
70- } else if (HAS_PCH_SPLIT (dev_priv )) {
70+ } else if (HAS_PCH_SPLIT (display )) {
7171 divisor = pch_dpll ;
7272 count = ARRAY_SIZE (pch_dpll );
7373 } else if (display -> platform .cherryview ) {
@@ -93,7 +93,6 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
9393 const struct intel_crtc_state * pipe_config )
9494{
9595 struct intel_display * display = to_intel_display (encoder );
96- struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
9796 struct intel_dp * intel_dp = enc_to_intel_dp (encoder );
9897 enum port port = encoder -> port ;
9998 struct intel_crtc * crtc = to_intel_crtc (pipe_config -> uapi .crtc );
@@ -141,7 +140,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
141140 intel_dp -> DP |= DP_ENHANCED_FRAMING ;
142141
143142 intel_dp -> DP |= DP_PIPE_SEL_IVB (crtc -> pipe );
144- } else if (HAS_PCH_CPT (dev_priv ) && port != PORT_A ) {
143+ } else if (HAS_PCH_CPT (display ) && port != PORT_A ) {
145144 intel_dp -> DP |= DP_LINK_TRAIN_OFF_CPT ;
146145
147146 intel_de_rmw (display , TRANS_DP_CTL (crtc -> pipe ),
@@ -183,7 +182,7 @@ static void assert_dp_port(struct intel_dp *intel_dp, bool state)
183182
184183static void assert_edp_pll (struct intel_display * display , bool state )
185184{
186- bool cur_state = intel_de_read (display , DP_A ) & DP_PLL_ENABLE ;
185+ bool cur_state = intel_de_read (display , DP_A ) & EDP_PLL_ENABLE ;
187186
188187 INTEL_DISPLAY_STATE_WARN (display , cur_state != state ,
189188 "eDP PLL state assertion failure (expected %s, current %s)\n" ,
@@ -205,12 +204,12 @@ static void ilk_edp_pll_on(struct intel_dp *intel_dp,
205204 drm_dbg_kms (display -> drm , "enabling eDP PLL for clock %d\n" ,
206205 pipe_config -> port_clock );
207206
208- intel_dp -> DP &= ~DP_PLL_FREQ_MASK ;
207+ intel_dp -> DP &= ~EDP_PLL_FREQ_MASK ;
209208
210209 if (pipe_config -> port_clock == 162000 )
211- intel_dp -> DP |= DP_PLL_FREQ_162MHZ ;
210+ intel_dp -> DP |= EDP_PLL_FREQ_162MHZ ;
212211 else
213- intel_dp -> DP |= DP_PLL_FREQ_270MHZ ;
212+ intel_dp -> DP |= EDP_PLL_FREQ_270MHZ ;
214213
215214 intel_de_write (display , DP_A , intel_dp -> DP );
216215 intel_de_posting_read (display , DP_A );
@@ -225,7 +224,7 @@ static void ilk_edp_pll_on(struct intel_dp *intel_dp,
225224 if (display -> platform .ironlake )
226225 intel_wait_for_vblank_if_active (display , !crtc -> pipe );
227226
228- intel_dp -> DP |= DP_PLL_ENABLE ;
227+ intel_dp -> DP |= EDP_PLL_ENABLE ;
229228
230229 intel_de_write (display , DP_A , intel_dp -> DP );
231230 intel_de_posting_read (display , DP_A );
@@ -243,7 +242,7 @@ static void ilk_edp_pll_off(struct intel_dp *intel_dp,
243242
244243 drm_dbg_kms (display -> drm , "disabling eDP PLL\n" );
245244
246- intel_dp -> DP &= ~DP_PLL_ENABLE ;
245+ intel_dp -> DP &= ~EDP_PLL_ENABLE ;
247246
248247 intel_de_write (display , DP_A , intel_dp -> DP );
249248 intel_de_posting_read (display , DP_A );
@@ -277,7 +276,6 @@ bool g4x_dp_port_enabled(struct intel_display *display,
277276 i915_reg_t dp_reg , enum port port ,
278277 enum pipe * pipe )
279278{
280- struct drm_i915_private * dev_priv = to_i915 (display -> drm );
281279 bool ret ;
282280 u32 val ;
283281
@@ -287,13 +285,13 @@ bool g4x_dp_port_enabled(struct intel_display *display,
287285
288286 /* asserts want to know the pipe even if the port is disabled */
289287 if (display -> platform .ivybridge && port == PORT_A )
290- * pipe = ( val & DP_PIPE_SEL_MASK_IVB ) >> DP_PIPE_SEL_SHIFT_IVB ;
291- else if (HAS_PCH_CPT (dev_priv ) && port != PORT_A )
288+ * pipe = REG_FIELD_GET ( DP_PIPE_SEL_MASK_IVB , val ) ;
289+ else if (HAS_PCH_CPT (display ) && port != PORT_A )
292290 ret &= cpt_dp_port_selected (display , port , pipe );
293291 else if (display -> platform .cherryview )
294- * pipe = ( val & DP_PIPE_SEL_MASK_CHV ) >> DP_PIPE_SEL_SHIFT_CHV ;
292+ * pipe = REG_FIELD_GET ( DP_PIPE_SEL_MASK_CHV , val ) ;
295293 else
296- * pipe = ( val & DP_PIPE_SEL_MASK ) >> DP_PIPE_SEL_SHIFT ;
294+ * pipe = REG_FIELD_GET ( DP_PIPE_SEL_MASK , val ) ;
297295
298296 return ret ;
299297}
@@ -338,7 +336,6 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
338336 struct intel_crtc_state * pipe_config )
339337{
340338 struct intel_display * display = to_intel_display (encoder );
341- struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
342339 struct intel_dp * intel_dp = enc_to_intel_dp (encoder );
343340 u32 tmp , flags = 0 ;
344341 enum port port = encoder -> port ;
@@ -353,7 +350,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
353350
354351 pipe_config -> has_audio = tmp & DP_AUDIO_OUTPUT_ENABLE && port != PORT_A ;
355352
356- if (HAS_PCH_CPT (dev_priv ) && port != PORT_A ) {
353+ if (HAS_PCH_CPT (display ) && port != PORT_A ) {
357354 u32 trans_dp = intel_de_read (display ,
358355 TRANS_DP_CTL (crtc -> pipe ));
359356
@@ -389,13 +386,12 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
389386 if (display -> platform .g4x && tmp & DP_COLOR_RANGE_16_235 )
390387 pipe_config -> limited_color_range = true;
391388
392- pipe_config -> lane_count =
393- ((tmp & DP_PORT_WIDTH_MASK ) >> DP_PORT_WIDTH_SHIFT ) + 1 ;
389+ pipe_config -> lane_count = REG_FIELD_GET (DP_PORT_WIDTH_MASK , tmp ) + 1 ;
394390
395391 g4x_dp_get_m_n (pipe_config );
396392
397393 if (port == PORT_A ) {
398- if ((intel_de_read (display , DP_A ) & DP_PLL_FREQ_MASK ) == DP_PLL_FREQ_162MHZ )
394+ if ((intel_de_read (display , DP_A ) & EDP_PLL_FREQ_MASK ) == EDP_PLL_FREQ_162MHZ )
399395 pipe_config -> port_clock = 162000 ;
400396 else
401397 pipe_config -> port_clock = 270000 ;
@@ -416,7 +412,6 @@ intel_dp_link_down(struct intel_encoder *encoder,
416412 const struct intel_crtc_state * old_crtc_state )
417413{
418414 struct intel_display * display = to_intel_display (encoder );
419- struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
420415 struct intel_dp * intel_dp = enc_to_intel_dp (encoder );
421416 struct intel_crtc * crtc = to_intel_crtc (old_crtc_state -> uapi .crtc );
422417 enum port port = encoder -> port ;
@@ -429,7 +424,7 @@ intel_dp_link_down(struct intel_encoder *encoder,
429424 drm_dbg_kms (display -> drm , "\n" );
430425
431426 if ((display -> platform .ivybridge && port == PORT_A ) ||
432- (HAS_PCH_CPT (dev_priv ) && port != PORT_A )) {
427+ (HAS_PCH_CPT (display ) && port != PORT_A )) {
433428 intel_dp -> DP &= ~DP_LINK_TRAIN_MASK_CPT ;
434429 intel_dp -> DP |= DP_LINK_TRAIN_PAT_IDLE_CPT ;
435430 } else {
@@ -448,7 +443,7 @@ intel_dp_link_down(struct intel_encoder *encoder,
448443 * to transcoder A after disabling it to allow the
449444 * matching HDMI port to be enabled on transcoder A.
450445 */
451- if (HAS_PCH_IBX (dev_priv ) && crtc -> pipe == PIPE_B && port != PORT_A ) {
446+ if (HAS_PCH_IBX (display ) && crtc -> pipe == PIPE_B && port != PORT_A ) {
452447 /*
453448 * We get CPU/PCH FIFO underruns on the other pipe when
454449 * doing the workaround. Sweep them under the rug.
@@ -581,16 +576,10 @@ static void chv_post_disable_dp(struct intel_atomic_state *state,
581576 const struct intel_crtc_state * old_crtc_state ,
582577 const struct drm_connector_state * old_conn_state )
583578{
584- struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
585-
586579 intel_dp_link_down (encoder , old_crtc_state );
587580
588- vlv_dpio_get (dev_priv );
589-
590581 /* Assert data lane reset */
591582 chv_data_lane_soft_reset (encoder , old_crtc_state , true);
592-
593- vlv_dpio_put (dev_priv );
594583}
595584
596585static void
@@ -1223,10 +1212,10 @@ static int g4x_dp_compute_config(struct intel_encoder *encoder,
12231212 struct intel_crtc_state * crtc_state ,
12241213 struct drm_connector_state * conn_state )
12251214{
1226- struct drm_i915_private * i915 = to_i915 (encoder -> base . dev );
1215+ struct intel_display * display = to_intel_display (encoder );
12271216 int ret ;
12281217
1229- if (HAS_PCH_SPLIT (i915 ) && encoder -> port != PORT_A )
1218+ if (HAS_PCH_SPLIT (display ) && encoder -> port != PORT_A )
12301219 crtc_state -> has_pch_encoder = true;
12311220
12321221 ret = intel_dp_compute_config (encoder , crtc_state , conn_state );
@@ -1279,7 +1268,6 @@ static const struct drm_encoder_funcs intel_dp_enc_funcs = {
12791268bool g4x_dp_init (struct intel_display * display ,
12801269 i915_reg_t output_reg , enum port port )
12811270{
1282- struct drm_i915_private * dev_priv = to_i915 (display -> drm );
12831271 const struct intel_bios_encoder_data * devdata ;
12841272 struct intel_digital_port * dig_port ;
12851273 struct intel_encoder * intel_encoder ;
@@ -1353,7 +1341,7 @@ bool g4x_dp_init(struct intel_display *display,
13531341 intel_encoder -> audio_disable = g4x_dp_audio_disable ;
13541342
13551343 if ((display -> platform .ivybridge && port == PORT_A ) ||
1356- (HAS_PCH_CPT (dev_priv ) && port != PORT_A ))
1344+ (HAS_PCH_CPT (display ) && port != PORT_A ))
13571345 dig_port -> dp .set_link_train = cpt_set_link_train ;
13581346 else
13591347 dig_port -> dp .set_link_train = g4x_set_link_train ;
@@ -1370,7 +1358,7 @@ bool g4x_dp_init(struct intel_display *display,
13701358 intel_encoder -> set_signal_levels = g4x_set_signal_levels ;
13711359
13721360 if (display -> platform .valleyview || display -> platform .cherryview ||
1373- (HAS_PCH_SPLIT (dev_priv ) && port != PORT_A )) {
1361+ (HAS_PCH_SPLIT (display ) && port != PORT_A )) {
13741362 dig_port -> dp .preemph_max = intel_dp_preemph_max_3 ;
13751363 dig_port -> dp .voltage_max = intel_dp_voltage_max_3 ;
13761364 } else {
0 commit comments