Thread (7 messages) flat view 7 messages, 3 authors, 2021-06-28

Re: [PATCH v5 1/4] clk: zynqmp: Use firmware specific common clock flags

From: Stephen Boyd <sboyd@kernel.org>
Date: 2021-06-25 23:21:50
Also in: linux-clk, lkml

Quoting Rajan Vaja (2021-06-24 05:16:30)
quoted hunk ↗ jump to hunk
diff --git a/drivers/clk/zynqmp/clkc.c b/drivers/clk/zynqmp/clkc.c
index db8d0d7161ce..af06a195ec46 100644
--- a/drivers/clk/zynqmp/clkc.c
+++ b/drivers/clk/zynqmp/clkc.c
@@ -271,6 +271,34 @@ static int zynqmp_pm_clock_get_topology(u32 clock_id, u32 index,
        return ret;
 }
 
+unsigned long zynqmp_clk_map_common_ccf_flags(const u32 zynqmp_flag)
+{
+       unsigned long ccf_flag = 0;
+
+       if (zynqmp_flag & ZYNQMP_CLK_SET_RATE_GATE)
+               ccf_flag |= CLK_SET_RATE_GATE;
+       if (zynqmp_flag & ZYNQMP_CLK_SET_PARENT_GATE)
+               ccf_flag |= CLK_SET_PARENT_GATE;
+       if (zynqmp_flag & ZYNQMP_CLK_SET_RATE_PARENT)
+               ccf_flag |= CLK_SET_RATE_PARENT;
+       if (zynqmp_flag & ZYNQMP_CLK_IGNORE_UNUSED)
+               ccf_flag |= CLK_IGNORE_UNUSED;
+       if (zynqmp_flag & ZYNQMP_CLK_GET_RATE_NOCACHE)
+               ccf_flag |= CLK_GET_RATE_NOCACHE;
Does the firmware really use all these flags? Ideally we get rid of the
above two.
+       if (zynqmp_flag & ZYNQMP_CLK_SET_RATE_NO_REPARENT)
+               ccf_flag |= CLK_SET_RATE_NO_REPARENT;
+       if (zynqmp_flag & ZYNQMP_CLK_GET_ACCURACY_NOCACHE)
+               ccf_flag |= CLK_GET_ACCURACY_NOCACHE;
+       if (zynqmp_flag & ZYNQMP_CLK_RECALC_NEW_RATES)
+               ccf_flag |= CLK_RECALC_NEW_RATES;
And this one.
+       if (zynqmp_flag & ZYNQMP_CLK_SET_RATE_UNGATE)
+               ccf_flag |= CLK_SET_RATE_UNGATE;
+       if (zynqmp_flag & ZYNQMP_CLK_IS_CRITICAL)
+               ccf_flag |= CLK_IS_CRITICAL;
And this one.

I worry that supporting all these flags will mean we can never get rid
of them. And we currently don't support setting critical via DT, which
is essentially another firmware interface like this one.
+
+       return ccf_flag;
+}
+
 /**
  * zynqmp_clk_register_fixed_factor() - Register fixed factor with the
  *                                     clock framework
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help