From nobody Fri Apr 3 17:33:20 2026 Received: from mx0b-00128a01.pphosted.com (mx0a-00128a01.pphosted.com [148.163.135.77]) (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 541903AB277 for ; Mon, 23 Mar 2026 16:12:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.135.77 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774282327; cv=none; b=iRGGXzsB1bJgTv+91MFk+6vN6hg47hlg8AAIyotCNFzomzb9hsaFFjDmh8qLdXvU0iFi7v1DNcF8vHi0laKNo8VdcKOtW9SZT/Z142QHfKFCvf4/VSaxlixzOHHWsmcz65Uuoi6Cfa8FIMpS6RLSLGgEXbeL4Zfnmcwl5fKHIxs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774282327; c=relaxed/simple; bh=ccXa3/KY5qLJj4TgciT2buI5BrqCzsF3ggv3lfciV/U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=OkVAzcb/Fq9maVTW1AP7fdmD2N9eiBdkiaQmJQuA4pWBMWoUfUVskN5dxNmHq/x+z2BHpiNxNjcCf76Gid3SGmNOIb9Zskr+hj2tl1Y/15xdn2fH9Ea4xzH3o54804sLnCnG8ZRP8EplUxpcaMIJQQU2eVNPIZ4APIOpJQ5dt3w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com; spf=pass smtp.mailfrom=analog.com; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b=xdZi6Yk2; arc=none smtp.client-ip=148.163.135.77 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=analog.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=analog.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=analog.com header.i=@analog.com header.b="xdZi6Yk2" Received: from pps.filterd (m0375855.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NBE4HM4072644; Mon, 23 Mar 2026 12:11:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=DKIM; bh=4fpDi uqkRGna7MMzVmnbYT3i/AqwEU5qiAradGGvOJ4=; b=xdZi6Yk2bOWS3sLpgteu0 lxWJ6aGuM9F1rSBoZ51so3ef3eAx5bg9ca5VOJdRS1OHZ/dglgUbT9i+2++86syF hFfNPhRU/J/+idSNgcQaAjj3yYztdH/JN54Fpehajn9vT94jxR9FfDzW22raAkhi ZI4CuWQsIoDkpcE4Rc4+nL7APnMR+qDePYJT1Itq8M65JYuErxnhSdwbHBgE2UNH 65Ln6wL2Gc4IHAf8Xydi6hXrfFmqegnibfWHFQZfYKVLh3NEJNTsN7HEer7jetay iFVn3R5+IgbVJg1VFjuJ149bGA2aXYGWWrJn3BW5h3eAgE3gwjE9Tsn3m7Pxrr6S g== Received: from nwd2mta4.analog.com ([137.71.173.58]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 4d2pxqbvd9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 23 Mar 2026 12:11:51 -0400 (EDT) Received: from ASHBMBX9.ad.analog.com (ASHBMBX9.ad.analog.com [10.64.17.10]) by nwd2mta4.analog.com (8.14.7/8.14.7) with ESMTP id 62NGBoNf044706 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 23 Mar 2026 12:11:50 -0400 Received: from ASHBMBX8.ad.analog.com (10.64.17.5) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.37; Mon, 23 Mar 2026 12:11:50 -0400 Received: from zeus.spd.analog.com (10.66.68.11) by ashbmbx8.ad.analog.com (10.64.17.5) with Microsoft SMTP Server id 15.2.1748.37 via Frontend Transport; Mon, 23 Mar 2026 12:11:50 -0400 Received: from HYB-DlYm71t3hSl.ad.analog.com (HYB-DlYm71t3hSl.ad.analog.com [10.44.3.69] (may be forged)) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 62NGBYns019356; Mon, 23 Mar 2026 12:11:47 -0400 From: Jorge Marques Date: Mon, 23 Mar 2026 17:11:30 +0100 Subject: [PATCH v3 2/5] i3c: master: Move entdaa error suppression 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: quoted-printable Message-ID: <20260323-ad4062-positive-error-fix-v3-2-30bdc68004be@analog.com> References: <20260323-ad4062-positive-error-fix-v3-0-30bdc68004be@analog.com> In-Reply-To: <20260323-ad4062-positive-error-fix-v3-0-30bdc68004be@analog.com> To: Alexandre Belloni , Frank Li , =?utf-8?q?Przemys=C5=82aw_Gaj?= CC: , , Dan Carpenter , Jonathan Cameron , Jorge Marques , Adrian Hunter X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774282294; l=2469; i=jorge.marques@analog.com; s=20250303; h=from:subject:message-id; bh=ccXa3/KY5qLJj4TgciT2buI5BrqCzsF3ggv3lfciV/U=; b=zoTi5Gh9i4O3Wn29I460AgFHWtJ2dqfp79dnPBmgGVR1jTGeaAVCqSrrAZOpUZFlfj4FLdZqa rP3uRUYBOtQADmoeatxOXKzUDixgxK7Vn+j4oZa+7EIjF0NBBjFj8e9 X-Developer-Key: i=jorge.marques@analog.com; a=ed25519; pk=NUR1IZZMH0Da3QbJ2tBSznSPVfRpuoWdhBzKGSpAdbg= X-ADIRuleOP-NewSCL: Rule Triggered X-Authority-Analysis: v=2.4 cv=ALPFdfBd c=1 sm=1 tr=0 ts=69c16647 cx=c_pps a=3WNzaoukacrqR9RwcOSAdA==:117 a=3WNzaoukacrqR9RwcOSAdA==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=VkNPw1HP01LnGYTKEx00:22 a=0sLvza09kfJOxVLZPwjg:22 a=N--XFCr6TIEc_64PeIT2:22 a=8AirrxEcAAAA:8 a=QyXUC8HyAAAA:8 a=gAnH3GRIAAAA:8 a=lW4FyyzJGg7ItnWL1goA:9 a=QEXdDO2ut3YA:10 a=ST-jHhOKWsTCqRlWije3:22 X-Proofpoint-ORIG-GUID: FKsn_9g92PWClqcxxAFE614kZpo-oGGF X-Proofpoint-GUID: FKsn_9g92PWClqcxxAFE614kZpo-oGGF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDEyMyBTYWx0ZWRfX7U6odw56nuFO xb73x66WvbcdfaYz5jBz4E4a1dMpcuv0+WTr/VCGjDsMQZQJfc2UMEDx3n+NMLTs4WJj++eRb3o VVVUwY/Ym9bEocPk154uhbp4SkozoEv8UO0ju1AgKXawGHElRwkJWMOFKYZfLWV1y8yVAYhhhjH KdJ0IRW5NkSdb4sQWNyyP4pKNq9clL30vvAnLz3ivHsMYVEZgLiKj0XsSFp2sF0sAr1ClowstPZ XlHzd4ErlNwwacJJvLbGwSLg2AEsos9FZT/A6kccx6GuX/KFR9fTnvotcItJzn25w2x4mzGLtKX MCpX8IgbotXtGG8MNAG1ppZOQrJXrGlu6GzigOcqFCxcVxMETPkaAbCVGaMZjP6QioWe/e2kWgt SRCPcpxSUnwGQ12R09qmdibWnlkyfky02WA3yNQ6AvyBuxfcDocnZDYe5BJnF0pAnRzVQ98QZk4 Fypg4dPcVP6nztUfG8A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_04,2026-03-23_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 clxscore=1015 spamscore=0 impostorscore=0 bulkscore=0 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230123 Prepare to fix improper Mx positive error propagation in later commits by handling Mx error codes where the i3c_ccc_cmd command is allocated. The CCC ENTDAA is invoked with i3c_master_entdaa_locked() and yields error I3C_ERROR_M2 if there are no devices active on the bus. Some controllers may also yield if there are no more devices need an dynamic address, since the sequence do always end in a NACK. Handle inside i3c_master_entdaa_locked(), checking cmd->err directly. Both call sites are updated, adi_i3c_master_do_daa() and cdns_i3c_master_do_daa(). Reviewed-by: Frank Li Reviewed-by: Adrian Hunter Signed-off-by: Jorge Marques --- drivers/i3c/master.c | 4 ++++ drivers/i3c/master/adi-i3c-master.c | 3 +-- drivers/i3c/master/i3c-master-cdns.c | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 7f4630ac8f0bc..1e2c086a24ac2 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -1050,6 +1050,10 @@ int i3c_master_entdaa_locked(struct i3c_master_contr= oller *master) ret =3D i3c_master_send_ccc_cmd_locked(master, &cmd); i3c_ccc_cmd_dest_cleanup(&dest); =20 + /* No active devices need an address. */ + if (ret && cmd.err =3D=3D I3C_ERROR_M2) + ret =3D 0; + return ret; } EXPORT_SYMBOL_GPL(i3c_master_entdaa_locked); diff --git a/drivers/i3c/master/adi-i3c-master.c b/drivers/i3c/master/adi-i= 3c-master.c index 6616f751075ae..fb9a488304469 100644 --- a/drivers/i3c/master/adi-i3c-master.c +++ b/drivers/i3c/master/adi-i3c-master.c @@ -655,8 +655,7 @@ static int adi_i3c_master_do_daa(struct i3c_master_cont= roller *m) =20 writel(irq_mask, master->regs + REG_IRQ_MASK); =20 - /* DAA always finishes with CE2_ERROR or NACK_RESP */ - if (ret && ret !=3D I3C_ERROR_M2) + if (ret) return ret; =20 /* Add I3C devices discovered */ diff --git a/drivers/i3c/master/i3c-master-cdns.c b/drivers/i3c/master/i3c-= master-cdns.c index b78aebf6b2ca4..5cfec6761494d 100644 --- a/drivers/i3c/master/i3c-master-cdns.c +++ b/drivers/i3c/master/i3c-master-cdns.c @@ -1143,7 +1143,7 @@ static int cdns_i3c_master_do_daa(struct i3c_master_c= ontroller *m) } =20 ret =3D i3c_master_entdaa_locked(&master->base); - if (ret && ret !=3D I3C_ERROR_M2) + if (ret) return ret; =20 newdevs =3D readl(master->regs + DEVS_CTRL) & DEVS_CTRL_DEVS_ACTIVE_MASK; --=20 2.51.1