From nobody Fri Dec 19 21:49:48 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 63652321456 for ; Fri, 5 Dec 2025 14:22:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764944576; cv=none; b=dfZLhLz4OaycgIZ8LJwzO1531J5OqxbewWGKXAdX94A1AlKiknMJz/kNRCveCLA8mEm95upp2HGWCGC5jYx6zWtX0WPWof0RK9dLH+DnuY8od4ar32Da2JptCg4ZsOPGA/Gl9UylFkxfYbr16Gd0ldquxITwrpLFTt9nYsZ7RJA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764944576; c=relaxed/simple; bh=pMwPFJMTtIP4dtXu2+MjCXusZPpj26s41YMtdPqsIt4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MLJcsPhOGlMrzmgDEK95A80Tmlqo3e1/5YqCKsa4K1wvHJ7Ri3GvIL3eDGHsz1h3tNn+8O+N2BDcMgDMGuiLWHsnA1sLNKX7PjYrjKp3BSuoFWGvjB0Stapj/2V4kCnqhnxJZGOX6lbCEvYc7qYVqUxWsY296evsVGpzC8b2TMQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=EW8jcJsl; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="EW8jcJsl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1764944571; bh=pMwPFJMTtIP4dtXu2+MjCXusZPpj26s41YMtdPqsIt4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EW8jcJsl8AuIKgt2RnlWlpw5uHAJm4116T5wJU3U1sotbOySHa012kPNTE6ZPugbv lfc2GLM23lNhhY8bFIPsZmnbHujBAK8bxIc1rMaXdibjUmcJ3zvWi1Ai6mT+Tcvqc/ NucXXe1iAgLdvm/hZziItXZA0/QCBpZq7zXZoMwmwIDdkX16UkA4w+q5Y9HbxQFRyg KBuooa6EYQsl6Et9fh7eEiZAg16Fgw9UL9gsXS3C0Tv4Eo93EU+J6BAgHTV3fVtM3n OKD+79Yby0ab4mrqst3a83TFDurxhWEOJeNcyx5v9B7yaT/5uHKU0JBfeRQJ8pSCyQ t94vMxilcSqEg== Received: from yukiji.home (amontpellier-657-1-116-247.w83-113.abo.wanadoo.fr [83.113.51.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: laeyraud) by bali.collaboradmins.com (Postfix) with ESMTPSA id C3E5517E1149; Fri, 5 Dec 2025 15:22:50 +0100 (CET) From: Louis-Alexis Eyraud Date: Fri, 05 Dec 2025 15:22:26 +0100 Subject: [PATCH 1/2] drm/mediatek: mtk_hdmi_ddc_v2: Add transfer abort on timeout cases 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: <20251205-mtk-hdmi-ddc-v2-fixes-v1-1-260dd0d320f4@collabora.com> References: <20251205-mtk-hdmi-ddc-v2-fixes-v1-0-260dd0d320f4@collabora.com> In-Reply-To: <20251205-mtk-hdmi-ddc-v2-fixes-v1-0-260dd0d320f4@collabora.com> To: Chun-Kuang Hu , Philipp Zabel , David Airlie , Simona Vetter , Matthias Brugger , AngeloGioacchino Del Regno , CK Hu Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Louis-Alexis Eyraud X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1764944570; l=1808; i=louisalexis.eyraud@collabora.com; s=20250113; h=from:subject:message-id; bh=pMwPFJMTtIP4dtXu2+MjCXusZPpj26s41YMtdPqsIt4=; b=IjONvCPU1h33wadF1IH3+uR6UHWidUH2F80MCy1EokeaQlxCEKOuMrbZFVVpXy3voIsmgiWJY GjFZaRMC5owAXNkD5kAGFZL6Iz2rL06MN+OO/YUROptJlgeIhhc20N5 X-Developer-Key: i=louisalexis.eyraud@collabora.com; a=ed25519; pk=CHFBDB2Kqh4EHc6JIqFn69GhxJJAzc0Zr4e8QxtumuM= During a read or write transfer, the mtk_hdmi_ddc_v2 driver polls the DDC_I2C_IN_PROG bit of HPD_DDC_STATUS register to check if the transfer completes but do no particular action if a timeout is reached. It could lead the next transfer attempts to fail because the faulty transfer was not aborted. So, add in both low level read and write functions a abort action by writing the DDC_CTRL register with the ABORT_XFER command value. Fixes: 8d0f79886273 ("drm/mediatek: Introduce HDMI/DDC v2 for MT8195/MT8188= ") Signed-off-by: Louis-Alexis Eyraud --- drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c b/drivers/gpu/drm/m= ediatek/mtk_hdmi_ddc_v2.c index b844e2c10f28060baef64bd36c5464758b08e162..6ae7cbba8cb6dacf46c2f7ab74a= 2d7446d698b69 100644 --- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c @@ -96,6 +96,11 @@ static int mtk_ddc_wr_one(struct mtk_hdmi_ddc *ddc, u16 = addr_id, !(val & DDC_I2C_IN_PROG), 500, 1000); if (ret) { dev_err(ddc->dev, "DDC I2C write timeout\n"); + + /* Abort transfer if it is still in progress */ + regmap_update_bits(ddc->regs, DDC_CTRL, DDC_CTRL_CMD, + FIELD_PREP(DDC_CTRL_CMD, DDC_CMD_ABORT_XFER)); + return ret; } =20 @@ -179,6 +184,11 @@ static int mtk_ddcm_read_hdmi(struct mtk_hdmi_ddc *ddc= , u16 uc_dev, 500 * (temp_length + 5)); if (ret) { dev_err(ddc->dev, "Timeout waiting for DDC I2C\n"); + + /* Abort transfer if it is still in progress */ + regmap_update_bits(ddc->regs, DDC_CTRL, DDC_CTRL_CMD, + FIELD_PREP(DDC_CTRL_CMD, DDC_CMD_ABORT_XFER)); + return ret; } =20 --=20 2.52.0