While this change was intended to fix a mistake in the code, of calling
the ERR_PTR macro but not making use of the result, it seems that
functionally platforms depend on the loop not existing here. The TI K3
families of platforms for example were broken by this commit.
This reverts commit
fe780310cfa8bf5a093894b5cd7fe85c6b02fd91.
Reported-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
struct sandbox_clk_priv {
bool probed;
- struct clk clk;
ulong rate[SANDBOX_CLK_ID_COUNT];
bool enabled[SANDBOX_CLK_ID_COUNT];
bool requested[SANDBOX_CLK_ID_COUNT];
if (ret) {
debug("%s(): could not get parent clock pointer, id %lu\n",
__func__, clk->id);
- return ERR_PTR(ret);
+ ERR_PTR(ret);
}
}
c = clk_set_default_get_by_id(&clk);
if (IS_ERR(c))
- continue;
+ return PTR_ERR(c);
ret = clk_set_rate(c, rates[index]);
#include <errno.h>
#include <malloc.h>
#include <asm/clk.h>
-#include <dm/device-internal.h>
#include <linux/clk-provider.h>
-static int sandbox_clk_of_to_plat(struct udevice *dev)
-{
- struct clk *clk;
- struct sandbox_clk_priv *priv = dev_get_priv(dev);
-
- clk = &priv->clk;
-
- /* FIXME: This is not allowed */
- dev_set_uclass_priv(dev, clk);
-
- clk->dev = dev;
- return 0;
-}
-
static ulong sandbox_clk_get_rate(struct clk *clk)
{
struct sandbox_clk_priv *priv = dev_get_priv(clk->dev);
if (id >= SANDBOX_CLK_ID_COUNT)
return -EINVAL;
- priv->clk.id = id;
priv->requested[id] = true;
return 0;
}
.name = "sandbox_clk",
.id = UCLASS_CLK,
.of_match = sandbox_clk_ids,
- .of_to_plat = sandbox_clk_of_to_plat,
.ops = &sandbox_clk_ops,
.probe = sandbox_clk_probe,
.priv_auto = sizeof(struct sandbox_clk_priv),
SANDBOX_CLK_TEST_ID_SPI));
ut_asserteq(0, sandbox_clk_test_get_rate(dev_test,
SANDBOX_CLK_TEST_ID_I2C));
- if (!CONFIG_IS_ENABLED(CLK_AUTO_ID))
- ut_asserteq(321, sandbox_clk_test_get_rate(dev_test,
- SANDBOX_CLK_TEST_ID_DEVM1));
+ ut_asserteq(321, sandbox_clk_test_get_rate(dev_test,
+ SANDBOX_CLK_TEST_ID_DEVM1));
ut_asserteq(0, sandbox_clk_test_get_rate(dev_test,
SANDBOX_CLK_TEST_ID_DEVM2));