Skip to content

Commit 754d627

Browse files
committed
drm/i915/cdclk: move intel_atomic_check_cdclk() to intel_cdclk.c
Rename to intel_cdclk_atomic_check() and make intel_cdclk_bw_calc_min_cdclk() static. Signed-off-by: Jani Nikula <[email protected]> Reviewed-by: Ville Syrjälä <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/43ad4d437121f43d76c790ac5d4d131743d58988.1639068649.git.jani.nikula@intel.com
1 parent a091471 commit 754d627

File tree

3 files changed

+57
-56
lines changed

3 files changed

+57
-56
lines changed

drivers/gpu/drm/i915/display/intel_cdclk.c

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <linux/time.h>
2525

2626
#include "intel_atomic.h"
27+
#include "intel_atomic_plane.h"
2728
#include "intel_audio.h"
2829
#include "intel_bw.h"
2930
#include "intel_cdclk.h"
@@ -68,7 +69,7 @@ void intel_cdclk_get_cdclk(struct drm_i915_private *dev_priv,
6869
dev_priv->cdclk_funcs->get_cdclk(dev_priv, cdclk_config);
6970
}
7071

71-
int intel_cdclk_bw_calc_min_cdclk(struct intel_atomic_state *state)
72+
static int intel_cdclk_bw_calc_min_cdclk(struct intel_atomic_state *state)
7273
{
7374
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
7475
return dev_priv->cdclk_funcs->bw_calc_min_cdclk(state);
@@ -2629,6 +2630,58 @@ intel_atomic_get_cdclk_state(struct intel_atomic_state *state)
26292630
return to_intel_cdclk_state(cdclk_state);
26302631
}
26312632

2633+
int intel_cdclk_atomic_check(struct intel_atomic_state *state,
2634+
bool *need_cdclk_calc)
2635+
{
2636+
struct drm_i915_private *i915 = to_i915(state->base.dev);
2637+
const struct intel_cdclk_state *old_cdclk_state;
2638+
const struct intel_cdclk_state *new_cdclk_state;
2639+
struct intel_plane_state *plane_state;
2640+
struct intel_bw_state *new_bw_state;
2641+
struct intel_plane *plane;
2642+
int min_cdclk = 0;
2643+
enum pipe pipe;
2644+
int ret;
2645+
int i;
2646+
2647+
/*
2648+
* active_planes bitmask has been updated, and potentially affected
2649+
* planes are part of the state. We can now compute the minimum cdclk
2650+
* for each plane.
2651+
*/
2652+
for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
2653+
ret = intel_plane_calc_min_cdclk(state, plane, need_cdclk_calc);
2654+
if (ret)
2655+
return ret;
2656+
}
2657+
2658+
old_cdclk_state = intel_atomic_get_old_cdclk_state(state);
2659+
new_cdclk_state = intel_atomic_get_new_cdclk_state(state);
2660+
2661+
if (new_cdclk_state &&
2662+
old_cdclk_state->force_min_cdclk != new_cdclk_state->force_min_cdclk)
2663+
*need_cdclk_calc = true;
2664+
2665+
ret = intel_cdclk_bw_calc_min_cdclk(state);
2666+
if (ret)
2667+
return ret;
2668+
2669+
new_bw_state = intel_atomic_get_new_bw_state(state);
2670+
2671+
if (!new_cdclk_state || !new_bw_state)
2672+
return 0;
2673+
2674+
for_each_pipe(i915, pipe) {
2675+
min_cdclk = max(new_cdclk_state->min_cdclk[pipe], min_cdclk);
2676+
2677+
/* Currently do this change only if we need to increase */
2678+
if (new_bw_state->min_cdclk > min_cdclk)
2679+
*need_cdclk_calc = true;
2680+
}
2681+
2682+
return 0;
2683+
}
2684+
26322685
int intel_cdclk_init(struct drm_i915_private *dev_priv)
26332686
{
26342687
struct intel_cdclk_state *cdclk_state;

drivers/gpu/drm/i915/display/intel_cdclk.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ void intel_dump_cdclk_config(const struct intel_cdclk_config *cdclk_config,
7171
int intel_modeset_calc_cdclk(struct intel_atomic_state *state);
7272
void intel_cdclk_get_cdclk(struct drm_i915_private *dev_priv,
7373
struct intel_cdclk_config *cdclk_config);
74-
int intel_cdclk_bw_calc_min_cdclk(struct intel_atomic_state *state);
74+
int intel_cdclk_atomic_check(struct intel_atomic_state *state,
75+
bool *need_cdclk_calc);
7576
struct intel_cdclk_state *
7677
intel_atomic_get_cdclk_state(struct intel_atomic_state *state);
7778

drivers/gpu/drm/i915/display/intel_display.c

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7556,59 +7556,6 @@ static int intel_atomic_check_planes(struct intel_atomic_state *state)
75567556
return 0;
75577557
}
75587558

7559-
static int intel_atomic_check_cdclk(struct intel_atomic_state *state,
7560-
bool *need_cdclk_calc)
7561-
{
7562-
struct drm_i915_private *dev_priv = to_i915(state->base.dev);
7563-
const struct intel_cdclk_state *old_cdclk_state;
7564-
const struct intel_cdclk_state *new_cdclk_state;
7565-
struct intel_plane_state *plane_state;
7566-
struct intel_bw_state *new_bw_state;
7567-
struct intel_plane *plane;
7568-
int min_cdclk = 0;
7569-
enum pipe pipe;
7570-
int ret;
7571-
int i;
7572-
/*
7573-
* active_planes bitmask has been updated, and potentially
7574-
* affected planes are part of the state. We can now
7575-
* compute the minimum cdclk for each plane.
7576-
*/
7577-
for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
7578-
ret = intel_plane_calc_min_cdclk(state, plane, need_cdclk_calc);
7579-
if (ret)
7580-
return ret;
7581-
}
7582-
7583-
old_cdclk_state = intel_atomic_get_old_cdclk_state(state);
7584-
new_cdclk_state = intel_atomic_get_new_cdclk_state(state);
7585-
7586-
if (new_cdclk_state &&
7587-
old_cdclk_state->force_min_cdclk != new_cdclk_state->force_min_cdclk)
7588-
*need_cdclk_calc = true;
7589-
7590-
ret = intel_cdclk_bw_calc_min_cdclk(state);
7591-
if (ret)
7592-
return ret;
7593-
7594-
new_bw_state = intel_atomic_get_new_bw_state(state);
7595-
7596-
if (!new_cdclk_state || !new_bw_state)
7597-
return 0;
7598-
7599-
for_each_pipe(dev_priv, pipe) {
7600-
min_cdclk = max(new_cdclk_state->min_cdclk[pipe], min_cdclk);
7601-
7602-
/*
7603-
* Currently do this change only if we need to increase
7604-
*/
7605-
if (new_bw_state->min_cdclk > min_cdclk)
7606-
*need_cdclk_calc = true;
7607-
}
7608-
7609-
return 0;
7610-
}
7611-
76127559
static int intel_atomic_check_crtcs(struct intel_atomic_state *state)
76137560
{
76147561
struct intel_crtc_state *crtc_state;
@@ -8057,7 +8004,7 @@ static int intel_atomic_check(struct drm_device *dev,
80578004
if (ret)
80588005
goto fail;
80598006

8060-
ret = intel_atomic_check_cdclk(state, &any_ms);
8007+
ret = intel_cdclk_atomic_check(state, &any_ms);
80618008
if (ret)
80628009
goto fail;
80638010

0 commit comments

Comments
 (0)