From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9FA20303A02 for ; Wed, 18 Feb 2026 15:09:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771427397; cv=none; b=hg+GPI/Kq98ldV3Ao55v18yjZ7ZIaSbYJDKToIh/6xDkgC1A8evUtc2PDceZtn73zP/JZIahiW2BT0eLLuLxorgNx6ErPsmcihZMBSDNBF5qacdaeRFMFQDnJFla5VbSjVWxRj0oxyugOanGIknV5EBYe4VVzHGn67AySWyIW1s= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771427397; c=relaxed/simple; bh=d0C2EuuXownzQl6U6rFAHJMKSwZtCyEBVouZSQ+2XTI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sspYNDst6MbgMiPnj6At1r0D4Q3Vh3JG4XCb1h3UWs2CfX17/8pHjU/iMJhPluw+zwXjdhzfcxBdsHYitTM2cCLpTO6gHyVaugB5Cry0erdK+qo/m0UXyDnNIKFxn9X6JYJQHJprKcNTD7yEoHPehPxCmHN2pLP/fO1bvkjoJxs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bfWitjns; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bfWitjns" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-43638a3330dso4215434f8f.0 for ; Wed, 18 Feb 2026 07:09:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771427393; x=1772032193; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DiGM3saLexQq7QJjFVEPfTJjnwZ/SSpdBYTl//BH56U=; b=bfWitjns0o6B9UUPYCzQ4EUjDwuuTCG8P369VfstxdAi1M7tkT8h2S+grY6EyERYjC 2WiZ8CWNZgBlFI7wZbnc6yN+iPuqc9ux3qpNR2gFRrm9lNotXCfWCxu10XdCkOrJqk+8 SV0BX+4ovK1e4c7uQf32TFcXwylLiS1+GmGLoyDSwm3guT1VdDuFsbogSzVLFe74I7Sy 86w3ZV+xex0vTC4KCxSMliG4bHaUV0GXsw3nLRwZO9N3AMlJWEFOoLCQ527KrdGY+sse NW7MduVyThJW8EXOHmptr3nP0RaOLe5GezM0D7OWo6FixcTQHa8/BHiL3w64v80juBEp ycMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771427393; x=1772032193; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DiGM3saLexQq7QJjFVEPfTJjnwZ/SSpdBYTl//BH56U=; b=cr+0zJnnQhL0AeWhHqBv6QjEo9SKDkHeARwkv+d5BiQ1y2tkYgL4aQ0utviMFrYPC2 lS1SyRMr28vJiP28NYnpM+1Ap6yMqQfujexVehoEMVy+Ux2T4Qj8hncxIDYlZ+jC4sO5 Vogofnk98us02RKvf+ZEMtH+9d19endgnl4YJfoL5ZIAPnf57gUIfIWJt0kVIK+sapGM HoC1fVdJrTbUa2poY0dTx2oPM/jJv4n9ReHpnbKxGS19hbaqKXQOq5ZKCr/wqE3XkJv6 b5A6A8cjhj5FTh/+A6a/5rZ7WGNTDQaKpn0oQk/LLlxMkwILRmMVjl3q0VGfzmEFGG03 prTQ== X-Forwarded-Encrypted: i=1; AJvYcCWgHE/3BUO3555ZcTs+WQ6Dri3Ve4nRhsnMbYVR/0FcVpjqrtJi3sPX9menKIxEokc1KksmdsV6XN6dt6w=@vger.kernel.org X-Gm-Message-State: AOJu0Ywj+ZZpAQcMr0yZhHeC4Ern100j4NJpxH/LvA/nMb2X0f/OVgVc S9mpKiedDVcz5dF46oCnxD75xcP8yS1IadSvwGgUgORnlnob4dkkgDef X-Gm-Gg: AZuq6aIeG5GufHnF7dElDcxn7ppsvT55G+xmHIuUG+I0oLks3T7vFRrMJeJrD7qekVl 61F1ThE+9iRopJCi4zCn4PyiNY8G3yHetbVgeES558ce8znYOkAd6+GiJC9HBcqY/zbfZd2AzsG t2+TgoBjussSCt+nQgBziO4c3UF2NO2/BrwybzBQmRTbq2a1uLLHeQEy2d22b/ZYqw413/61M+Z I6aJ0atc87tMA9Q9wizZLIeiEg8dh7P2zo4Wvma4v91b0ZPdlIfPr1zQ1lu1oUJj9GaHQ17M9Fq b0as2szsn443MlNECKF5xzp4wimd7o87doxCda/R10tDj3lKj50k5s1C4tZPjWqSOL4QsVST+Mj +K/nzvvtoblnhcMnKRzccGNG6TXNhADnCSPK8FY/N551LcjdqpawqqZEuAg8wJCMGrUOUJ8UJ/v aTreO2YihCbNos6sv7oH4f5bsuRrkKh+HLEZ/Y0s8hXdIgNuxRM9ok1dlvbQUDCwjYOa09PtNjx EimRANjMjM9kbVmEXrtvc+ygdDHBbmZ6daA X-Received: by 2002:a5d:5f93:0:b0:435:e060:8071 with SMTP id ffacd0b85a97d-4379db61767mr23486335f8f.16.1771427392709; Wed, 18 Feb 2026 07:09:52 -0800 (PST) Received: from eichest-laptop.corp.toradex.com (248.201.173.83.static.wline.lns.sme.cust.swisscom.ch. [83.173.201.248]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac7d91sm44333116f8f.26.2026.02.18.07.09.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Feb 2026 07:09:52 -0800 (PST) From: Stefan Eichenberger To: o.rempel@pengutronix.de, kernel@pengutronix.de, andi.shyti@kernel.org, Frank.Li@nxp.com, s.hauer@pengutronix.de, festevam@gmail.com, stefan.eichenberger@toradex.com, francesco.dolcini@toradex.com Cc: linux-i2c@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH v1 1/2] i2c: imx: fix i2c issue when reading multiple messages Date: Wed, 18 Feb 2026 16:08:49 +0100 Message-ID: <20260218150940.131354-2-eichest@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260218150940.131354-1-eichest@gmail.com> References: <20260218150940.131354-1-eichest@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Stefan Eichenberger When reading multiple messages, meaning a repeated start is required, polling the bus busy bit must be avoided. This must only be done for the last message. Otherwise, the driver will timeout. Here an example of such a sequence that fails with an error: i2ctransfer -y -a 0 w1@0x00 0x02 r1 w1@0x00 0x02 r1 Error: Sending messages failed: Connection timed out Fixes: 5f5c2d4579ca ("i2c: imx: prevent rescheduling in non dma mode") Cc: # v6.13+ Signed-off-by: Stefan Eichenberger --- drivers/i2c/busses/i2c-imx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index 85f554044cf1e..56e2a14495a9a 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c @@ -1522,7 +1522,7 @@ static int i2c_imx_read(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs, dev_err(&i2c_imx->adapter.dev, "<%s> read timedout\n", __func__); return -ETIMEDOUT; } - if (!i2c_imx->stopped) + if (i2c_imx->is_lastmsg && !i2c_imx->stopped) return i2c_imx_bus_busy(i2c_imx, 0, false); return 0; -- 2.51.0