Commit a6126e14 authored by Rodrigo Siqueira's avatar Rodrigo Siqueira Committed by Alex Deucher
Browse files

drm/amd/display: Add basic ODM description



Add kernel-doc to some of the ODM-related functions.

Tested-by: default avatarMark Broadworth <mark.broadworth@amd.com>
Reviewed-by: default avatarAurabindo Pillai <Aurabindo.Pillai@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 61708a47
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1454,6 +1454,22 @@ enum dc_status dcn20_remove_stream_from_ctx(struct dc *dc, struct dc_state *new_
	return result;
}

/**
 * dcn20_split_stream_for_odm - Check if stream can be splited for ODM
 *
 * @dc: DC object with resource pool info required for pipe split
 * @res_ctx: Persistent state of resources
 * @prev_odm_pipe: Reference to the previous ODM pipe
 * @next_odm_pipe: Reference to the next ODM pipe
 *
 * This function takes a logically active pipe and a logically free pipe and
 * halves all the scaling parameters that need to be halved while populating
 * the free pipe with the required resources and configuring the next/previous
 * ODM pipe pointers.
 *
 * Return:
 * Return true if split stream for ODM is possible, otherwise, return false.
 */
bool dcn20_split_stream_for_odm(
		const struct dc *dc,
		struct resource_context *res_ctx,
+3 −0
Original line number Diff line number Diff line
@@ -243,6 +243,9 @@ struct stream_encoder_funcs {
			uint32_t hubp_requestor_id,
			enum dynamic_metadata_mode dmdata_mode);

	/**
	 * @dp_set_odm_combine: Sets up DP stream encoder for ODM.
	 */
	void (*dp_set_odm_combine)(
		struct stream_encoder *enc,
		bool odm_combine);
+5 −0
Original line number Diff line number Diff line
@@ -301,6 +301,11 @@ struct timing_generator_funcs {
	void (*get_dsc_status)(struct timing_generator *optc,
					uint32_t *dsc_mode);
	void (*set_odm_bypass)(struct timing_generator *optc, const struct dc_crtc_timing *dc_crtc_timing);

	/**
	 * @set_odm_combine: Set up the ODM block to read from the correct
	 * OPP(s) and turn on/off ODM memory.
	 */
	void (*set_odm_combine)(struct timing_generator *optc, int *opp_id, int opp_cnt,
			struct dc_crtc_timing *timing);
	void (*set_h_timing_div_manual_mode)(struct timing_generator *optc, bool manual_mode);