Messages in this thread | | | Subject | Re: [PATCH v2] clk: Fix falling back to legacy parent string matching | From | Stephen Boyd <> | Date | Fri, 16 Aug 2019 10:28:56 -0700 |
| |
Quoting Stephen Boyd (2019-08-13 14:41:47) > Calls to clk_core_get() will return ERR_PTR(-EINVAL) if we've started > migrating a clk driver to use the DT based style of specifying parents > but we haven't made any DT updates yet. This happens when we pass a > non-NULL value as the 'name' argument of of_parse_clkspec(). That > function returns -EINVAL in such a situation, instead of -ENOENT like we > expected. The return value comes back up to clk_core_fill_parent_index() > which proceeds to skip calling clk_core_lookup() because the error > pointer isn't equal to -ENOENT, it's -EINVAL. > > Furthermore, we blindly overwrite the error pointer returned by > clk_core_get() with NULL when there isn't a legacy .name member > specified in the parent map. This isn't too bad right now because we > don't really care to differentiate NULL from an error, but in the future > we should only try to do a legacy lookup if we know we might find > something. This way DT lookups that fail don't try to lookup based on > strings when there isn't any string to match, hiding the error from DT > parsing. > > Fix both these problems so that clk provider drivers can use the new > style of parent mapping without having to also update their DT at the > same time. This patch is based on an earlier patch from Taniya Das which > checked for -EINVAL in addition to -ENOENT return values from > clk_core_get(). > > Fixes: 601b6e93304a ("clk: Allow parents to be specified via clkspec index") > Cc: Taniya Das <tdas@codeaurora.org> > Cc: Jerome Brunet <jbrunet@baylibre.com> > Cc: Chen-Yu Tsai <wens@csie.org> > Reported-by: Taniya Das <tdas@codeaurora.org> > Signed-off-by: Stephen Boyd <sboyd@kernel.org> > ---
Applied to clk-fixes
| |