Commit f6d8b226 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/cdclk: abstract intel_cdclk_pmdemand_needs_update()



Add intel_cdclk_pmdemand_needs_update() helper to avoid looking at
struct intel_cdclk_state internals outside of intel_cdclk.c.

Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
Link: https://lore.kernel.org/r/d0d4f073707a2badb432187f6e02d6d7f9fe431b.1750847509.git.jani.nikula@intel.com


Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent 3fda3bf0
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -3849,3 +3849,18 @@ int intel_cdclk_bw_min_cdclk(const struct intel_cdclk_state *cdclk_state)
{
	return cdclk_state->bw_min_cdclk;
}

bool intel_cdclk_pmdemand_needs_update(struct intel_atomic_state *state)
{
	const struct intel_cdclk_state *new_cdclk_state, *old_cdclk_state;

	new_cdclk_state = intel_atomic_get_new_cdclk_state(state);
	old_cdclk_state = intel_atomic_get_old_cdclk_state(state);

	if (new_cdclk_state &&
	    (new_cdclk_state->actual.cdclk != old_cdclk_state->actual.cdclk ||
	     new_cdclk_state->actual.voltage_level != old_cdclk_state->actual.voltage_level))
		return true;

	return false;
}
+1 −0
Original line number Diff line number Diff line
@@ -100,5 +100,6 @@ void intel_cdclk_debugfs_register(struct intel_display *display);
int intel_cdclk_logical(const struct intel_cdclk_state *cdclk_state);
int intel_cdclk_min_cdclk(const struct intel_cdclk_state *cdclk_state, enum pipe pipe);
int intel_cdclk_bw_min_cdclk(const struct intel_cdclk_state *cdclk_state);
bool intel_cdclk_pmdemand_needs_update(struct intel_atomic_state *state);

#endif /* __INTEL_CDCLK_H__ */
+1 −8
Original line number Diff line number Diff line
@@ -294,7 +294,6 @@ intel_pmdemand_connector_needs_update(struct intel_atomic_state *state)

static bool intel_pmdemand_needs_update(struct intel_atomic_state *state)
{
	const struct intel_cdclk_state *new_cdclk_state, *old_cdclk_state;
	const struct intel_crtc_state *new_crtc_state, *old_crtc_state;
	struct intel_crtc *crtc;
	int i;
@@ -305,13 +304,7 @@ static bool intel_pmdemand_needs_update(struct intel_atomic_state *state)
	if (intel_dbuf_pmdemand_needs_update(state))
		return true;

	new_cdclk_state = intel_atomic_get_new_cdclk_state(state);
	old_cdclk_state = intel_atomic_get_old_cdclk_state(state);
	if (new_cdclk_state &&
	    (new_cdclk_state->actual.cdclk !=
	     old_cdclk_state->actual.cdclk ||
	     new_cdclk_state->actual.voltage_level !=
	     old_cdclk_state->actual.voltage_level))
	if (intel_cdclk_pmdemand_needs_update(state))
		return true;

	for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,