Quoting Li Zhengyu (2022-05-31 02:45:39) > (c->state) is u32, (enable) is bool. It returns false when > (c->state) > 1 and (enable) is true. Convert (c->state) to bool. > > Signed-off-by: Li Zhengyu <lizhengyu3@xxxxxxxxxx> Nice catch! It looks like it fixes an optimization, where we don't want to run through and check has_state_changed() if this clk is already enabled or disabled. But how does this ever happen? The clk framework already reference counts prepare/unprepare, so how can we get into this function when the condition would be true, after this patch? I think we can simply remove the if condition entirely. Do you agree? > --- > drivers/clk/qcom/clk-rpmh.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c > index aed907982344..851e127432a9 100644 > --- a/drivers/clk/qcom/clk-rpmh.c > +++ b/drivers/clk/qcom/clk-rpmh.c > @@ -196,7 +196,7 @@ static int clk_rpmh_aggregate_state_send_command(struct clk_rpmh *c, > int ret; > > /* Nothing required to be done if already off or on */ > - if (enable == c->state) > + if (enable == !!c->state) > return 0; > > c->state = enable ? c->valid_state_mask : 0;