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 13CC141C2E2 for ; Fri, 10 Jul 2026 11:37:12 +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=1783683462; cv=none; b=HvlPP8T16bbUHUtgM1ioB/yVrYv5YnY7gTr7wuZ/QUZzPjRRsNgcnmnzShrE078QOmya3eJgPvB7IF2f4ZjftAu0kMyStatfdcSNgxR2l+XW3FE9hM24X9JJAwWQYewMjYXn5JyOlup2HuF4/d8foGX8UCtzJQK74ymOhWk8mpE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783683462; c=relaxed/simple; bh=NKNAUXcwP6pv7fxKpjJQQinyKR34mhn8fdPE2GbAtZk=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=FNc+y4tbDzSryP2lOuT8JOhddyjfVtHJ/P2J+GU4+ZRBRU1cmMtWtE0khAXpDn2Z1xA8qW7+VI4o9XpcknAVR/MlREYIDPpUbvh0//cbEaceOP+IQ137jQwk/fLvxq7SMtbmqqjafZKjslI4UNmh1Pj+eCE6fTba+avU/jyYMXk= 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=OKXnjau2; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ET8MMHcw; 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="OKXnjau2"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ET8MMHcw" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66AAnIFj429845 for ; Fri, 10 Jul 2026 11:37:06 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= 7xIbB/rIZz3qHMIAEcV7pGTL9ewpaG2D2x5j/gm5fM0=; b=OKXnjau2YedjSBp3 UuX+xdunvyN7Qvws7U/u/5+TSIACGakQFqHDGUIu+e/xkHpRAZgJ80f7kb5tIEga 15p6uek5i+x5hlkO/Xex5hRKuKJKLxxC6DmnnIJekJ43eQ3hYxn31wdoE2xeHFT9 DVd2RNqbTKyGUy9ljCOJlHUEDzyfDg1W+7jJxp9Wqxp4StHXgBIqG3I6eM2YNeYe QLcbXqp0f2B/+SgjnQ3unxIN6GBsgHmi+otE2jeQKFRm/B1c2PSa/wsqKywtNWQb K9Trs5Q9ujaHRn4SibhTBJUsPfohwOWkuYeGWFPkBH7uMNh8CFdyxjegdLIJVIzp Wm7nzQ== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4faf24v1qf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 10 Jul 2026 11:37:06 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-8482b95574dso907990b3a.1 for ; Fri, 10 Jul 2026 04:37:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783683425; x=1784288225; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7xIbB/rIZz3qHMIAEcV7pGTL9ewpaG2D2x5j/gm5fM0=; b=ET8MMHcw1jnv6R2GMT4yJJTU+phSMl4bx28Y/rl1b75tQibV6t5AotT9K4Gf2wlW/G 30NuSKpBkP0H8NjGbTgt2lJP1wncCjwfdL8Sn1SvQEePDzrUG0JU8C6qDjqEV4AWBtpN AUjEr/7Rleg/6L9R0mpwrD/sWvJCpy3KhX0stWTL3n0hdPUCaGRSzMsbUdiNGrs3g+vs O8IXoJiqta4P6UfFg1kg+AudCPkaWGZz0HIPuZ4uf68T2NZEko/GCsN2PkSb9wV4+CZd J5wM5ZoCOjdusz+PwIXWJbkOrVM9qaxHb5SKoWHJGNus0pfmLHiy4WdPQ4QwgLM7bKXl hrEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783683425; x=1784288225; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=7xIbB/rIZz3qHMIAEcV7pGTL9ewpaG2D2x5j/gm5fM0=; b=fjqeXoTwfhdJsFdzP91QkNLQAUMBF4VuaQW5ogOVFhdjuQOdOEbSGydTFgZtIQzwTw 6uv6hUXmN0b58IB9gzDcuNHlQEJD3x/SlsaczNYqc4sKwKjrLyw4ToOZ26Bq39ua3+gP klsk21nylNYfol77fCgTav8S3oLV/F5HnJWgKETN3E6hYRx8RRAJTeZZyM493vOo8Tcn 6vBgRVULkIV8SXpmQAF+Dt8DwD1FktLnfPmoxln70jniPaFTHnneSsQXBTqUPuBq2UOx VLmNk4bBjtUA+EQJxOm6CJKgGGpI0S4zEwC5+7jxBOyAKu8jH36upXlZ8/bvJd+F6v5+ D73g== X-Forwarded-Encrypted: i=1; AHgh+Rp37cNiG5PO3TrIqjX/vfonrKCxhvoew9dKLQsJtIkrAIpN8hPIq2El8Of8jyH1DcJk2v9I/Qa3PLMlBUE=@vger.kernel.org X-Gm-Message-State: AOJu0YzkzZ4QxKQyitSWYYcGj6XIPW445zLKRmKHtRiBI/7CfVX+ljFt mGHRqM9aqD+v4VnGGJdtVdavlTHWjQH4qXptZrxhyOPwDOIoKHZQiEBkKDHKCaKQDqmdBDInb6Q RPWYsaQ/r8q5LK0iAW83ocvz7vLRK383BAAwMFNO8+M/e2PGXPA1FQn4ebsNB7Vsw6ewvhSWP8L M= X-Gm-Gg: AfdE7cki47iQZF27ZhHGq4xKo9BCCtx5Bb6ddWbW1N9R9FYZrz3+rHsW3E/PpwL5hjs fnFnEoy/2fOp3NUky6oiH5z0epI1Z4iB3A1GpUk3YuOR+6ECWkKxkawTT7e8mOMWlhNW2+vDufi LIQSeLM2JkFhTlQ0E0SyABEZRa2RhDKT7MUeP8ivuEvKCmBwMuKrEEtkL4GNP2a9I0+J4c377RD SfI90hzUkTIG168M4rBSpausv7DSku38Tvkb5zbtGpE3APhXHHZpBJAmacOtlMtGwo+eH6mudbO Agzg2Tk/cQigIcpN5gUKqm7WLUEvnxZA5eIayV8Yis69i7NBLBishRemD45LmLfFvmfTwnxfVr+ 7qJeX47PPeFwOaPCOP8rGrN0ZEyUj0pUVQViIbvEclDd6 X-Received: by 2002:a05:6a00:1708:b0:848:79af:8b2a with SMTP id d2e1a72fcca58-84879af8f62mr1764491b3a.27.1783683425154; Fri, 10 Jul 2026 04:37:05 -0700 (PDT) X-Received: by 2002:a05:6a00:1708:b0:848:79af:8b2a with SMTP id d2e1a72fcca58-84879af8f62mr1764474b3a.27.1783683424646; Fri, 10 Jul 2026 04:37:04 -0700 (PDT) Received: from [10.217.219.87] ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84880a4abf1sm302906b3a.16.2026.07.10.04.36.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Jul 2026 04:37:04 -0700 (PDT) Message-ID: <1ff522f6-88cb-428a-91c2-5f7f9fc9929d@oss.qualcomm.com> Date: Fri, 10 Jul 2026 17:06:55 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/3] i2c: qcom-geni: distinguish address-phase and data-phase NACK To: Praveen Talari , Viken Dadhaniya , Andi Shyti Cc: linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Naresh Maramaina References: <20260709-fix_cancel_sequence_on_failure_for_i2c-v2-0-1db178c695bb@oss.qualcomm.com> <20260709-fix_cancel_sequence_on_failure_for_i2c-v2-3-1db178c695bb@oss.qualcomm.com> Content-Language: en-US From: Mukesh Savaliya In-Reply-To: <20260709-fix_cancel_sequence_on_failure_for_i2c-v2-3-1db178c695bb@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Proofpoint-GUID: lLYYpdFRD3oQ2UEfxYN4n4DNEPmfSYnZ X-Proofpoint-ORIG-GUID: lLYYpdFRD3oQ2UEfxYN4n4DNEPmfSYnZ X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEwMDExNCBTYWx0ZWRfX5Rw5xdVZQ5tR Oa8lixemLFkor9pa8hj84z6K+qRGVcYknULBeZkuqgRvNqhIPOvbrVv0PHurQHO8nIsZjOrKF8V RaX7CVeImIxTiRzNAnMoQa4zKPmaPus= X-Authority-Analysis: v=2.4 cv=daKwG3Xe c=1 sm=1 tr=0 ts=6a50d962 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=QTIInl-oKmcOnA4cS_cA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEwMDExNCBTYWx0ZWRfX0gDNdz63Op9y odLFR/GbI5aGpahxCAKiYXBAz9H7rk1wLEJ5jg+MRO+YphoNrb58ruSSB8Wk003LsD/5olczWC1 466NJ8qhnzZp+nR4QcjkajtMuNAFOk2xI3jYEfLfOesFWnq6+muRy9yDJ3Kcyo/6jgoruACRVPe QRoawoWHCr99gB1pTP+8GJaFYSKVKYmrpfAC8aPggm+VGVP3zfK7NkIp8Pbtf5G19gN0qgp6jMf NBkwUh0oXfTNJ5hhQKwVSG+aPXXzB8geaTkUbG5jiu9DuHCknmugUl1XlG7MfkrGzh+0schCr4X xTRTJ4mwaNY1FmrC7FFn5BcFEaf/we48MuXcOc0LxNNiqaR+8yJd0VBDVlxjMBZuN5ydyJWFl5R l5Pseiw0ThBs0cniIeuKOpfcVsI2uXCTbbIAP2YjQJ8wK7idfcA0YQCe2mZGam3mfckPkN81H9N enHckK9yYODcPpVy74A== 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-10_03,2026-07-09_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607100114 On 7/9/2026 9:50 AM, Praveen Talari wrote: > The M_GP_IRQ_1 interrupt signals a NACK condition, but does not > distinguish whether it occurred during the address phase or the data > phase. The driver always attempted cancel and DMA FSM reset on any > NACK, which is incorrect for an address NACK since the DMA engine was > never armed and the hardware requires no recovery. > > Add geni_i2c_check_addr_data_nack() to distinguish the two cases by > reading SE_GENI_M_GP_LENGTH after the NACK event. A zero value means > the address phase was NACKed (ADDR_NACK) and no DMA recovery is needed. > A non-zero value on a write transfer means a data byte was NACKed > (DATA_NACK) and the normal cancel and DMA FSM reset path must run. > > Co-developed-by: Naresh Maramaina > Signed-off-by: Naresh Maramaina > Signed-off-by: Praveen Talari > --- > drivers/i2c/busses/i2c-qcom-geni.c | 29 ++++++++++++++++++++--------- > 1 file changed, 20 insertions(+), 9 deletions(-) [...] > #define I2C_AUTO_SUSPEND_DELAY 250 > @@ -143,7 +144,8 @@ struct geni_i2c_err_log { > > static const struct geni_i2c_err_log gi2c_log[] = { > [GP_IRQ0] = {-EIO, "Unknown I2C err GP_IRQ0"}, > - [NACK] = {-ENXIO, "NACK: slv unresponsive, check its power/reset-ln"}, > + [ADDR_NACK] = {-ENXIO, "NACK: slv unresponsive, check its power/reset-ln"}, Now slv could be target device, follow latest convention. > + [DATA_NACK] = {-EIO, "Data NACK: device NACK before end of TX"}, Minor: Instead of before end of TX, could be simply TX transfer NACK ? > [GP_IRQ2] = {-EIO, "Unknown I2C err GP IRQ2"}, > [BUS_PROTO] = {-EPROTO, "Bus proto err, noisy/unexpected start/stop"}, > [ARB_LOST] = {-EAGAIN, "Bus arbitration lost, clock line undriveable"}, > @@ -258,7 +260,8 @@ static void geni_i2c_err(struct geni_i2c_dev *gi2c, int err) > [...]