From nobody Thu Apr 2 23:57:00 2026 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 A8C734A35 for ; Thu, 26 Mar 2026 04:31:59 +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=1774499521; cv=none; b=oRGZy1vcE07A2t8+uAtA6i7Hcw5OJ103s0DLPP4cTjJjKeA5JHTFrs8uOJP0CwgPrpv1HY05zoOqdkI3pyuiIv0eRcTDGMICzDUYCwynY9Xj93GIAPqLxUjVzFmqc5LOw8iAKG1Crs9EmpNRldnyb4XaLC0bK69Xk3Hty09ysJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774499521; c=relaxed/simple; bh=NpFXvrYh3Fb7+pGlr/Z61Pb78xmA51Vjq3Rxx3qOVtg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=czQsI23Djp1qdYlXzmojcZSoHzdXz+YQazUm3ZLDWbgdjh/S3VIq2BHP5pGKCWbiwhPa1CzXi9mfh8CA5Opc/rqdZwgURy4JJIQI47vle2DtoNvOlmcux4fKeJS+gqPW7G3yKcoVy3NUu1Cps2PKl/0QYrVkaxF7IYrsNy3iHlI= 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=hKKR2OBd; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jRKyNcVa; 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="hKKR2OBd"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jRKyNcVa" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62Q0kmKs3957917 for ; Thu, 26 Mar 2026 04:31:58 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=jJRKMt5STVkyb1Y7d1ZgMO 1sueYs1DgBavRo6QS64AI=; b=hKKR2OBdmKOqiTdbZ33hIuMhZ7JhUlOiO93CcH DiZtkKn4ZzwolbcR/CwQhTILnreUv0fRddHGSqh7q0cmXbE/A7mxKhFV+R1ogc80 lhHH8vDCGt17uqM3QSpcv6tfZtbD+MICx7s++bLr/jcSBgS1AnRDFwtNXLG+6ayz hRWyuph9K6ZJv/lP6CNm2H2/ExRSupTSt7/cu0Tzu76LkaQFFCyPBepQ2M3/WvIc J9xuBcB+qkvEhxejPXgEff/oU7iMB3As+oCu9W/mvN0R5oXzMczXpQY23wX84u+o IHBEI8tJUF7r/+BXEfR4A/GWj8EKWFS9KP2gol5WElMqucsg== 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 4d4tjagjc4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 26 Mar 2026 04:31:58 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-82c2054b584so1277482b3a.2 for ; Wed, 25 Mar 2026 21:31:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774499518; x=1775104318; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=jJRKMt5STVkyb1Y7d1ZgMO1sueYs1DgBavRo6QS64AI=; b=jRKyNcVafX97FOVAMt+S3IOON6nCEo9Jleezk5AV390i/NVCtz+W7/H2QNtl1mvtk4 BCA9NIThhWn11oIW6A8xIXcrGfk+cXNOFRdoMC+h3eJ1vGPfbDKPafQUYqzUsLL+Hl96 1n182en5lJcOtuJN6QKpYpRhjNXUc3Yg4x+G3SMDloWi7ZzO2bLRyD0nPmysgEA0QtkO s+4JjVOkN51Hm3pvtpF+JkxSbd+YHiKg9GlmG05EzPy/820ZP2B/o8SEit44inozA2n3 sVu62DslbD4onrjmUO21sO9AXoiuXbxoleaJzUXLBeKrW020rxS+8FuJvzxKVVOGkR/q 4bYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774499518; x=1775104318; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jJRKMt5STVkyb1Y7d1ZgMO1sueYs1DgBavRo6QS64AI=; b=QBOZy7phdnYQyJIV/T+0/8j/+dcllY88HSiR/7CYXJy7FPi/zDTNIeKXqoIRp1OvLC mzHKEGRN1wO791Au0azTRY0bRE6LLmjLbDqs4FEtejnC2r7OzXE/VZXD5oolDkzO80I1 pFibxW/7l40Xz0zUCmncDdtiAso03sQuc5bC5+UePI9FevS4wR4dZekxRBiaEpBNvLeG NS9Qdm7nW39TOTyLQBtHYwD2EQMhbHFeo04aSBwzySTQrGDTJtvIelcFQKLhcicLefZY nIA+QZqV7u4tV5YJtoXBzP1lWnGXNoWk8fwGiBdPPfSr7dzdj+cq7y1MkzX1X4jyO0hH Ylzg== X-Forwarded-Encrypted: i=1; AJvYcCUYncAj4aVMfGK2RvyYA6sPmiSW/cD8kT7sXkgFkinH4/B3OFkdopziOIbeAcKbpvI716idQ2Q9n52C+FQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxEl8080OY7osDDKHqcXXAxpQCTSxW+413kRzANKQDbyc68INfc 9EqzdzujVOP4A9YkzrATcQD2yBGP3L8JfRQVyboFBb/uQbF6LPiusVR8Tch3+a/EPIQ1hQZiB6l msHZ/W8yDYnwyp9FZcmu1bHpNv0Cj6PLW3UyPfV8RRf/Ma1pB0Ga7zmi2hPC8cODR/wU= X-Gm-Gg: ATEYQzyqpqov3eiKHbfZCfWW84hyDxQYGOlRFwEEIYsVqGHygnu0B7/zG6WOD/jZR/e mTkLbjccoFP3i5RS3EkJq9Jak+EdBEQHNdIYf29Z5FopXJrVjgRtW12Noz2UELmQjyu4m59qvtb OcpgIyLz1IhRqwJ9duaP08SVrwloyvGNLtFcw0dhOeUsHYjgrwVP9Nlx6D9ewe4hWyK6DulMzoL Ob3tpNpc4RqDD5QqxLi82Ox10+MfxlgzTM6FhowYN93/K6nSX1Nz0nBkoiskpLphYuOww1ZU2W8 h1Vm8kjURo1dE1Rxg5Z1O1cIzAiUp3CvID610gK9VE+xrQ98w8ePP2kOBht4S38jFay960YhD7J 3HVMV+DH7TZbTBtYCsm4rpxTPxpApKbp0oF/DcV7rOtSoVj1/Ok9S3yYS X-Received: by 2002:a05:6a00:4b0a:b0:829:809e:8981 with SMTP id d2e1a72fcca58-82c6e0e616dmr6256919b3a.31.1774499517593; Wed, 25 Mar 2026 21:31:57 -0700 (PDT) X-Received: by 2002:a05:6a00:4b0a:b0:829:809e:8981 with SMTP id d2e1a72fcca58-82c6e0e616dmr6256897b3a.31.1774499517105; Wed, 25 Mar 2026 21:31:57 -0700 (PDT) Received: from hu-arandive-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82c7d22c8e8sm1177396b3a.24.2026.03.25.21.31.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Mar 2026 21:31:56 -0700 (PDT) From: Aniket Randive Date: Thu, 26 Mar 2026 10:01:48 +0530 Subject: [PATCH v1] i2c: qcom-geni: Skip extra TX DMA TRE for single read message in GPI mode 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: <20260326-skip_extra_dma_tre-v1-1-deef018895dc@oss.qualcomm.com> X-B4-Tracking: v=1; b=H4sIALO2xGkC/yWM0QqDMAwAf0XyvIKNOLb9yhiltqnLxpwkVQTx3 +3m4x3craAkTAq3agWhmZW/QwF7qiA8/dCT4VgYsMZz3WBr9M2joyWLd/HjXRYyvgkJMV1svHZ QwlEo8fKf3mG28DicTt2LQv7dYNt26Um64XoAAAA= X-Change-ID: 20260325-skip_extra_dma_tre-a3cf22f81d9b To: Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Sumit Semwal , =?utf-8?q?Christian_K=C3=B6nig?= Cc: linux-i2c@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, Maramaina Naresh , Aniket Randive X-Mailer: b4 0.15.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774499512; l=2657; i=aniket.randive@oss.qualcomm.com; s=20260325; h=from:subject:message-id; bh=NpFXvrYh3Fb7+pGlr/Z61Pb78xmA51Vjq3Rxx3qOVtg=; b=F4oCSfY3o5eliC5a/9PowUrf5FxpGtSwz/W4vzzQWSTjf14iwuzX8WrayFTCnK9XM9yo9kEL2 Iw5BwmRKNyMAZKpj1OK+i5GLjGWoi4vXfVo03bhtCg3FGxQGx7hFxXK X-Developer-Key: i=aniket.randive@oss.qualcomm.com; a=ed25519; pk=4o37X1ZqGbCO/T2SR8kq/HnWvq0yb1RUlFuNukovbQk= X-Proofpoint-ORIG-GUID: a5JEboQ8dQ3-mldOsWz_Wb1xeRSlIvYF X-Authority-Analysis: v=2.4 cv=Nr3cssdJ c=1 sm=1 tr=0 ts=69c4b6be cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=QTaY6CSZEmO6sGPGzGoA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-GUID: a5JEboQ8dQ3-mldOsWz_Wb1xeRSlIvYF X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzI2MDAzMiBTYWx0ZWRfX2wWE8bZ3OerV z+XJjwKA+tIGO43+WlSmwU1+C89KSILc0oOOxihvwHdq8it07Ng0b+JfGSGFIqTXQoo7BGFkFzA McqSS3FfVkMhb9Uq+vmlP+frHnL0BeThtcv40qCIuKBh6/lZJ7NA+Coe4/rSk926e+teI5SRC4Y /+swqTFAfwOvXYpDVC5NrvGmHxJ9U6i3ZiPN846EXiQYWQuevomOMAL5BaDPQwxiAFJU32fGGKO 4FNKU0f5n5ELXk6fSyCAWoaRs9/PSee3YvAOIwGIOPW2WNHlCHEXOy/DCjrUJ8CuWla5hihREdW wmzBCBakIclgbSTX7gtUg8OBMnWLpl9wMBPHOMGKNtSdJ8nSA/byEkv9QUta5NyfyQlwcFb5JVs dMoTteEXum3ieGW/FF8eZhcfO0fAOFqxv03pFyBcFJG/CZp20/bT5qOr4NkxZmdRA9YQn7ZSh9w LzIKXoy7xAkccvk0dmw== 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-26_01,2026-03-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 suspectscore=0 impostorscore=0 bulkscore=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603260032 In GPI mode, the I2C GENI driver incorrectly generates an extra TX DMA TRE on the TX channel during single read message transfer. This results in an unnecessary write operation on the I2C bus, which is not required. Update the logic to avoid generating the extra TX DMA TRE for single read message, ensuring correct behavior and preventing redundant transfers. Co-developed-by: Maramaina Naresh Signed-off-by: Maramaina Naresh Signed-off-by: Aniket Randive --- drivers/i2c/busses/i2c-qcom-geni.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qc= om-geni.c index a4acb78fafb6..2706309bbebb 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -625,8 +625,8 @@ static int geni_i2c_gpi(struct geni_i2c_dev *gi2c, stru= ct i2c_msg msgs[], { struct gpi_i2c_config *peripheral; unsigned int flags; - void *dma_buf; - dma_addr_t addr; + void *dma_buf =3D NULL; + dma_addr_t addr =3D 0; enum dma_data_direction map_dirn; enum dma_transfer_direction dma_dirn; struct dma_async_tx_descriptor *desc; @@ -639,6 +639,11 @@ static int geni_i2c_gpi(struct geni_i2c_dev *gi2c, str= uct i2c_msg msgs[], gi2c_gpi_xfer =3D &gi2c->i2c_multi_desc_config; msg_idx =3D gi2c_gpi_xfer->msg_idx_cnt; =20 + if (op =3D=3D I2C_WRITE && msgs[msg_idx].flags & I2C_M_RD) { + peripheral->multi_msg =3D true; + goto skip_dma; + } + dma_buf =3D i2c_get_dma_safe_msg_buf(&msgs[msg_idx], 1); if (!dma_buf) { ret =3D -ENOMEM; @@ -668,6 +673,7 @@ static int geni_i2c_gpi(struct geni_i2c_dev *gi2c, stru= ct i2c_msg msgs[], flags =3D DMA_PREP_INTERRUPT | DMA_CTRL_ACK; } =20 +skip_dma: /* set the length as message for rx txn */ peripheral->rx_len =3D msgs[msg_idx].len; peripheral->op =3D op; @@ -740,9 +746,11 @@ static int geni_i2c_gpi(struct geni_i2c_dev *gi2c, str= uct i2c_msg msgs[], return 0; =20 err_config: - dma_unmap_single(gi2c->se.dev->parent, addr, - msgs[msg_idx].len, map_dirn); - i2c_put_dma_safe_msg_buf(dma_buf, &msgs[msg_idx], false); + if (op =3D=3D I2C_WRITE && (msgs[msg_idx].flags & I2C_M_RD)) { + dma_unmap_single(gi2c->se.dev->parent, addr, + msgs[msg_idx].len, map_dirn); + i2c_put_dma_safe_msg_buf(dma_buf, &msgs[msg_idx], false); + } =20 out: gi2c->err =3D ret; --- base-commit: 785f0eb2f85decbe7c1ef9ae922931f0194ffc2e change-id: 20260325-skip_extra_dma_tre-a3cf22f81d9b Best regards, -- =20 Aniket Randive