Lines Matching full:i915
44 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_atomic_get_pmdemand_state() local
47 &i915->display.pmdemand.obj); in intel_atomic_get_pmdemand_state()
58 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_atomic_get_old_pmdemand_state() local
61 &i915->display.pmdemand.obj); in intel_atomic_get_old_pmdemand_state()
72 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_atomic_get_new_pmdemand_state() local
75 &i915->display.pmdemand.obj); in intel_atomic_get_new_pmdemand_state()
83 int intel_pmdemand_init(struct drm_i915_private *i915) in intel_pmdemand_init() argument
91 intel_atomic_global_obj_init(i915, &i915->display.pmdemand.obj, in intel_pmdemand_init()
95 if (IS_DISPLAY_IP_STEP(i915, IP_VER(14, 0), STEP_A0, STEP_C0)) in intel_pmdemand_init()
97 intel_de_rmw(i915, XELPD_CHICKEN_DCPR_3, 0, DMD_RSP_TIMEOUT_DISABLE); in intel_pmdemand_init()
102 void intel_pmdemand_init_early(struct drm_i915_private *i915) in intel_pmdemand_init_early() argument
104 mutex_init(&i915->display.pmdemand.lock); in intel_pmdemand_init_early()
105 init_waitqueue_head(&i915->display.pmdemand.waitqueue); in intel_pmdemand_init_early()
109 intel_pmdemand_update_phys_mask(struct drm_i915_private *i915, in intel_pmdemand_update_phys_mask() argument
116 if (DISPLAY_VER(i915) < 14) in intel_pmdemand_update_phys_mask()
122 phy = intel_port_to_phy(i915, encoder->port); in intel_pmdemand_update_phys_mask()
123 if (intel_phy_is_tc(i915, phy)) in intel_pmdemand_update_phys_mask()
133 intel_pmdemand_update_port_clock(struct drm_i915_private *i915, in intel_pmdemand_update_port_clock() argument
137 if (DISPLAY_VER(i915) < 14) in intel_pmdemand_update_port_clock()
144 intel_pmdemand_update_max_ddiclk(struct drm_i915_private *i915, in intel_pmdemand_update_max_ddiclk() argument
154 intel_pmdemand_update_port_clock(i915, pmdemand_state, in intel_pmdemand_update_max_ddiclk()
165 intel_pmdemand_update_connector_phys(struct drm_i915_private *i915, in intel_pmdemand_update_connector_phys() argument
186 intel_pmdemand_update_phys_mask(i915, encoder, pmdemand_state, in intel_pmdemand_update_connector_phys()
191 intel_pmdemand_update_active_non_tc_phys(struct drm_i915_private *i915, in intel_pmdemand_update_active_non_tc_phys() argument
206 intel_pmdemand_update_connector_phys(i915, state, in intel_pmdemand_update_active_non_tc_phys()
211 intel_pmdemand_update_connector_phys(i915, state, in intel_pmdemand_update_active_non_tc_phys()
222 intel_pmdemand_encoder_has_tc_phy(struct drm_i915_private *i915, in intel_pmdemand_encoder_has_tc_phy() argument
230 phy = intel_port_to_phy(i915, encoder->port); in intel_pmdemand_encoder_has_tc_phy()
232 return intel_phy_is_tc(i915, phy); in intel_pmdemand_encoder_has_tc_phy()
238 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_pmdemand_connector_needs_update() local
255 (intel_pmdemand_encoder_has_tc_phy(i915, old_encoder) && in intel_pmdemand_connector_needs_update()
256 intel_pmdemand_encoder_has_tc_phy(i915, new_encoder))) in intel_pmdemand_connector_needs_update()
308 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_pmdemand_atomic_check() local
314 if (DISPLAY_VER(i915) < 14) in intel_pmdemand_atomic_check()
350 intel_pmdemand_update_max_ddiclk(i915, state, new_pmdemand_state); in intel_pmdemand_atomic_check()
352 intel_pmdemand_update_active_non_tc_phys(i915, state, new_pmdemand_state); in intel_pmdemand_atomic_check()
373 static bool intel_pmdemand_check_prev_transaction(struct drm_i915_private *i915) in intel_pmdemand_check_prev_transaction() argument
375 return !(intel_de_wait_for_clear(i915, in intel_pmdemand_check_prev_transaction()
378 intel_de_wait_for_clear(i915, in intel_pmdemand_check_prev_transaction()
384 intel_pmdemand_init_pmdemand_params(struct drm_i915_private *i915, in intel_pmdemand_init_pmdemand_params() argument
389 if (DISPLAY_VER(i915) < 14) in intel_pmdemand_init_pmdemand_params()
392 mutex_lock(&i915->display.pmdemand.lock); in intel_pmdemand_init_pmdemand_params()
393 if (drm_WARN_ON(&i915->drm, in intel_pmdemand_init_pmdemand_params()
394 !intel_pmdemand_check_prev_transaction(i915))) { in intel_pmdemand_init_pmdemand_params()
400 reg1 = intel_de_read(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(0)); in intel_pmdemand_init_pmdemand_params()
402 reg2 = intel_de_read(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(1)); in intel_pmdemand_init_pmdemand_params()
427 mutex_unlock(&i915->display.pmdemand.lock); in intel_pmdemand_init_pmdemand_params()
430 static bool intel_pmdemand_req_complete(struct drm_i915_private *i915) in intel_pmdemand_req_complete() argument
432 return !(intel_de_read(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(1)) & in intel_pmdemand_req_complete()
436 static void intel_pmdemand_wait(struct drm_i915_private *i915) in intel_pmdemand_wait() argument
438 if (!wait_event_timeout(i915->display.pmdemand.waitqueue, in intel_pmdemand_wait()
439 intel_pmdemand_req_complete(i915), in intel_pmdemand_wait()
441 drm_err(&i915->drm, in intel_pmdemand_wait()
446 void intel_pmdemand_program_dbuf(struct drm_i915_private *i915, in intel_pmdemand_program_dbuf() argument
451 mutex_lock(&i915->display.pmdemand.lock); in intel_pmdemand_program_dbuf()
452 if (drm_WARN_ON(&i915->drm, in intel_pmdemand_program_dbuf()
453 !intel_pmdemand_check_prev_transaction(i915))) in intel_pmdemand_program_dbuf()
456 intel_de_rmw(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(0), in intel_pmdemand_program_dbuf()
459 intel_de_rmw(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(1), 0, in intel_pmdemand_program_dbuf()
462 intel_pmdemand_wait(i915); in intel_pmdemand_program_dbuf()
465 mutex_unlock(&i915->display.pmdemand.lock); in intel_pmdemand_program_dbuf()
518 intel_pmdemand_program_params(struct drm_i915_private *i915, in intel_pmdemand_program_params() argument
527 mutex_lock(&i915->display.pmdemand.lock); in intel_pmdemand_program_params()
528 if (drm_WARN_ON(&i915->drm, in intel_pmdemand_program_params()
529 !intel_pmdemand_check_prev_transaction(i915))) in intel_pmdemand_program_params()
532 reg1 = intel_de_read(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(0)); in intel_pmdemand_program_params()
535 reg2 = intel_de_read(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(1)); in intel_pmdemand_program_params()
542 intel_de_write(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(0), in intel_pmdemand_program_params()
548 intel_de_write(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(1), in intel_pmdemand_program_params()
557 drm_dbg_kms(&i915->drm, in intel_pmdemand_program_params()
561 intel_de_rmw(i915, XELPDP_INITIATE_PMDEMAND_REQUEST(1), 0, in intel_pmdemand_program_params()
564 intel_pmdemand_wait(i915); in intel_pmdemand_program_params()
567 mutex_unlock(&i915->display.pmdemand.lock); in intel_pmdemand_program_params()
579 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_pmdemand_pre_plane_update() local
585 if (DISPLAY_VER(i915) < 14) in intel_pmdemand_pre_plane_update()
595 intel_pmdemand_program_params(i915, new_pmdemand_state, in intel_pmdemand_pre_plane_update()
602 struct drm_i915_private *i915 = to_i915(state->base.dev); in intel_pmdemand_post_plane_update() local
608 if (DISPLAY_VER(i915) < 14) in intel_pmdemand_post_plane_update()
618 intel_pmdemand_program_params(i915, new_pmdemand_state, NULL, in intel_pmdemand_post_plane_update()