4343
4444#include "gem/i915_gem_object.h"
4545#include "i915_config.h"
46- #include "i915_drv.h"
4746#include "i915_scheduler_types.h"
4847#include "i915_vma.h"
4948#include "i9xx_plane_regs.h"
@@ -169,10 +168,10 @@ intel_plane_destroy_state(struct drm_plane *plane,
169168
170169bool intel_plane_needs_physical (struct intel_plane * plane )
171170{
172- struct drm_i915_private * i915 = to_i915 (plane -> base . dev );
171+ struct intel_display * display = to_intel_display (plane );
173172
174173 return plane -> id == PLANE_CURSOR &&
175- DISPLAY_INFO (i915 )-> cursor_needs_physical ;
174+ DISPLAY_INFO (display )-> cursor_needs_physical ;
176175}
177176
178177bool intel_plane_can_async_flip (struct intel_plane * plane , u64 modifier )
@@ -277,7 +276,7 @@ int intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
277276 struct intel_plane * plane ,
278277 bool * need_cdclk_calc )
279278{
280- struct drm_i915_private * dev_priv = to_i915 (plane -> base . dev );
279+ struct intel_display * display = to_intel_display (plane );
281280 const struct intel_plane_state * plane_state =
282281 intel_atomic_get_new_plane_state (state , plane );
283282 struct intel_crtc * crtc = to_intel_crtc (plane_state -> hw .crtc );
@@ -322,7 +321,7 @@ int intel_plane_calc_min_cdclk(struct intel_atomic_state *state,
322321 cdclk_state -> min_cdclk [crtc -> pipe ])
323322 return 0 ;
324323
325- drm_dbg_kms (& dev_priv -> drm ,
324+ drm_dbg_kms (display -> drm ,
326325 "[PLANE:%d:%s] min cdclk (%d kHz) > [CRTC:%d:%s] min cdclk (%d kHz)\n" ,
327326 plane -> base .base .id , plane -> base .name ,
328327 new_crtc_state -> min_cdclk [plane -> id ],
@@ -435,7 +434,7 @@ static bool intel_plane_do_async_flip(struct intel_plane *plane,
435434 const struct intel_crtc_state * old_crtc_state ,
436435 const struct intel_crtc_state * new_crtc_state )
437436{
438- struct drm_i915_private * i915 = to_i915 (plane -> base . dev );
437+ struct intel_display * display = to_intel_display (plane );
439438
440439 if (!plane -> async_flip )
441440 return false;
@@ -456,7 +455,7 @@ static bool intel_plane_do_async_flip(struct intel_plane *plane,
456455 * extend this so other scanout parameters (stride/etc) could
457456 * be changed as well...
458457 */
459- return DISPLAY_VER (i915 ) < 9 || old_crtc_state -> uapi .async_flip ;
458+ return DISPLAY_VER (display ) < 9 || old_crtc_state -> uapi .async_flip ;
460459}
461460
462461static bool i9xx_must_disable_cxsr (const struct intel_crtc_state * new_crtc_state ,
@@ -560,16 +559,16 @@ static int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_cr
560559 const struct intel_plane_state * old_plane_state ,
561560 struct intel_plane_state * new_plane_state )
562561{
562+ struct intel_display * display = to_intel_display (new_crtc_state );
563563 struct intel_crtc * crtc = to_intel_crtc (new_crtc_state -> uapi .crtc );
564564 struct intel_plane * plane = to_intel_plane (new_plane_state -> uapi .plane );
565- struct drm_i915_private * dev_priv = to_i915 (crtc -> base .dev );
566565 bool mode_changed = intel_crtc_needs_modeset (new_crtc_state );
567566 bool was_crtc_enabled = old_crtc_state -> hw .active ;
568567 bool is_crtc_enabled = new_crtc_state -> hw .active ;
569568 bool turn_off , turn_on , visible , was_visible ;
570569 int ret ;
571570
572- if (DISPLAY_VER (dev_priv ) >= 9 && plane -> id != PLANE_CURSOR ) {
571+ if (DISPLAY_VER (display ) >= 9 && plane -> id != PLANE_CURSOR ) {
573572 ret = skl_update_scaler_plane (new_crtc_state , new_plane_state );
574573 if (ret )
575574 return ret ;
@@ -578,7 +577,7 @@ static int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_cr
578577 was_visible = old_plane_state -> uapi .visible ;
579578 visible = new_plane_state -> uapi .visible ;
580579
581- if (!was_crtc_enabled && drm_WARN_ON (& dev_priv -> drm , was_visible ))
580+ if (!was_crtc_enabled && drm_WARN_ON (display -> drm , was_visible ))
582581 was_visible = false;
583582
584583 /*
@@ -602,7 +601,7 @@ static int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_cr
602601 turn_off = was_visible && (!visible || mode_changed );
603602 turn_on = visible && (!was_visible || mode_changed );
604603
605- drm_dbg_atomic (& dev_priv -> drm ,
604+ drm_dbg_atomic (display -> drm ,
606605 "[CRTC:%d:%s] with [PLANE:%d:%s] visible %i -> %i, off %i, on %i, ms %i\n" ,
607606 crtc -> base .base .id , crtc -> base .name ,
608607 plane -> base .base .id , plane -> base .name ,
@@ -612,11 +611,11 @@ static int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_cr
612611 if (visible || was_visible )
613612 new_crtc_state -> fb_bits |= plane -> frontbuffer_bit ;
614613
615- if (HAS_GMCH (dev_priv ) &&
614+ if (HAS_GMCH (display ) &&
616615 i9xx_must_disable_cxsr (new_crtc_state , old_plane_state , new_plane_state ))
617616 new_crtc_state -> disable_cxsr = true;
618617
619- if ((IS_IRONLAKE ( dev_priv ) || IS_SANDYBRIDGE ( dev_priv ) || IS_IVYBRIDGE ( dev_priv ) ) &&
618+ if ((display -> platform . ironlake || display -> platform . sandybridge || display -> platform . ivybridge ) &&
620619 ilk_must_disable_cxsr (new_crtc_state , old_plane_state , new_plane_state ))
621620 new_crtc_state -> disable_cxsr = true;
622621
@@ -709,10 +708,10 @@ int intel_plane_atomic_check_with_state(const struct intel_crtc_state *old_crtc_
709708struct intel_plane *
710709intel_crtc_get_plane (struct intel_crtc * crtc , enum plane_id plane_id )
711710{
712- struct drm_i915_private * i915 = to_i915 (crtc -> base . dev );
711+ struct intel_display * display = to_intel_display (crtc );
713712 struct intel_plane * plane ;
714713
715- for_each_intel_plane_on_crtc (& i915 -> drm , crtc , plane ) {
714+ for_each_intel_plane_on_crtc (display -> drm , crtc , plane ) {
716715 if (plane -> id == plane_id )
717716 return plane ;
718717 }
@@ -961,9 +960,9 @@ void intel_crtc_planes_update_arm(struct intel_dsb *dsb,
961960 struct intel_atomic_state * state ,
962961 struct intel_crtc * crtc )
963962{
964- struct drm_i915_private * i915 = to_i915 (state -> base . dev );
963+ struct intel_display * display = to_intel_display (state );
965964
966- if (DISPLAY_VER (i915 ) >= 9 )
965+ if (DISPLAY_VER (display ) >= 9 )
967966 skl_crtc_planes_update_arm (dsb , state , crtc );
968967 else
969968 i9xx_crtc_planes_update_arm (dsb , state , crtc );
@@ -974,7 +973,7 @@ int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,
974973 int min_scale , int max_scale ,
975974 bool can_position )
976975{
977- struct drm_i915_private * i915 = to_i915 (plane_state -> uapi . plane -> dev );
976+ struct intel_display * display = to_intel_display (plane_state );
978977 struct intel_plane * plane = to_intel_plane (plane_state -> uapi .plane );
979978 struct drm_framebuffer * fb = plane_state -> hw .fb ;
980979 struct drm_rect * src = & plane_state -> uapi .src ;
@@ -994,7 +993,7 @@ int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,
994993 hscale = drm_rect_calc_hscale (src , dst , min_scale , max_scale );
995994 vscale = drm_rect_calc_vscale (src , dst , min_scale , max_scale );
996995 if (hscale < 0 || vscale < 0 ) {
997- drm_dbg_kms (& i915 -> drm ,
996+ drm_dbg_kms (display -> drm ,
998997 "[PLANE:%d:%s] invalid scaling " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT "\n" ,
999998 plane -> base .base .id , plane -> base .name ,
1000999 DRM_RECT_FP_ARG (src ), DRM_RECT_ARG (dst ));
@@ -1011,7 +1010,7 @@ int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,
10111010
10121011 if (!can_position && plane_state -> uapi .visible &&
10131012 !drm_rect_equals (dst , clip )) {
1014- drm_dbg_kms (& i915 -> drm ,
1013+ drm_dbg_kms (display -> drm ,
10151014 "[PLANE:%d:%s] plane (" DRM_RECT_FMT ") must cover entire CRTC (" DRM_RECT_FMT ")\n" ,
10161015 plane -> base .base .id , plane -> base .name ,
10171016 DRM_RECT_ARG (dst ), DRM_RECT_ARG (clip ));
@@ -1026,7 +1025,7 @@ int intel_atomic_plane_check_clipping(struct intel_plane_state *plane_state,
10261025
10271026int intel_plane_check_src_coordinates (struct intel_plane_state * plane_state )
10281027{
1029- struct drm_i915_private * i915 = to_i915 (plane_state -> uapi . plane -> dev );
1028+ struct intel_display * display = to_intel_display (plane_state );
10301029 struct intel_plane * plane = to_intel_plane (plane_state -> uapi .plane );
10311030 const struct drm_framebuffer * fb = plane_state -> hw .fb ;
10321031 struct drm_rect * src = & plane_state -> uapi .src ;
@@ -1060,18 +1059,18 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
10601059 if (fb -> format -> format == DRM_FORMAT_RGB565 && rotated ) {
10611060 hsub = 2 ;
10621061 vsub = 2 ;
1063- } else if (DISPLAY_VER (i915 ) >= 20 &&
1062+ } else if (DISPLAY_VER (display ) >= 20 &&
10641063 intel_format_info_is_yuv_semiplanar (fb -> format , fb -> modifier )) {
10651064 /*
10661065 * This allows NV12 and P0xx formats to have odd size and/or odd
1067- * source coordinates on DISPLAY_VER(i915 ) >= 20
1066+ * source coordinates on DISPLAY_VER(display ) >= 20
10681067 */
10691068 hsub = 1 ;
10701069 vsub = 1 ;
10711070
10721071 /* Wa_16023981245 */
1073- if ((DISPLAY_VERx100 (i915 ) == 2000 ||
1074- DISPLAY_VERx100 (i915 ) == 3000 ) &&
1072+ if ((DISPLAY_VERx100 (display ) == 2000 ||
1073+ DISPLAY_VERx100 (display ) == 3000 ) &&
10751074 src_x % 2 != 0 )
10761075 hsub = 2 ;
10771076 } else {
@@ -1083,15 +1082,15 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
10831082 hsub = vsub = max (hsub , vsub );
10841083
10851084 if (src_x % hsub || src_w % hsub ) {
1086- drm_dbg_kms (& i915 -> drm ,
1085+ drm_dbg_kms (display -> drm ,
10871086 "[PLANE:%d:%s] src x/w (%u, %u) must be a multiple of %u (rotated: %s)\n" ,
10881087 plane -> base .base .id , plane -> base .name ,
10891088 src_x , src_w , hsub , str_yes_no (rotated ));
10901089 return - EINVAL ;
10911090 }
10921091
10931092 if (src_y % vsub || src_h % vsub ) {
1094- drm_dbg_kms (& i915 -> drm ,
1093+ drm_dbg_kms (display -> drm ,
10951094 "[PLANE:%d:%s] src y/h (%u, %u) must be a multiple of %u (rotated: %s)\n" ,
10961095 plane -> base .base .id , plane -> base .name ,
10971096 src_y , src_h , vsub , str_yes_no (rotated ));
@@ -1336,14 +1335,13 @@ static int icl_check_nv12_planes(struct intel_atomic_state *state,
13361335 struct intel_crtc * crtc )
13371336{
13381337 struct intel_display * display = to_intel_display (state );
1339- struct drm_i915_private * dev_priv = to_i915 (state -> base .dev );
13401338 struct intel_crtc_state * crtc_state =
13411339 intel_atomic_get_new_crtc_state (state , crtc );
13421340 struct intel_plane_state * plane_state ;
13431341 struct intel_plane * plane ;
13441342 int i ;
13451343
1346- if (DISPLAY_VER (dev_priv ) < 11 )
1344+ if (DISPLAY_VER (display ) < 11 )
13471345 return 0 ;
13481346
13491347 /*
@@ -1371,7 +1369,7 @@ static int icl_check_nv12_planes(struct intel_atomic_state *state,
13711369 if ((crtc_state -> nv12_planes & BIT (plane -> id )) == 0 )
13721370 continue ;
13731371
1374- for_each_intel_plane_on_crtc (& dev_priv -> drm , crtc , y_plane ) {
1372+ for_each_intel_plane_on_crtc (display -> drm , crtc , y_plane ) {
13751373 if (!icl_is_nv12_y_plane (display , y_plane -> id ))
13761374 continue ;
13771375
@@ -1386,7 +1384,7 @@ static int icl_check_nv12_planes(struct intel_atomic_state *state,
13861384 }
13871385
13881386 if (!y_plane_state ) {
1389- drm_dbg_kms (& dev_priv -> drm ,
1387+ drm_dbg_kms (display -> drm ,
13901388 "[CRTC:%d:%s] need %d free Y planes for planar YUV\n" ,
13911389 crtc -> base .base .id , crtc -> base .name ,
13921390 hweight8 (crtc_state -> nv12_planes ));
@@ -1403,10 +1401,10 @@ static int intel_crtc_add_planes_to_state(struct intel_atomic_state *state,
14031401 struct intel_crtc * crtc ,
14041402 u8 plane_ids_mask )
14051403{
1406- struct drm_i915_private * dev_priv = to_i915 (state -> base . dev );
1404+ struct intel_display * display = to_intel_display (state );
14071405 struct intel_plane * plane ;
14081406
1409- for_each_intel_plane_on_crtc (& dev_priv -> drm , crtc , plane ) {
1407+ for_each_intel_plane_on_crtc (display -> drm , crtc , plane ) {
14101408 struct intel_plane_state * plane_state ;
14111409
14121410 if ((plane_ids_mask & BIT (plane -> id )) == 0 )
@@ -1433,12 +1431,12 @@ int intel_atomic_add_affected_planes(struct intel_atomic_state *state,
14331431 new_crtc_state -> enabled_planes );
14341432}
14351433
1436- static bool active_planes_affects_min_cdclk (struct drm_i915_private * dev_priv )
1434+ static bool active_planes_affects_min_cdclk (struct intel_display * display )
14371435{
14381436 /* See {hsw,vlv,ivb}_plane_ratio() */
1439- return IS_BROADWELL ( dev_priv ) || IS_HASWELL ( dev_priv ) ||
1440- IS_CHERRYVIEW ( dev_priv ) || IS_VALLEYVIEW ( dev_priv ) ||
1441- IS_IVYBRIDGE ( dev_priv ) ;
1437+ return display -> platform . broadwell || display -> platform . haswell ||
1438+ display -> platform . cherryview || display -> platform . valleyview ||
1439+ display -> platform . ivybridge ;
14421440}
14431441
14441442static u8 intel_joiner_affected_planes (struct intel_atomic_state * state ,
@@ -1517,7 +1515,7 @@ static int intel_add_affected_planes(struct intel_atomic_state *state)
15171515
15181516int intel_atomic_check_planes (struct intel_atomic_state * state )
15191517{
1520- struct drm_i915_private * dev_priv = to_i915 (state -> base . dev );
1518+ struct intel_display * display = to_intel_display (state );
15211519 struct intel_crtc_state * old_crtc_state , * new_crtc_state ;
15221520 struct intel_plane_state __maybe_unused * plane_state ;
15231521 struct intel_plane * plane ;
@@ -1531,7 +1529,7 @@ int intel_atomic_check_planes(struct intel_atomic_state *state)
15311529 for_each_new_intel_plane_in_state (state , plane , plane_state , i ) {
15321530 ret = intel_plane_atomic_check (state , plane );
15331531 if (ret ) {
1534- drm_dbg_atomic (& dev_priv -> drm ,
1532+ drm_dbg_atomic (display -> drm ,
15351533 "[PLANE:%d:%s] atomic driver check failed\n" ,
15361534 plane -> base .base .id , plane -> base .name );
15371535 return ret ;
@@ -1551,7 +1549,7 @@ int intel_atomic_check_planes(struct intel_atomic_state *state)
15511549 * the planes' minimum cdclk calculation. Add such planes
15521550 * to the state before we compute the minimum cdclk.
15531551 */
1554- if (!active_planes_affects_min_cdclk (dev_priv ))
1552+ if (!active_planes_affects_min_cdclk (display ))
15551553 continue ;
15561554
15571555 old_active_planes = old_crtc_state -> active_planes & ~BIT (PLANE_CURSOR );
0 commit comments