[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c239bce2-4bef-4085-8a74-c6d7c863febf@quicinc.com>
Date: Tue, 21 Oct 2025 13:42:09 +0530
From: Deepak Kumar Singh <quic_deesin@...cinc.com>
To: Konrad Dybcio <konrad.dybcio@....qualcomm.com>,
Jingyi Wang
<jingyi.wang@....qualcomm.com>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>
CC: <linux-arm-msm@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
Chris Lew
<chris.lew@....qualcomm.com>
Subject: Re: [PATCH 1/2] soc: qcom: smp2p: Add irqchip state support
On 9/24/2025 8:20 PM, Konrad Dybcio wrote:
> On 9/24/25 6:18 AM, Jingyi Wang wrote:
>> From: Chris Lew <chris.lew@....qualcomm.com>
>>
>> A remoteproc booted during earlier boot stages such as UEFI or the
>> bootloader, may need to be attached to without restarting the remoteproc
>> hardware. To do this the remoteproc will need to check the ready and
>> handover states in smp2p without an interrupt notification.
>>
>> Add support for the .irq_get_irqchip_state callback so remoteproc can
>> read the current state of the fatal, ready and handover bits.
>>
>> Signed-off-by: Chris Lew <chris.lew@....qualcomm.com>
>> Co-developed-by: Jingyi Wang <jingyi.wang@....qualcomm.com>
>> Signed-off-by: Jingyi Wang <jingyi.wang@....qualcomm.com>
>> ---
>> drivers/soc/qcom/smp2p.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 55 insertions(+)
>>
>> diff --git a/drivers/soc/qcom/smp2p.c b/drivers/soc/qcom/smp2p.c
>> index cb515c2340c1..e2cfd9ec8875 100644
>> --- a/drivers/soc/qcom/smp2p.c
>> +++ b/drivers/soc/qcom/smp2p.c
>> @@ -222,6 +222,39 @@ static void qcom_smp2p_negotiate(struct qcom_smp2p *smp2p)
>> }
>> }
>>
>> +static void qcom_smp2p_start_in(struct qcom_smp2p *smp2p)
>> +{
>> + unsigned int smem_id = smp2p->smem_items[SMP2P_INBOUND];
>> + unsigned int pid = smp2p->remote_pid;
>> + char buf[SMP2P_MAX_ENTRY_NAME];
>> + struct smp2p_smem_item *in;
>> + struct smp2p_entry *entry;
>> + size_t size;
>> + int i;
>> +
>> + in = qcom_smem_get(pid, smem_id, &size);
>> + if (IS_ERR(in))
>> + return;
>> +
>> + smp2p->in = in;
>> +
>> + /* Check if version is initialized and set to v2 */
>> + if (in->version == 0)
>> + return;
>
> This doesn't seem to be fully in line with the comment
>
> Konrad
>
Hi Konard,
Can you please elaborate more on this?
in->version == 0 means remote has not initialized the version yet, so no
need of enumerating entries. For other case i.e in->version == 1 or 2,
in entries added by early booted remote has to be enumerated.
Thanks,
Deepak
Powered by blists - more mailing lists