Commit 643b06e2 authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/mst: change return value of mst_stream_find_vcpi_slots_for_bpp()



The callers of mst_stream_find_vcpi_slots_for_bpp() don't need the
returned slots for anything. On the contrary, they need to jump through
hoops to just distinguish between success and failure. Just return 0
instead of slots from mst_stream_find_vcpi_slots_for_bpp() for success,
and simplify the callers.

There's a pointless ret local variable that we can drop in the process.

Reviewed-by: default avatarImre Deak <imre.deak@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/7b3671a548c893b1bb62151d41f90bb8ce842ccc.1735912293.git.jani.nikula@intel.com
parent d7cde2e6
Loading
Loading
Loading
Loading
+18 −34
Original line number Diff line number Diff line
@@ -226,7 +226,6 @@ static int mst_stream_find_vcpi_slots_for_bpp(struct intel_dp *intel_dp,
	int bpp, slots = -EINVAL;
	int dsc_slice_count = 0;
	int max_dpt_bpp;
	int ret = 0;

	mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst_mgr);
	if (IS_ERR(mst_state))
@@ -340,23 +339,21 @@ static int mst_stream_find_vcpi_slots_for_bpp(struct intel_dp *intel_dp,
		}
	}

	/* We failed to find a proper bpp/timeslots, return error */
	if (ret)
		slots = ret;

	if (slots < 0) {
		drm_dbg_kms(display->drm, "failed finding vcpi slots:%d\n",
			    slots);
	} else {
		return slots;
	}

	if (!dsc)
		crtc_state->pipe_bpp = bpp;
	else
		crtc_state->dsc.compressed_bpp_x16 = fxp_q4_from_int(bpp);

	drm_dbg_kms(display->drm, "Got %d slots for pipe bpp %d dsc %d\n",
		    slots, bpp, dsc);
	}

	return slots;
	return 0;
}

static int mst_stream_compute_link_config(struct intel_dp *intel_dp,
@@ -364,22 +361,15 @@ static int mst_stream_compute_link_config(struct intel_dp *intel_dp,
					  struct drm_connector_state *conn_state,
					  struct link_config_limits *limits)
{
	int slots = -EINVAL;

	/*
	 * FIXME: allocate the BW according to link_bpp, which in the case of
	 * YUV420 is only half of the pipe bpp value.
	 */
	slots = mst_stream_find_vcpi_slots_for_bpp(intel_dp, crtc_state,
	return mst_stream_find_vcpi_slots_for_bpp(intel_dp, crtc_state,
						  fxp_q4_to_int(limits->link.max_bpp_x16),
						  fxp_q4_to_int(limits->link.min_bpp_x16),
						  limits,
						  conn_state, 2 * 3, false);

	if (slots < 0)
		return slots;

	return 0;
}

static int mst_stream_dsc_compute_link_config(struct intel_dp *intel_dp,
@@ -389,7 +379,6 @@ static int mst_stream_dsc_compute_link_config(struct intel_dp *intel_dp,
{
	struct intel_display *display = to_intel_display(intel_dp);
	struct intel_connector *connector = to_intel_connector(conn_state->connector);
	int slots = -EINVAL;
	int i, num_bpc;
	u8 dsc_bpc[3] = {};
	int min_bpp, max_bpp, sink_min_bpp, sink_max_bpp;
@@ -437,14 +426,9 @@ static int mst_stream_dsc_compute_link_config(struct intel_dp *intel_dp,
	min_compressed_bpp = intel_dp_dsc_nearest_valid_bpp(display, min_compressed_bpp,
							    crtc_state->pipe_bpp);

	slots = mst_stream_find_vcpi_slots_for_bpp(intel_dp, crtc_state, max_compressed_bpp,
	return mst_stream_find_vcpi_slots_for_bpp(intel_dp, crtc_state, max_compressed_bpp,
						  min_compressed_bpp, limits,
						  conn_state, 1, true);

	if (slots < 0)
		return slots;

	return 0;
}

static int mst_stream_update_slots(struct intel_dp *intel_dp,