return true;
}
+unsigned int dc_override_memory_bandwidth_request(
+ struct dc *dc,
+ unsigned int bw_mbps)
+{
+ if (!dc->clk_mgr || !dc->clk_mgr->funcs)
+ return 0;
+
+ return dc->clk_mgr->funcs->override_memory_bandwidth_request(
+ dc->clk_mgr, bw_mbps * 1000) / 1000;
+}
+
enum update_v3_flow {
UPDATE_V3_FLOW_INVALID,
UPDATE_V3_FLOW_NO_NEW_CONTEXT_CONTEXT_FAST,
*/
bool dc_get_qos_info(struct dc *dc, struct dc_qos_info *info);
+/**
+ * dc_override_memory_bandwidth_request - Override the DCN nominal memory
+ * bandwidth request sent to PMFW, independent of the current display mode.
+ * For debug use only.
+ * @dc: DC instance
+ * @bw_mbps: requested bandwidth in MB/s; 0 clears the override
+ *
+ * Return: capped bandwidth value actually applied (MB/s)
+ */
+unsigned int dc_override_memory_bandwidth_request(
+ struct dc *dc,
+ unsigned int bw_mbps);
+
#endif /* DC_INTERFACE_H_ */
uint32_t (*set_smartmux_switch)(struct clk_mgr *clk_mgr, uint32_t pins_to_set);
unsigned int (*get_max_clock_khz)(struct clk_mgr *clk_mgr_base, enum clk_type clk_type);
+ /**
+ * override_memory_bandwidth_request - Override the DCN nominal memory
+ * bandwidth request sent to PMFW, independent of the current display
+ * mode. For debug use only.
+ * @clk_mgr: clock manager instance
+ * @bw_kbps: requested bandwidth in kbps; 0 clears the override
+ *
+ * Return: capped bandwidth value actually applied (kbps)
+ */
+ unsigned int (*override_memory_bandwidth_request)(
+ struct clk_mgr *clk_mgr,
+ unsigned int bw_kbps);
};
struct clk_mgr {
#include "dc.h"
#include "dml_top_soc_parameter_types.h"
+/* Forward declarations — callers that dereference these structs must include
+ * the full UTM model headers themselves. */
+struct utm_qos_model;
+struct utm_qos_model_dchub_v2;
+
struct soc_and_ip_translator_funcs {
- void (*get_soc_bb)(struct dml2_soc_bb *soc_bb, const struct dc *dc, const struct dml2_configuration_options *config);
+ void (*get_soc_bb)(
+ struct dml2_soc_bb *soc_bb,
+ const struct dc *dc,
+ const struct dml2_configuration_options *config);
void (*get_ip_caps)(struct dml2_ip_capabilities *dml_ip_caps);
+ /**
+ * get_utm_qos_model - Return the static UTM QoS model for this DCN
+ * generation. Caller provides storage for @qos_model and @dchub.
+ * @qos_model: output — populated with SoC bounding box and SOP table
+ * @dchub: output — populated with DCHUB client extension data
+ */
+ void (*get_utm_qos_model)(
+ struct utm_qos_model *qos_model,
+ struct utm_qos_model_dchub_v2 *dchub);
};
struct soc_and_ip_translator {