Re: [PATCH 2/5] remoteproc: core: Add rproc OF look-up functions

From: Bjorn Andersson
Date: Wed Jul 13 2016 - 15:11:48 EST


On Thu 05 May 06:29 PDT 2016, Lee Jones wrote:

Lee,

I ran into this topic again while looking into some unrelated things.

> diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
> +struct rproc *of_rproc_byindex(struct device_node *np, int index)
> +{
> + struct rproc *rproc;
> + struct device_node *rproc_node;
> + struct platform_device *pdev;
> + struct klist_iter i;
> +
> + if (index < 0)
> + return ERR_PTR(-EINVAL);
> +
> + rproc_node = of_parse_phandle(np, "rprocs", index);
> + if (!rproc_node)

As I stated before I would like for you to use the existing rproc_list,
as done in rproc_get_by_phandle() today.

But as you resend this patch, could you please make this check fallback
to also checking for "ti,rproc", then simply drop the existing
rproc_get_by_phandle() and change the call to
of_rproc_byindex(dev->of_node, 0) in wkup_m3_ipc.c?

That way we're backwards compatible with the TI wakeup M3, without
having to maintain the then non-standard generic rproc phandle resolver.

> + return ERR_PTR(-ENODEV);
> +
> + pdev = of_find_device_by_node(rproc_node);
> + if (!pdev)
> + return ERR_PTR(-ENODEV);
> +
> + klist_iter_init(&rprocs, &i);
> + while ((rproc = next_rproc(&i)) != NULL)
> + if (rproc->dev.parent == &pdev->dev)
> + break;
> + klist_iter_exit(&i);
> +
> + return rproc;
> +}
> +EXPORT_SYMBOL(of_rproc_byindex);

Regards,
Bjorn