Hey Ben,

Split mode is still not functional in this patch series (as was the case
with the last few revisions).

Before sending out the next revision, can you _please_ ensure you're
testing all supported configurations?

On Thu, Sep 17, 2020 at 12:43:41PM -0700, Ben Levinsky wrote:
> +/**
> + * RPU core configuration
> + */
> +static enum rpu_oper_mode rpu_mode;
> +

<.. snip ..>

> +static int zynqmp_r5_remoteproc_probe(struct platform_device *pdev)
> +{
> +     int ret, i = 0;
> +     u32 lockstep_mode;
> +     struct device *dev = &pdev->dev;
> +     struct device_node *nc;
> +
> +     ret = of_property_read_u32(dev->of_node,
> +                                "lockstep-mode",
> +                                &lockstep_mode);
> +     if (ret < 0) {
> +             return ret;
> +     } else if (lockstep_mode != PM_RPU_MODE_LOCKSTEP &&
> +         lockstep_mode != PM_RPU_MODE_SPLIT) {
> +             dev_err(dev,
> +                     "Invalid lockstep-mode %x in %pOF\n",
> +                     lockstep_mode, dev->of_node);
> +             return -EINVAL;
> +     }
> +
> +     rpu_mode = lockstep_mode;
> +
> +     dev_dbg(dev, "RPU configuration: %s\n",
> +             lockstep_mode ? "lockstep" : "split");

The binding documents lockstep-mode as:

> +  lockstep-mode:
> +    description:
> +      R5 core configuration (split is 0 or lock-step and 1)
> +    maxItems: 1

(Which needs to be reworded, but it looks like the intent was "split is
0 and lock-step is 1")

However, rpu_oper_mode is defined as:

> +enum rpu_oper_mode {
> +       PM_RPU_MODE_LOCKSTEP = 0,
> +       PM_RPU_MODE_SPLIT = 1,
> +};

so the assignment "rpu_mode = lockstep_mode" is incorrect.

- Michael

Reply via email to