Commit aa07c1d3 authored by Manasi Navare's avatar Manasi Navare
Browse files

drm/i915: Pass intel_atomic_state instead of drm_atomic_state



No functional changes, to align with previous cleanups pass
intel_atomic_state instead of drm_atomic_state.
Also pass this intel_atomic_state with crtc_state to
some of the atomic_check functions.

v2:
* Squash some changes from next patch (Ville)

Signed-off-by: default avatarManasi Navare <manasi.d.navare@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201113155656.17630-1-manasi.d.navare@intel.com
parent bafcdad6
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
@@ -12630,7 +12630,7 @@ static bool encoders_cloneable(const struct intel_encoder *a,
			  b->cloneable & (1 << a->type));
}
static bool check_single_encoder_cloning(struct drm_atomic_state *state,
static bool check_single_encoder_cloning(struct intel_atomic_state *state,
					 struct intel_crtc *crtc,
					 struct intel_encoder *encoder)
{
@@ -12639,7 +12639,7 @@ static bool check_single_encoder_cloning(struct drm_atomic_state *state,
	struct drm_connector_state *connector_state;
	int i;
	for_each_new_connector_in_state(state, connector, connector_state, i) {
	for_each_new_connector_in_state(&state->base, connector, connector_state, i) {
		if (connector_state->crtc != &crtc->base)
			continue;
@@ -13418,20 +13418,23 @@ static bool check_digital_port_conflicts(struct intel_atomic_state *state)
}
static void
intel_crtc_copy_uapi_to_hw_state_nomodeset(struct intel_crtc_state *crtc_state)
intel_crtc_copy_uapi_to_hw_state_nomodeset(struct intel_atomic_state *state,
					   struct intel_crtc_state *crtc_state)
{
	intel_crtc_copy_color_blobs(crtc_state);
}
static void
intel_crtc_copy_uapi_to_hw_state(struct intel_crtc_state *crtc_state)
intel_crtc_copy_uapi_to_hw_state(struct intel_atomic_state *state,
				 struct intel_crtc_state *crtc_state)
{
	crtc_state->hw.enable = crtc_state->uapi.enable;
	crtc_state->hw.active = crtc_state->uapi.active;
	crtc_state->hw.mode = crtc_state->uapi.mode;
	crtc_state->hw.adjusted_mode = crtc_state->uapi.adjusted_mode;
	crtc_state->hw.scaling_filter = crtc_state->uapi.scaling_filter;
	intel_crtc_copy_uapi_to_hw_state_nomodeset(crtc_state);
	intel_crtc_copy_uapi_to_hw_state_nomodeset(state, crtc_state);
}
static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state)
@@ -13454,7 +13457,8 @@ static void intel_crtc_copy_hw_to_uapi_state(struct intel_crtc_state *crtc_state
}
static int
intel_crtc_prepare_cleared_state(struct intel_crtc_state *crtc_state)
intel_crtc_prepare_cleared_state(struct intel_atomic_state *state,
				 struct intel_crtc_state *crtc_state)
{
	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -13486,16 +13490,16 @@ intel_crtc_prepare_cleared_state(struct intel_crtc_state *crtc_state)
	memcpy(crtc_state, saved_state, sizeof(*crtc_state));
	kfree(saved_state);
	intel_crtc_copy_uapi_to_hw_state(crtc_state);
	intel_crtc_copy_uapi_to_hw_state(state, crtc_state);
	return 0;
}
static int
intel_modeset_pipe_config(struct intel_crtc_state *pipe_config)
intel_modeset_pipe_config(struct intel_atomic_state *state,
			  struct intel_crtc_state *pipe_config)
{
	struct drm_crtc *crtc = pipe_config->uapi.crtc;
	struct drm_atomic_state *state = pipe_config->uapi.state;
	struct drm_i915_private *i915 = to_i915(pipe_config->uapi.crtc->dev);
	struct drm_connector *connector;
	struct drm_connector_state *connector_state;
@@ -13537,7 +13541,7 @@ intel_modeset_pipe_config(struct intel_crtc_state *pipe_config)
			       &pipe_config->pipe_src_w,
			       &pipe_config->pipe_src_h);
	for_each_new_connector_in_state(state, connector, connector_state, i) {
	for_each_new_connector_in_state(&state->base, connector, connector_state, i) {
		struct intel_encoder *encoder =
			to_intel_encoder(connector_state->best_encoder);
@@ -13575,7 +13579,7 @@ encoder_retry:
	 * adjust it according to limitations or connector properties, and also
	 * a chance to reject the mode entirely.
	 */
	for_each_new_connector_in_state(state, connector, connector_state, i) {
	for_each_new_connector_in_state(&state->base, connector, connector_state, i) {
		struct intel_encoder *encoder =
			to_intel_encoder(connector_state->best_encoder);
@@ -15196,19 +15200,19 @@ static int intel_atomic_check(struct drm_device *dev,
					    new_crtc_state, i) {
		if (!needs_modeset(new_crtc_state)) {
			/* Light copy */
			intel_crtc_copy_uapi_to_hw_state_nomodeset(new_crtc_state);
			intel_crtc_copy_uapi_to_hw_state_nomodeset(state, new_crtc_state);
			continue;
		}
		ret = intel_crtc_prepare_cleared_state(new_crtc_state);
		ret = intel_crtc_prepare_cleared_state(state, new_crtc_state);
		if (ret)
			goto fail;
		if (!new_crtc_state->hw.enable)
			continue;
		ret = intel_modeset_pipe_config(new_crtc_state);
		ret = intel_modeset_pipe_config(state, new_crtc_state);
		if (ret)
			goto fail;
	}