Lines Matching refs:cdclk_state
2324 static int intel_compute_min_cdclk(struct intel_cdclk_state *cdclk_state) in intel_compute_min_cdclk() argument
2326 struct intel_atomic_state *state = cdclk_state->base.state; in intel_compute_min_cdclk()
2341 if (cdclk_state->min_cdclk[crtc->pipe] == min_cdclk) in intel_compute_min_cdclk()
2344 cdclk_state->min_cdclk[crtc->pipe] = min_cdclk; in intel_compute_min_cdclk()
2346 ret = intel_atomic_lock_global_state(&cdclk_state->base); in intel_compute_min_cdclk()
2355 if (cdclk_state->bw_min_cdclk != min_cdclk) { in intel_compute_min_cdclk()
2358 cdclk_state->bw_min_cdclk = min_cdclk; in intel_compute_min_cdclk()
2360 ret = intel_atomic_lock_global_state(&cdclk_state->base); in intel_compute_min_cdclk()
2366 min_cdclk = max(cdclk_state->force_min_cdclk, in intel_compute_min_cdclk()
2367 cdclk_state->bw_min_cdclk); in intel_compute_min_cdclk()
2369 min_cdclk = max(cdclk_state->min_cdclk[pipe], min_cdclk); in intel_compute_min_cdclk()
2394 static int bxt_compute_min_voltage_level(struct intel_cdclk_state *cdclk_state) in bxt_compute_min_voltage_level() argument
2396 struct intel_atomic_state *state = cdclk_state->base.state; in bxt_compute_min_voltage_level()
2412 if (cdclk_state->min_voltage_level[crtc->pipe] == min_voltage_level) in bxt_compute_min_voltage_level()
2415 cdclk_state->min_voltage_level[crtc->pipe] = min_voltage_level; in bxt_compute_min_voltage_level()
2417 ret = intel_atomic_lock_global_state(&cdclk_state->base); in bxt_compute_min_voltage_level()
2424 min_voltage_level = max(cdclk_state->min_voltage_level[pipe], in bxt_compute_min_voltage_level()
2430 static int vlv_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in vlv_modeset_calc_cdclk() argument
2432 struct intel_atomic_state *state = cdclk_state->base.state; in vlv_modeset_calc_cdclk()
2436 min_cdclk = intel_compute_min_cdclk(cdclk_state); in vlv_modeset_calc_cdclk()
2442 cdclk_state->logical.cdclk = cdclk; in vlv_modeset_calc_cdclk()
2443 cdclk_state->logical.voltage_level = in vlv_modeset_calc_cdclk()
2446 if (!cdclk_state->active_pipes) { in vlv_modeset_calc_cdclk()
2447 cdclk = vlv_calc_cdclk(dev_priv, cdclk_state->force_min_cdclk); in vlv_modeset_calc_cdclk()
2449 cdclk_state->actual.cdclk = cdclk; in vlv_modeset_calc_cdclk()
2450 cdclk_state->actual.voltage_level = in vlv_modeset_calc_cdclk()
2453 cdclk_state->actual = cdclk_state->logical; in vlv_modeset_calc_cdclk()
2459 static int bdw_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in bdw_modeset_calc_cdclk() argument
2463 min_cdclk = intel_compute_min_cdclk(cdclk_state); in bdw_modeset_calc_cdclk()
2473 cdclk_state->logical.cdclk = cdclk; in bdw_modeset_calc_cdclk()
2474 cdclk_state->logical.voltage_level = in bdw_modeset_calc_cdclk()
2477 if (!cdclk_state->active_pipes) { in bdw_modeset_calc_cdclk()
2478 cdclk = bdw_calc_cdclk(cdclk_state->force_min_cdclk); in bdw_modeset_calc_cdclk()
2480 cdclk_state->actual.cdclk = cdclk; in bdw_modeset_calc_cdclk()
2481 cdclk_state->actual.voltage_level = in bdw_modeset_calc_cdclk()
2484 cdclk_state->actual = cdclk_state->logical; in bdw_modeset_calc_cdclk()
2490 static int skl_dpll0_vco(struct intel_cdclk_state *cdclk_state) in skl_dpll0_vco() argument
2492 struct intel_atomic_state *state = cdclk_state->base.state; in skl_dpll0_vco()
2498 vco = cdclk_state->logical.vco; in skl_dpll0_vco()
2527 static int skl_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in skl_modeset_calc_cdclk() argument
2531 min_cdclk = intel_compute_min_cdclk(cdclk_state); in skl_modeset_calc_cdclk()
2535 vco = skl_dpll0_vco(cdclk_state); in skl_modeset_calc_cdclk()
2543 cdclk_state->logical.vco = vco; in skl_modeset_calc_cdclk()
2544 cdclk_state->logical.cdclk = cdclk; in skl_modeset_calc_cdclk()
2545 cdclk_state->logical.voltage_level = in skl_modeset_calc_cdclk()
2548 if (!cdclk_state->active_pipes) { in skl_modeset_calc_cdclk()
2549 cdclk = skl_calc_cdclk(cdclk_state->force_min_cdclk, vco); in skl_modeset_calc_cdclk()
2551 cdclk_state->actual.vco = vco; in skl_modeset_calc_cdclk()
2552 cdclk_state->actual.cdclk = cdclk; in skl_modeset_calc_cdclk()
2553 cdclk_state->actual.voltage_level = in skl_modeset_calc_cdclk()
2556 cdclk_state->actual = cdclk_state->logical; in skl_modeset_calc_cdclk()
2562 static int bxt_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in bxt_modeset_calc_cdclk() argument
2564 struct intel_atomic_state *state = cdclk_state->base.state; in bxt_modeset_calc_cdclk()
2568 min_cdclk = intel_compute_min_cdclk(cdclk_state); in bxt_modeset_calc_cdclk()
2572 min_voltage_level = bxt_compute_min_voltage_level(cdclk_state); in bxt_modeset_calc_cdclk()
2579 cdclk_state->logical.vco = vco; in bxt_modeset_calc_cdclk()
2580 cdclk_state->logical.cdclk = cdclk; in bxt_modeset_calc_cdclk()
2581 cdclk_state->logical.voltage_level = in bxt_modeset_calc_cdclk()
2585 if (!cdclk_state->active_pipes) { in bxt_modeset_calc_cdclk()
2586 cdclk = bxt_calc_cdclk(dev_priv, cdclk_state->force_min_cdclk); in bxt_modeset_calc_cdclk()
2589 cdclk_state->actual.vco = vco; in bxt_modeset_calc_cdclk()
2590 cdclk_state->actual.cdclk = cdclk; in bxt_modeset_calc_cdclk()
2591 cdclk_state->actual.voltage_level = in bxt_modeset_calc_cdclk()
2594 cdclk_state->actual = cdclk_state->logical; in bxt_modeset_calc_cdclk()
2600 static int fixed_modeset_calc_cdclk(struct intel_cdclk_state *cdclk_state) in fixed_modeset_calc_cdclk() argument
2609 min_cdclk = intel_compute_min_cdclk(cdclk_state); in fixed_modeset_calc_cdclk()
2618 struct intel_cdclk_state *cdclk_state; in intel_cdclk_duplicate_state() local
2620 cdclk_state = kmemdup(obj->state, sizeof(*cdclk_state), GFP_KERNEL); in intel_cdclk_duplicate_state()
2621 if (!cdclk_state) in intel_cdclk_duplicate_state()
2624 cdclk_state->pipe = INVALID_PIPE; in intel_cdclk_duplicate_state()
2626 return &cdclk_state->base; in intel_cdclk_duplicate_state()
2644 struct intel_global_state *cdclk_state; in intel_atomic_get_cdclk_state() local
2646 cdclk_state = intel_atomic_get_global_obj_state(state, &dev_priv->display.cdclk.obj); in intel_atomic_get_cdclk_state()
2647 if (IS_ERR(cdclk_state)) in intel_atomic_get_cdclk_state()
2648 return ERR_CAST(cdclk_state); in intel_atomic_get_cdclk_state()
2650 return to_intel_cdclk_state(cdclk_state); in intel_atomic_get_cdclk_state()
2690 struct intel_cdclk_state *cdclk_state; in intel_cdclk_init() local
2692 cdclk_state = kzalloc(sizeof(*cdclk_state), GFP_KERNEL); in intel_cdclk_init()
2693 if (!cdclk_state) in intel_cdclk_init()
2697 &cdclk_state->base, &intel_cdclk_funcs); in intel_cdclk_init()