Lines Matching refs:cdclk_state
2469 static int intel_compute_min_cdclk(struct intel_cdclk_state *cdclk_state) in intel_compute_min_cdclk() argument
2471 struct intel_atomic_state *state = cdclk_state->base.state; in intel_compute_min_cdclk()
2486 if (cdclk_state->min_cdclk[crtc->pipe] == min_cdclk) in intel_compute_min_cdclk()
2489 cdclk_state->min_cdclk[crtc->pipe] = min_cdclk; in intel_compute_min_cdclk()
2491 ret = intel_atomic_lock_global_state(&cdclk_state->base); in intel_compute_min_cdclk()
2500 if (cdclk_state->bw_min_cdclk != min_cdclk) { in intel_compute_min_cdclk()
2503 cdclk_state->bw_min_cdclk = min_cdclk; in intel_compute_min_cdclk()
2505 ret = intel_atomic_lock_global_state(&cdclk_state->base); in intel_compute_min_cdclk()
2511 min_cdclk = max(cdclk_state->force_min_cdclk, in intel_compute_min_cdclk()
2512 cdclk_state->bw_min_cdclk); in intel_compute_min_cdclk()
2514 min_cdclk = max(cdclk_state->min_cdclk[pipe], min_cdclk); in intel_compute_min_cdclk()
2539 static int bxt_compute_min_voltage_level(struct intel_cdclk_state *cdclk_state) in bxt_compute_min_voltage_level() argument
2541 struct intel_atomic_state *state = cdclk_state->base.state; in bxt_compute_min_voltage_level()
2557 if (cdclk_state->min_voltage_level[crtc->pipe] == min_voltage_level) in bxt_compute_min_voltage_level()
2560 cdclk_state->min_voltage_level[crtc->pipe] = min_voltage_level; in bxt_compute_min_voltage_level()
2562 ret = intel_atomic_lock_global_state(&cdclk_state->base); in bxt_compute_min_voltage_level()
2569 min_voltage_level = max(cdclk_state->min_voltage_level[pipe], in bxt_compute_min_voltage_level()
2575 static int vlv_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in vlv_modeset_calc_cdclk() argument
2577 struct intel_atomic_state *state = cdclk_state->base.state; in vlv_modeset_calc_cdclk()
2581 min_cdclk = intel_compute_min_cdclk(cdclk_state); in vlv_modeset_calc_cdclk()
2587 cdclk_state->logical.cdclk = cdclk; in vlv_modeset_calc_cdclk()
2588 cdclk_state->logical.voltage_level = in vlv_modeset_calc_cdclk()
2591 if (!cdclk_state->active_pipes) { in vlv_modeset_calc_cdclk()
2592 cdclk = vlv_calc_cdclk(dev_priv, cdclk_state->force_min_cdclk); in vlv_modeset_calc_cdclk()
2594 cdclk_state->actual.cdclk = cdclk; in vlv_modeset_calc_cdclk()
2595 cdclk_state->actual.voltage_level = in vlv_modeset_calc_cdclk()
2598 cdclk_state->actual = cdclk_state->logical; in vlv_modeset_calc_cdclk()
2604 static int bdw_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in bdw_modeset_calc_cdclk() argument
2608 min_cdclk = intel_compute_min_cdclk(cdclk_state); in bdw_modeset_calc_cdclk()
2614 cdclk_state->logical.cdclk = cdclk; in bdw_modeset_calc_cdclk()
2615 cdclk_state->logical.voltage_level = in bdw_modeset_calc_cdclk()
2618 if (!cdclk_state->active_pipes) { in bdw_modeset_calc_cdclk()
2619 cdclk = bdw_calc_cdclk(cdclk_state->force_min_cdclk); in bdw_modeset_calc_cdclk()
2621 cdclk_state->actual.cdclk = cdclk; in bdw_modeset_calc_cdclk()
2622 cdclk_state->actual.voltage_level = in bdw_modeset_calc_cdclk()
2625 cdclk_state->actual = cdclk_state->logical; in bdw_modeset_calc_cdclk()
2631 static int skl_dpll0_vco(struct intel_cdclk_state *cdclk_state) in skl_dpll0_vco() argument
2633 struct intel_atomic_state *state = cdclk_state->base.state; in skl_dpll0_vco()
2639 vco = cdclk_state->logical.vco; in skl_dpll0_vco()
2668 static int skl_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in skl_modeset_calc_cdclk() argument
2672 min_cdclk = intel_compute_min_cdclk(cdclk_state); in skl_modeset_calc_cdclk()
2676 vco = skl_dpll0_vco(cdclk_state); in skl_modeset_calc_cdclk()
2680 cdclk_state->logical.vco = vco; in skl_modeset_calc_cdclk()
2681 cdclk_state->logical.cdclk = cdclk; in skl_modeset_calc_cdclk()
2682 cdclk_state->logical.voltage_level = in skl_modeset_calc_cdclk()
2685 if (!cdclk_state->active_pipes) { in skl_modeset_calc_cdclk()
2686 cdclk = skl_calc_cdclk(cdclk_state->force_min_cdclk, vco); in skl_modeset_calc_cdclk()
2688 cdclk_state->actual.vco = vco; in skl_modeset_calc_cdclk()
2689 cdclk_state->actual.cdclk = cdclk; in skl_modeset_calc_cdclk()
2690 cdclk_state->actual.voltage_level = in skl_modeset_calc_cdclk()
2693 cdclk_state->actual = cdclk_state->logical; in skl_modeset_calc_cdclk()
2699 static int bxt_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in bxt_modeset_calc_cdclk() argument
2701 struct intel_atomic_state *state = cdclk_state->base.state; in bxt_modeset_calc_cdclk()
2705 min_cdclk = intel_compute_min_cdclk(cdclk_state); in bxt_modeset_calc_cdclk()
2709 min_voltage_level = bxt_compute_min_voltage_level(cdclk_state); in bxt_modeset_calc_cdclk()
2716 cdclk_state->logical.vco = vco; in bxt_modeset_calc_cdclk()
2717 cdclk_state->logical.cdclk = cdclk; in bxt_modeset_calc_cdclk()
2718 cdclk_state->logical.voltage_level = in bxt_modeset_calc_cdclk()
2722 if (!cdclk_state->active_pipes) { in bxt_modeset_calc_cdclk()
2723 cdclk = bxt_calc_cdclk(dev_priv, cdclk_state->force_min_cdclk); in bxt_modeset_calc_cdclk()
2726 cdclk_state->actual.vco = vco; in bxt_modeset_calc_cdclk()
2727 cdclk_state->actual.cdclk = cdclk; in bxt_modeset_calc_cdclk()
2728 cdclk_state->actual.voltage_level = in bxt_modeset_calc_cdclk()
2731 cdclk_state->actual = cdclk_state->logical; in bxt_modeset_calc_cdclk()
2737 static int fixed_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in fixed_modeset_calc_cdclk() argument
2746 min_cdclk = intel_compute_min_cdclk(cdclk_state); in fixed_modeset_calc_cdclk()
2755 struct intel_cdclk_state *cdclk_state; in intel_cdclk_duplicate_state() local
2757 cdclk_state = kmemdup(obj->state, sizeof(*cdclk_state), GFP_KERNEL); in intel_cdclk_duplicate_state()
2758 if (!cdclk_state) in intel_cdclk_duplicate_state()
2761 cdclk_state->pipe = INVALID_PIPE; in intel_cdclk_duplicate_state()
2763 return &cdclk_state->base; in intel_cdclk_duplicate_state()
2781 struct intel_global_state *cdclk_state; in intel_atomic_get_cdclk_state() local
2783 cdclk_state = intel_atomic_get_global_obj_state(state, &dev_priv->display.cdclk.obj); in intel_atomic_get_cdclk_state()
2784 if (IS_ERR(cdclk_state)) in intel_atomic_get_cdclk_state()
2785 return ERR_CAST(cdclk_state); in intel_atomic_get_cdclk_state()
2787 return to_intel_cdclk_state(cdclk_state); in intel_atomic_get_cdclk_state()
2827 struct intel_cdclk_state *cdclk_state; in intel_cdclk_init() local
2829 cdclk_state = kzalloc(sizeof(*cdclk_state), GFP_KERNEL); in intel_cdclk_init()
2830 if (!cdclk_state) in intel_cdclk_init()
2834 &cdclk_state->base, &intel_cdclk_funcs); in intel_cdclk_init()