Message ID | 20230116151906.549384-2-devarsht@ti.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add single core R5F IPC for AM62 SoC family | expand |
On Mon, Jan 16, 2023 at 08:49:04PM +0530, Devarsh Thakkar wrote: > The config PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE > is set only when cluster mode is set to > CLUSTER_MODE_SINGLECPU and cluster mode > is already configured before setting this config. > > So directly check for cluster mode instead of checking > soc_data->single_cpu_mode first and then checking > cluster mode. > > Signed-off-by: Devarsh Thakkar <devarsht@ti.com> > --- > V6: No change > --- > drivers/remoteproc/ti_k3_r5_remoteproc.c | 17 ++++++++--------- > 1 file changed, 8 insertions(+), 9 deletions(-) > > diff --git a/drivers/remoteproc/ti_k3_r5_remoteproc.c b/drivers/remoteproc/ti_k3_r5_remoteproc.c > index 0481926c6975..036c9dc217f3 100644 > --- a/drivers/remoteproc/ti_k3_r5_remoteproc.c > +++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c > @@ -875,15 +875,14 @@ static int k3_r5_rproc_configure(struct k3_r5_rproc *kproc) > boot_vec = 0x0; > if (core == core0) { > clr_cfg = PROC_BOOT_CFG_FLAG_R5_TEINIT; > - if (cluster->soc_data->single_cpu_mode) { > - /* > - * Single-CPU configuration bit can only be configured > - * on Core0 and system firmware will NACK any requests > - * with the bit configured, so program it only on > - * permitted cores > - */ > - if (cluster->mode == CLUSTER_MODE_SINGLECPU) > - set_cfg = PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE; > + /* > + * Single-CPU configuration bit can only be configured > + * on Core0 and system firmware will NACK any requests > + * with the bit configured, so program it only on > + * permitted cores > + */ > + if (cluster->mode == CLUSTER_MODE_SINGLECPU) { > + set_cfg = PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE; This is exactly the kind of buggy situation I want to avoid by asking to use soc_data->single_cpu_mode only in probe(). > } else { > /* > * LockStep configuration bit is Read-only on Split-mode > -- > 2.34.1 >
diff --git a/drivers/remoteproc/ti_k3_r5_remoteproc.c b/drivers/remoteproc/ti_k3_r5_remoteproc.c index 0481926c6975..036c9dc217f3 100644 --- a/drivers/remoteproc/ti_k3_r5_remoteproc.c +++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c @@ -875,15 +875,14 @@ static int k3_r5_rproc_configure(struct k3_r5_rproc *kproc) boot_vec = 0x0; if (core == core0) { clr_cfg = PROC_BOOT_CFG_FLAG_R5_TEINIT; - if (cluster->soc_data->single_cpu_mode) { - /* - * Single-CPU configuration bit can only be configured - * on Core0 and system firmware will NACK any requests - * with the bit configured, so program it only on - * permitted cores - */ - if (cluster->mode == CLUSTER_MODE_SINGLECPU) - set_cfg = PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE; + /* + * Single-CPU configuration bit can only be configured + * on Core0 and system firmware will NACK any requests + * with the bit configured, so program it only on + * permitted cores + */ + if (cluster->mode == CLUSTER_MODE_SINGLECPU) { + set_cfg = PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE; } else { /* * LockStep configuration bit is Read-only on Split-mode
The config PROC_BOOT_CFG_FLAG_R5_SINGLE_CORE is set only when cluster mode is set to CLUSTER_MODE_SINGLECPU and cluster mode is already configured before setting this config. So directly check for cluster mode instead of checking soc_data->single_cpu_mode first and then checking cluster mode. Signed-off-by: Devarsh Thakkar <devarsht@ti.com> --- V6: No change --- drivers/remoteproc/ti_k3_r5_remoteproc.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-)