On Fri, Nov 28, 2025 at 07:32:05PM -0600, Alexandru Gagniuc wrote:
> The "qcom,halt-regs" consists of a phandle reference followed by the
> three offsets within syscon for halt registers. Thus, we need to
> request 4 integers from of_property_read_variable_u32_array(), with
> the halt_reg ofsets at indexes 1, 2, and 3. Offset 0 is the phandle.
>
> With MAX_HALT_REG at 3, of_property_read_variable_u32_array() returns
> -EOVERFLOW, causing .probe() to fail.
>
> Increase MAX_HALT_REG to 4, and update the indexes accordingly.
>
Good catch, thanks
Fixes: 0af65b9b915e ("remoteproc: qcom: wcss: Add non pas wcss Q6 support for
QCS404")
Regards,
Bjorn
> Signed-off-by: Alexandru Gagniuc <[email protected]>
> ---
> drivers/remoteproc/qcom_q6v5_wcss.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/remoteproc/qcom_q6v5_wcss.c
> b/drivers/remoteproc/qcom_q6v5_wcss.c
> index 07c88623f5978..23ec87827d4f8 100644
> --- a/drivers/remoteproc/qcom_q6v5_wcss.c
> +++ b/drivers/remoteproc/qcom_q6v5_wcss.c
> @@ -85,7 +85,7 @@
> #define TCSR_WCSS_CLK_MASK 0x1F
> #define TCSR_WCSS_CLK_ENABLE 0x14
>
> -#define MAX_HALT_REG 3
> +#define MAX_HALT_REG 4
> enum {
> WCSS_IPQ8074,
> WCSS_QCS404,
> @@ -864,9 +864,9 @@ static int q6v5_wcss_init_mmio(struct q6v5_wcss *wcss,
> return -EINVAL;
> }
>
> - wcss->halt_q6 = halt_reg[0];
> - wcss->halt_wcss = halt_reg[1];
> - wcss->halt_nc = halt_reg[2];
> + wcss->halt_q6 = halt_reg[1];
> + wcss->halt_wcss = halt_reg[2];
> + wcss->halt_nc = halt_reg[3];
>
> return 0;
> }
> --
> 2.45.1
>