From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B9DD13EC6A9 for ; Mon, 24 Aug 2026 07:06:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787555169; cv=none; b=C4K5duJzKSCSKoSoA1YiWZ/xQyNP29LTqNQ2JgKQvGhn3rgBQNSz96Jd9QG4Dmave7dYQjK9UXJ7pAwG673qpXCnJLf1PV5ZCIs/7AxSXhFHoqiBlyswuofGnqdMpVwaFic/Nkm5I9FeBLkVo2rZkbfT3cQEf92tutJVsOCggNE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787555169; c=relaxed/simple; bh=fFbBdZsBn9cYbR38sV1mk2Del8rxzLUumOQEDYuzHUQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mXlb1R+zeIbdGw1BV4TLCTMeuPIYw9IDKoWeqEKFaQDLN7gM3IFfCe809Bv5+2e3IG49oLTuI+JLA1Y7QVlutdq1JQqFrLc6uzvfKrFbUKi5ZF2tsv0wPDthBebKH4SSH4AocoacBS2mw3qc6DSWMYWyCYbOxvuUwIxhQAn/4aA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SVb73bNJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=atEN52uS; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SVb73bNJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="atEN52uS" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67O5QxCx2041216 for ; Mon, 24 Aug 2026 07:06:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= G8PGqfABGUV1c9BbZPowg1NQDNpEwLnOTxCBQoBl8Uw=; b=SVb73bNJdegVvLfs LhG9ra4PJbsTkynGUShSV674zHzovCqAB87jZspJBVe0GKGmLXt8C2fMtP0eujAD Qv5iZr8xntMuJjAuy2Mvs4+VYl02dxNbay54Z8Ks1+9h7IqN4iFmeyCUxNgx0GkO E2iZIwOD+6n6M0e6kpqL/UooJCyZxWDudW2BLLatCwEyUt4vRvwHOBFewoZso3hV cqu9qURLrtBkwK9B9uZOiG6d3wF5BfujOg+Ip/dXiC/Dbc49YjOla9iz66PhqCxD RYSMaGfP0iSCMF1YZolFTUSLn7pS1xrdi76TiDarr0zWNLZIPALSfMYh4WygZMH1 2uR6Rg== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g88k7hbbe-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 24 Aug 2026 07:06:06 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-84e4ef9a74aso2027164b3a.1 for ; Mon, 24 Aug 2026 00:06:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787555163; x=1788159963; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=G8PGqfABGUV1c9BbZPowg1NQDNpEwLnOTxCBQoBl8Uw=; b=atEN52uSoirGs5uZ+3QLb01PFC7x4V76BusrZNINDYS2PFrqcJ7Eb+jhggGIgYsN5C F+TNB7o3P56uHg0MFwTmhqoF2SoghAzTic7NBKxp471Az7ta3boVefIbFknrUWLlGHsw +WEUmLqJFAKTBEh2PSDp1Y16r0v+nyiLse9KJRlB5W8YpBTm+W4Lh4oi48QXC2c4s7Ay 6OCiTaoV20yN5wKgI2YB2gbE5tLZUhQKZdqxTrxPKt/GrQ3t6BN72dVKOg/fdjWsIjNH iFVHR15LRCCiIQOo9bYDQrE40t0pszO8S0B5jgouZsLf7o/raQQhiXZx7rH29Aod7d0l fJ9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787555163; x=1788159963; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=G8PGqfABGUV1c9BbZPowg1NQDNpEwLnOTxCBQoBl8Uw=; b=k6/iCDevu6JE3bKGBMNQfv4XCBv69gGip+eNkbLPYIsvmUUBo8ImCOotaiNWjI+unM O8Ibig9R5e9uKXtz8NgiCPNOX6s1OR7CIpchqyX33sEbnvXzGesiWDkHU/bW+yebT8Uk EoLOXKJfESlB+my5wvO/wfZ0wfWKhU+o4PZflGbDsxRx8LLpXqRgUhimUpWctgEttat0 nlcogWXVLof5oaPdcjDBN5KgqoD3f9q1N4Rk3IngfJEctpDQpLocSSXb47IbDFoAnml7 HleIefAZS0VbT/FNXSiFionxmnP03ady7OXZLSZZEYeptrdoawl3g+3xvwlZyyu3tFmm Vyig== X-Forwarded-Encrypted: i=1; AHgh+RoaWg01odTy1wUZ337W7v3skGL0FkTt2JoqlPBWO+7GZrfCDDjwghwqx4n5VR7XclMASA5zXFzUbh+pZVY=@vger.kernel.org X-Gm-Message-State: AFuF++mbNmaQREltYhyXTqU+Gh//M2azIKVzjs6U5KNVNt1DlCwhFh+o PHj/lTxCttk13ab2q4HuYRp8XbSfkfmR278buVarQLPgLQ1UyWlSlL+mEfBCbRaKLNJhGq5yQnB mJqRM2W37LT7GBjG/esMp2DeYE4YKlSPBZjh0vQg00rE+wJ7V45q8RO5EgDdwR5Nr3cM= X-Gm-Gg: AR+sD10EWeiQfxVBEE9tcOhzVzM5CVMOsrktQNJ38uT7aR+hpOrLaFeq108kwpPe87P 4nDN6O3Ckjnq773sbe8IDEDxhsRAm9afQegVo4Axda8yYn0INIL3H2HpKPrgC6P8S55+KWy3C0s 90guar2zJUK84RuqHaGX7ICvje1rLqWTDBkkUZFBeU/9/KPiixQDbiWrM7Tl07czY5vFdoOn30d GMXOu8C25y30N+3LhgWyNrE2YYTykNrll6PHAO+W2xBbjkFYVz5+ZatzssErqk1uIDKCnkiJUj0 MUsOFk/p7tiCcOVNWXpFLf2gRFRI8C7bdCECZFC9qTjkGZDWVMMLEM3xkLezVLU0gsTpG1jdpSw m8hEiRjAoOoWOM7TN1SdOKC0SnIp8765YXRq5EiwOGVDd5zMlGsoIMRY= X-Received: by 2002:a05:6a00:348b:b0:848:4424:2b8e with SMTP id d2e1a72fcca58-851f9a8fb96mr41712162b3a.3.1787555163557; Mon, 24 Aug 2026 00:06:03 -0700 (PDT) X-Received: by 2002:a05:6a00:348b:b0:848:4424:2b8e with SMTP id d2e1a72fcca58-851f9a8fb96mr41712115b3a.3.1787555163244; Mon, 24 Aug 2026 00:06:03 -0700 (PDT) Received: from hu-chunkaid-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8520f149ef3sm1642178b3a.41.2026.08.24.00.06.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Aug 2026 00:06:02 -0700 (PDT) From: Chunkai Deng Date: Mon, 24 Aug 2026 00:05:54 -0700 Subject: [PATCH v2 2/2] rpmsg: glink: Request the RX interrupt already enabled Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260824-rpmsg-glink-split-protocol-start-v2-2-362d7c233f66@oss.qualcomm.com> References: <20260824-rpmsg-glink-split-protocol-start-v2-0-362d7c233f66@oss.qualcomm.com> In-Reply-To: <20260824-rpmsg-glink-split-protocol-start-v2-0-362d7c233f66@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier Cc: Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, chris.lew@oss.qualcomm.com, tony.truong@oss.qualcomm.com, tao.zhang1@oss.qualcomm.com, peter.chen@oss.qualcomm.com, Chunkai Deng X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787555157; l=3818; i=chunkai.deng@oss.qualcomm.com; s=20260604; h=from:subject:message-id; bh=fFbBdZsBn9cYbR38sV1mk2Del8rxzLUumOQEDYuzHUQ=; b=5z5pW4rjQaHMBrdo6p5ssrK1OewbqZ1Mrgw+rWaYrun3losyapT8VYc1DKhFckVRHJKONFJtf CCM7Uo3pIFUDjxpEt+LMjyagPqVD0Ukn+/2TkrDxY9Pf7pLjq9M3OeG X-Developer-Key: i=chunkai.deng@oss.qualcomm.com; a=ed25519; pk=wWxCpsJRKQeVRzpZ8GLRnUX6ozLMowqE3hiz/j+j9O8= X-Authority-Analysis: v=2.4 cv=b4iCJNGx c=1 sm=1 tr=0 ts=6a8bed5e cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=ubEyju5v012Ajf4tItQA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODI0MDA2MCBTYWx0ZWRfX1sE8Cvd4evAp kyj2QD2+EOHDqDmz+c70CoFbBA46UF590iITN4/Ydmi1UnqaGGsHtOdcL42B8kt6yMFyQV9NJL9 0qEHOc4c7s9KnyBYeBTPp5Fs1dp7T+c= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI0MDA2MCBTYWx0ZWRfX3YIlTxKKP1nF +LtOiy+zFObRmky54yi+qPtIH7w0NxUmxRpcp/uBuasD698LA+B0+icn/zrPW1Mx2jdTpUSCnzE SEcAjsLjRHew2nEo7BI23LlwJYCki8DFxLofiognebVCKvzYHpcbnt0TLIhWXtr3J61D25B0Hk+ WH9Y+HtbILhxN5X0TliT2zD3034hOAQFmLAScP0LKNR6kSCYTxVKtWQNDHJUHattWi2nZgDa31k GnqrV1sZmURFzbK4OnaH/KlrLA7X6/QuNMuBgiFekD4vu4Yj2JMGFk3gOOCSsx34eIpuchrk3ae Sy5TRXR6q8+/7wY0CBbvpbH9QhSAbh1PYT0LO6qsPNna3YSBguyIsQA3+A6N2jiX2yzknxzg2PK UIu5OakxWXjCi1SlAq1nBzJF9KZA2rtuJnmcItEN/AuPajo1r+HezXcq3f6JmEHFhYDJRtNHQOz M6WZYHOZqENAfmt0kHA== X-Proofpoint-ORIG-GUID: jk0KHzicN1AxIRnhK5xKL-o2Jutipv4B X-Proofpoint-GUID: jk0KHzicN1AxIRnhK5xKL-o2Jutipv4B X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-24_02,2026-08-21_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 priorityscore=1501 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608240060 The receive interrupt is requested masked early in probe and enabled further down, once the glink instance has been stored in the transport. Now that the version command is no longer sent from qcom_glink_native_probe(), nothing needs to happen between those two points. Request the interrupt where it used to be enabled, and drop IRQF_NO_AUTOEN along with the enable_irq() call. The RPM error path becomes a set of labels, the way SMEM already unwinds. Signed-off-by: Chunkai Deng Assisted-by: Claude:claude-opus-5 --- drivers/rpmsg/qcom_glink_rpm.c | 34 ++++++++++++++++++---------------- drivers/rpmsg/qcom_glink_smem.c | 19 +++++++++---------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/drivers/rpmsg/qcom_glink_rpm.c b/drivers/rpmsg/qcom_glink_rpm.c index 34f18c3e58c8..a85d78f8283e 100644 --- a/drivers/rpmsg/qcom_glink_rpm.c +++ b/drivers/rpmsg/qcom_glink_rpm.c @@ -316,15 +316,6 @@ static int glink_rpm_probe(struct platform_device *pdev) if (ret) return ret; - rpm->irq = of_irq_get(dev->of_node, 0); - ret = devm_request_irq(dev, rpm->irq, qcom_glink_rpm_intr, - IRQF_NO_SUSPEND | IRQF_NO_AUTOEN, - "glink-rpm", rpm); - if (ret) { - dev_err(dev, "failed to request IRQ\n"); - return ret; - } - rpm->mbox_client.dev = dev; rpm->mbox_client.knows_txdone = true; rpm->mbox_chan = mbox_request_channel(&rpm->mbox_client, 0); @@ -356,17 +347,28 @@ static int glink_rpm_probe(struct platform_device *pdev) platform_set_drvdata(pdev, rpm); - enable_irq(rpm->irq); - - ret = qcom_glink_native_start(glink); + rpm->irq = of_irq_get(dev->of_node, 0); + ret = devm_request_irq(dev, rpm->irq, qcom_glink_rpm_intr, + IRQF_NO_SUSPEND, "glink-rpm", rpm); if (ret) { - disable_irq(rpm->irq); - qcom_glink_native_remove(glink); - mbox_free_channel(rpm->mbox_chan); - return ret; + dev_err(dev, "failed to request IRQ\n"); + goto err_glink_remove; } + ret = qcom_glink_native_start(glink); + if (ret) + goto err_disable_irq; + return 0; + +err_disable_irq: + disable_irq(rpm->irq); + +err_glink_remove: + qcom_glink_native_remove(glink); + mbox_free_channel(rpm->mbox_chan); + + return ret; } static void glink_rpm_remove(struct platform_device *pdev) diff --git a/drivers/rpmsg/qcom_glink_smem.c b/drivers/rpmsg/qcom_glink_smem.c index 28f6cfda6352..2d6fa2d3a99b 100644 --- a/drivers/rpmsg/qcom_glink_smem.c +++ b/drivers/rpmsg/qcom_glink_smem.c @@ -304,15 +304,6 @@ struct qcom_glink_smem *qcom_glink_smem_register(struct device *parent, goto err_put_dev; } - smem->irq = of_irq_get(smem->dev.of_node, 0); - ret = devm_request_irq(&smem->dev, smem->irq, qcom_glink_smem_intr, - IRQF_NO_SUSPEND | IRQF_NO_AUTOEN, - "glink-smem", smem); - if (ret) { - dev_err(&smem->dev, "failed to request IRQ\n"); - goto err_put_dev; - } - smem->mbox_client.dev = &smem->dev; smem->mbox_client.knows_txdone = true; smem->mbox_chan = mbox_request_channel(&smem->mbox_client, 0); @@ -346,7 +337,13 @@ struct qcom_glink_smem *qcom_glink_smem_register(struct device *parent, smem->glink = glink; - enable_irq(smem->irq); + smem->irq = of_irq_get(smem->dev.of_node, 0); + ret = devm_request_irq(&smem->dev, smem->irq, qcom_glink_smem_intr, + IRQF_NO_SUSPEND, "glink-smem", smem); + if (ret) { + dev_err(&smem->dev, "failed to request IRQ\n"); + goto err_glink_remove; + } ret = qcom_glink_native_start(glink); if (ret) @@ -356,6 +353,8 @@ struct qcom_glink_smem *qcom_glink_smem_register(struct device *parent, err_disable_irq: disable_irq(smem->irq); + +err_glink_remove: qcom_glink_native_remove(glink); err_free_mbox: -- 2.43.0