From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 CF9E12F0C79 for ; Thu, 9 Jul 2026 04:20:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783570856; cv=none; b=JihxqYStRzLErpUCdAZHD3eEisgDAaHPgZV8AWB3pp5CEtNbTVRDPcLkWF37sR0lpfMsbx3CJEz3MLyWgeZwB7oC3POmSi/OtUekg/RbiK7a2mXRdDvtdtpS+Ufhdrh8Ny3sXxZk/sVB6jWeuTfu6ize+S7vZd/jy0z167WSLIA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783570856; c=relaxed/simple; bh=NkUtuuIs12BSSsmdG6xyEVbaMPiM9YCwp7AEArjcEHk=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=usvzrFOfO3W1ik5G7ihO3UQ+AlJk6qkHg8aoCL3JvNhFFjJo5QWhLp7oLWSFe0cTi0B+OYXkqRZAHQ6eLjwxx4mJ/5T8F5FkVqMPnU/S0nhBrxXgukO8Cusexm1tF0phs8xb41nn3j39Aby2UyNDhuEXrIbmHjIVc4IRo9y9u3E= 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=m+OcwAf7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iM3PawP8; arc=none smtp.client-ip=205.220.180.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="m+OcwAf7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iM3PawP8" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 668N8bgl4193438 for ; Thu, 9 Jul 2026 04:20:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=otrAduylictWjLlY2CQabu 6AyUtCL+D8OY6qMEEb//A=; b=m+OcwAf7PtR01kDMHOiOcIdGJVz1v8onopj7Wp 3JaPkgrghBmrBJwPqcvRVCuNfWZaOcugXPawOByWk0TwaSdkZuYQ17ViGaY/SbI8 V2shgNhDU/2VMBfrxeeZjP1xnO8iAUle7Y34jFBxcy9afRq2w88gYrfLk5Zhnl74 Hd+nW6clEu+pV8kVQNCv2Zuuq0D1AUsSke/tSqg8xZg8ctKoFAy5wpgN6JW5nYsN HTtGvi3mzRg+wK4Wz87IC6hrFCqfwd2bfE2DAWxTg/fcVtnZdXlgcdBiymuSOIWq GEj8eQTtHPC9R6KlunrABgdvtRd4FQ9JHJl/nkIyrUPXx3zw== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f9rq32nu8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 09 Jul 2026 04:20:53 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8484b9fb055so2952507b3a.0 for ; Wed, 08 Jul 2026 21:20:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783570853; x=1784175653; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=otrAduylictWjLlY2CQabu6AyUtCL+D8OY6qMEEb//A=; b=iM3PawP881yNMecCo/bjGzkulX/2XpNzLhGPULrhgMuCc0z2lMKfoHko5u0aRzfI2H tjAUxU+8BZIU8sgt51tUyRUcNXWsih86Ak7ZGCHfwvU10QKzyN2VV1gA4vjHN2B7gkRG uAwfAdJx1SkpHbIjabuD/74qNp8TPXByn9x8KQDSN/KOhXvVMYMOlJgiGR9l90o/inyd XazCsi4CFGqkhDhgkfiK244wp0vveMS/tHuA1PBahUQZ54LN2uGVPmWsrq5O1WwI/nPb MDgtYql+CWIZb/NfXYivam1OA9Kb5g+K9VvqFD7r652Z0WE1Q11tNAzCjT2ig9kaTdvJ lJLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783570853; x=1784175653; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=otrAduylictWjLlY2CQabu6AyUtCL+D8OY6qMEEb//A=; b=L/F+6+qeTzfUQD4DbSpKJzMsky5x1d0/JIqhiK391toVwH0qkHpkDjEZDvfEsNxqs0 ng37raZ16/nMz+b4QGaQcPk/A4U5yvrpL37f/eY6fFv8d91pBVLVeZKLxfjQXZNwWsKp FvW+Yi6ntrRYSF+WF8BjaMXYYVdokIYGLhoYF8HU/Rfx7NxLYG3MYYEjr+H8bNOtcVpU xeV0VQwKXbMLVwu7J2jLBhnj9+e598GBGmjyNRzEdYmvjjhYgD6yZWxgmJ2JFM53IcOA 0LEpHZD0uw4hNHNXmYxiEBci1/TbIaMApLUoQZ06Ald4F8u8R0ldc0oMcGBDEDk5FIZb Rf+Q== X-Forwarded-Encrypted: i=1; AHgh+Ro/FG37nvWtrLAG2W/4wFPLHhIeCEIZxCKqdb+c6KaTztsTKg8IGuqDVwbDKbH7FSvQ1UuNWtCijmTYskw=@vger.kernel.org X-Gm-Message-State: AOJu0Yw57/RHSqSitg+ouoFnc654ejcyKwQAU7Ey1+o5FHRlZUxLXTUN WtrIA+I6RewLhdyNwEsNXhmFUTGXoFMW6Saa8UYZVAtPte/Hh4BHdMgtXEFQ24uKWGDQRXmu2rw YPvVnDwIzyP4rRs4lUOi3AjhelyuduWyoEyFz+BM7UC7g5KWnD/lxsSg6tjazax6FeL0= X-Gm-Gg: AfdE7cm45rsFIg15TyAyyCKFx8vbLptwyodhhY49gmSoDo7B2RBr6fSYj/INAg39eUN r9DQod5eWwj+jBPFIDt09NtqS9ZVELZsvFMfjOt/d70C0D//zIZiWCedFu9DEy/1sz6BqF8ypQ8 5felyc1LBIDCl0N8FVTAQexDSIYQMbRlT6tqjOeJsnUNrNDAR0/XxRQtgshY6tfttrcAjEKTLEE 1ZIQw/kT5nMbAMX7L1QFSYHhycAZoFLbjoI7OY+Mkw2ARpElGwZR2qp2ibXkaEY66qURkO7cObn yPZ3HYU92d93eOKEDfiwcnfwJk5tmlIWBj4/pqF41Zl/erDYpjjqYxc3iztWXfIlHE2h6Jo0tNL JXB9jfzfbs/yEyGr9XPr6DsScbEM8PxG0cjw9aFk0wzBw X-Received: by 2002:a05:6a20:1587:b0:3b4:65d3:17b1 with SMTP id adf61e73a8af0-3c0bd1a82b8mr6263838637.43.1783570852858; Wed, 08 Jul 2026 21:20:52 -0700 (PDT) X-Received: by 2002:a05:6a20:1587:b0:3b4:65d3:17b1 with SMTP id adf61e73a8af0-3c0bd1a82b8mr6263804637.43.1783570852280; Wed, 08 Jul 2026 21:20:52 -0700 (PDT) Received: from hu-ptalari-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-311747f596asm25490098eec.2.2026.07.08.21.20.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jul 2026 21:20:51 -0700 (PDT) From: Praveen Talari Subject: [PATCH v2 0/3] i2c: qcom-geni: improve transfer error recovery and synchronization Date: Thu, 09 Jul 2026 09:50:39 +0530 Message-Id: <20260709-fix_cancel_sequence_on_failure_for_i2c-v2-0-1db178c695bb@oss.qualcomm.com> 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 X-B4-Tracking: v=1; b=H4sIAJchT2oC/42OQQ7CIBBFr9KwlgaoFuLKe5iGIB0spgULpdE0v bu0xr2bybzkz3+zoAjBQkTnYkEBZhutdxnYoUC6U+4O2LaZESOsJpxU2NiX1Mpp6GWEMUHepHf SKNunANL4IC3TWIlanDg1nANBuewZIF/uomvz5ZhuD9DT1r4lOhsnH977JzPdcj+p+Fc6U0xw2 wojjtRUtWIXH2M5JtVrPwxlHqhZ1/UDAxjXpvUAAAA= X-Change-ID: 20260703-fix_cancel_sequence_on_failure_for_i2c-a868571f77e0 To: Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti Cc: linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Praveen Talari , Naresh Maramaina X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1783570849; l=2149; i=praveen.talari@oss.qualcomm.com; s=20251114; h=from:subject:message-id; bh=NkUtuuIs12BSSsmdG6xyEVbaMPiM9YCwp7AEArjcEHk=; b=3tbAoQWBAMFwXL9OhPVPfWdm6y8YXx6Gea7z7ElcpsIRrke7zG99hMoaVnYV0qoqLCvcJhmRH sldoAzYiD1eBntMyF97uSKUrgtFZ3rPcdKfijfuRuboPydYodqR9FEB X-Developer-Key: i=praveen.talari@oss.qualcomm.com; a=ed25519; pk=NGK/88fjyHXgfhIKwag7+uIytOmyOypvZ/hDFaYPEss= X-Proofpoint-ORIG-GUID: rK2MeVxyhQu3N5T9KKc7Um0MR4mrwzKl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzA5MDAzNyBTYWx0ZWRfX8sSmeBlU83CE 1VOrOKtMeihyZtN3ZWFWxyUCT22CZa8rWlE577GK5cw/TL1SAAmXLjfR9wMPYPFFrxRGpXM9BKE 7kqSX3vaxR9cGE64Xi6Vzb1OJb7OL5iNh8EqLUrJLBluvL1TkhnNZvpOH61AafaNISfpG88pnNh uIuzja7TkqJy8DtXWXmNjTAu9yTYfndfV6zAyLrKKHiEqZRI9+pjAS8+T8hE1fknhwSq2Ll7VDc 6CKbtXBpSVvN7YLn9Ud79IyYLkhZZdK2QsEY2xLfwfVeonAe8SpclJ6pfWReEPX2FIVMIVoEGhP laj7dgUgzhGfHdJPs/1aMCDEuTTG22H4t7CrSwG3yVdGBipxXruJ2mufR17AsThxIWypafnNusT 3+bNEC0OmQnYE5zWAKUh/tj6waH0ykt5kbCzHPGdj28XSBKlvTdEvHJeN3ahVO1SUOipLfqoYTw +2A1RaxLEv29AXf0a7g== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzA5MDAzNyBTYWx0ZWRfX5KYA6WLBpBVW nKIkFzrL4jqVAjuD9oQ/GunHcHLOd1Orur3taUf2B7D7pXWqkvtMqti3Tl1LU7pTGfarcIsL4NZ iXs8JpUU/9J9ocy2Z+sBS3OwovyfkXg= X-Authority-Analysis: v=2.4 cv=PYPPQChd c=1 sm=1 tr=0 ts=6a4f21a5 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=bC-a23v3AAAA:8 a=EUspDBNiAAAA:8 a=myXUcApQ-ot6Es7YN2sA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 a=FO4_E8m0qiDe52t0p3_H:22 X-Proofpoint-GUID: rK2MeVxyhQu3N5T9KKc7Um0MR4mrwzKl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-08_05,2026-07-08_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 adultscore=0 clxscore=1015 bulkscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607090037 The GENI I2C driver has few issues in its transfer recovery and completion handling paths. The timeout recovery flow directly aborts outstanding commands, while GENI hardware requires command cancellation to be attempted before issuing an abort. In addition, multiple operations share a common completion object, which can allow unrelated events to wake waiters prematurely and lead to incorrect synchronization. The M_GP_IRQ_1 interrupt fires for both address-phase and data-phase NACKs, but the driver treated them identically, triggering unnecessary cancellation and reset operations even though the address-phase NACK has already terminated the transfer without arming the DMA engine. For an address NACK, the hardware requires no recovery since the DMA engine was never armed. For a data NACK on a write transfer, the DMA engine was active and the normal cancel and FSM reset path must run. Signed-off-by: Praveen Talari --- Changes in v2: - Fix typo: "signalled" -> "signaled" in patch 1 commit message - Replace "shared" with "common completion event for transfer, abort and DMA reset" in patch 2 commit message - Fix "has a few issues" -> "has few issues" in cover letter - Fix "cancel and reset operations" -> "cancellation and reset operations" in cover letter - Add geni_i2c_check_addr_data_nack() to correctly gate DMA FSM reset and cancel per NACK type - Link to v1: https://patch.msgid.link/20260708-fix_cancel_sequence_on_failure_for_i2c-v1-0-dd8f841f36a2@oss.qualcomm.com --- Praveen Talari (3): i2c: qcom-geni: use cancel command before abort on transfer timeout i2c: qcom-geni: use dedicated completions for abort and reset events i2c: qcom-geni: distinguish address-phase and data-phase NACK drivers/i2c/busses/i2c-qcom-geni.c | 113 ++++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 38 deletions(-) --- base-commit: 173f2099661309fd2a52fe94e6bcbbaf0d323dea change-id: 20260703-fix_cancel_sequence_on_failure_for_i2c-a868571f77e0 Best regards, -- Praveen Talari