Unverified Commit 18db1ff2 authored by Jacky Bai's avatar Jacky Bai Committed by Stephen Boyd
Browse files

clk: scmi: Add duty cycle ops only when duty cycle is supported



For some of the SCMI based platforms, the oem extended config may be
supported, but not for duty cycle purpose. Skip the duty cycle ops if
err return when trying to get duty cycle info.

Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
Reviewed-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 8f5ae30d
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -349,6 +349,8 @@ scmi_clk_ops_select(struct scmi_clk *sclk, bool atomic_capable,
		    unsigned int atomic_threshold_us,
		    const struct clk_ops **clk_ops_db, size_t db_size)
{
	int ret;
	u32 val;
	const struct scmi_clock_info *ci = sclk->info;
	unsigned int feats_key = 0;
	const struct clk_ops *ops;
@@ -370,8 +372,13 @@ scmi_clk_ops_select(struct scmi_clk *sclk, bool atomic_capable,
	if (!ci->parent_ctrl_forbidden)
		feats_key |= BIT(SCMI_CLK_PARENT_CTRL_SUPPORTED);

	if (ci->extended_config)
	if (ci->extended_config) {
		ret = scmi_proto_clk_ops->config_oem_get(sclk->ph, sclk->id,
						 SCMI_CLOCK_CFG_DUTY_CYCLE,
						 &val, NULL, false);
		if (!ret)
			feats_key |= BIT(SCMI_CLK_DUTY_CYCLE_SUPPORTED);
	}

	if (WARN_ON(feats_key >= db_size))
		return NULL;