From nobody Sat Jul 25 21:20:59 2026 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) (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 5932237BE98 for ; Mon, 13 Jul 2026 11:32:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783942338; cv=none; b=VvuwXknkuH9ZyQWMHZR7VBXAQLvaTNRzKUbLqGLmje3mHxOSepdhc1hO9VT9PyfWBOU+THvEuDYqkqiMZVxTNP7JpYwAbiwbpVaSDWsVAyrTFWoEEEO/5T2n8kZJ3lktTnw+DTFwp06wfFUyAlyrLq3akVL0901Pb6J3t1dmBAg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783942338; c=relaxed/simple; bh=pe0ZWEl9hpbKNM4POdPYU+xRMmXadYbOlA4SMxHiFR4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=XVx1b4C2sUq+0KVgG2gjQ7ZrryiUCuFj8G3T/N0rCN4DtPOKQncbVmGXqufF0B+bVDlTuoQWjW9rB8BZYQe+FH+T+xWtWfzo7njhWQ7f+VxO+mzPGRFV9qkd+ACT+YMheForncU8TqQFyqd7vFbem1DDmlLcC+AbvvJO/bg/MlY= 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=bv0+jPSE; arc=none smtp.client-ip=209.85.210.169 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="bv0+jPSE" Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-848882fdb18so2129542b3a.0 for ; Mon, 13 Jul 2026 04:32:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783942337; x=1784547137; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=bQ5YkObDJn3q5yEXBMbpydhpxp/loGCG/PfQF+sLSPI=; b=bv0+jPSE1dp5ZtI8P/S87t2/8h78QGDfYyX573LFTRf0PpyXoPEHJYMVsp0rxN3pvU WhnbRpWiC4HRBwlYPNKSpyzmZayODlgPXb2CCE+xzEYamoDqOAMkrv3pU7LKYoF0fVjb SGCorSeUAcWUziKrZT/NxlDs68RVWQ46RrOACsmftat89aubRSEZTzrFTVyBPY250HOu 2HP+7TGAZgyAvKMZCPktusOfcOr2VPGuqrVbgynriKbyXNHvjEEZLMo8scsLb26ySwpi ggQG1+1hUPylCGZIvvFtHFbLQGVn2GWRU1hBy/aLAgNPjLSxo+YPxpk4bCKCi8QbMJa0 V1ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783942337; x=1784547137; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=bQ5YkObDJn3q5yEXBMbpydhpxp/loGCG/PfQF+sLSPI=; b=mcBrszQ9pyxSeZjraiHuhCjUQ4sICbUuUue+bT+J5BFkSyXBe21s+nlGs9/71g9dog cXOILesQ+gOd6mCAgjQGtTDPNeBzoPGLRkDBAEEGrYpgL/pU7beXxvbphzqHmLg4+Uto ofLzzCzFLD3tSqilvSl7g80n0geb0Vd/XLM8/hkC/QO8FIfJGczsQfcShDHUqoJMQzsl MmCByml7X5iUShVkYvOuv2DQT+kUxxg7u6i63g85W2v4JRHU5k3fI9ZeGe6FnpdcgX3M x/Z9DuFeX5T5V9g4DY1hT9EWle7m/R5Ls2nOc64fOPgVytxH6zysGQhd054sSmKnG//D cnIw== X-Forwarded-Encrypted: i=1; AHgh+RoqybWLJ6Q2teOMwbbee4Idxqir8N+Cy5x/2kXivqx9vv5kkIamQwz8w77KC/6jhExZV8NPI20IXZkGJUU=@vger.kernel.org X-Gm-Message-State: AOJu0Yw0ZPge74DS6qocmqcjVW8RR8ROnFBx/CY0rsIg5MLJ6zrdTv7Z WjSt+2Q/+YwGC1ZDJRikHlrmnViqRZ0vtsD6DiulvGbYBAA5U/AzD7cY X-Gm-Gg: AfdE7cmhWP2xnLt8fzmNsvCb12eqJWk3w/9MY3FM/BC3dfViL13ULF60oxtflYpQciC v5WR8AwDh+/b3iOFk3SRRddaOUvMYM4tsH+Zfxd8D2tQlyw0uRLfhP3wTT+q1HwCCo1C+k6l2j/ 1ipfGlGJFO6i84mh/bEUtI5Uhjcjg3cMVFwQdAxAc6YE75e6YGgF3xpoSqdLxjsYXpm5yZSCHn0 Mcg3eRoXFcijzeeho6KWsqzRnDt93486fYX02fYhVAA45ZgCfp17OIz6k44xOuyVo0J+oQ2Glv6 PodhyzbQ/4DAUv1QtK+LUDSw8I4zFASo0QtjcwGCnY70myMo2LkiiEpnPBSI/18A1mQGZl5RA20 I0HNAHzw9FV45Y52E4gBEwSKZn05Y/9iTgOsQ4GMrYfC7Bf8FA5ZK1uTYbBaGL96aV7BcDFY= X-Received: by 2002:a05:6a00:18aa:b0:845:d286:1fa8 with SMTP id d2e1a72fcca58-84889768958mr8641367b3a.55.1783942336528; Mon, 13 Jul 2026 04:32:16 -0700 (PDT) Received: from lgs.. ([2001:250:5800:1000::f280]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84880a4abf1sm4318802b3a.16.2026.07.13.04.32.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 04:32:16 -0700 (PDT) From: Guangshuo Li To: Chun-Kuang Hu , Philipp Zabel , David Airlie , Simona Vetter , Matthias Brugger , AngeloGioacchino Del Regno , CK Hu , Louis-Alexis Eyraud , dri-devel@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Johan Hovold , Guangshuo Li , stable@vger.kernel.org Subject: [PATCH v3] drm/mediatek: mtk_hdmi: Fix DDC adapter double put in v2 Date: Mon, 13 Jul 2026 19:29:57 +0800 Message-ID: <20260713112957.884640-1-lgs201920130244@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" mtk_hdmi_common_probe() gets the DDC adapter with of_find_i2c_adapter_by_node() and registers a devm action to release the adapter device reference with put_device(). The HDMI v2 remove callback also calls i2c_put_adapter() on the same DDC adapter. This is not paired with of_find_i2c_adapter_by_node(): it drops the adapter device reference before the devm action drops it again, and it also puts a module reference that was never taken. Remove the extra i2c_put_adapter() call and drop the now-empty HDMI v2 remove callback. The common devm action releases the adapter device reference. Fixes: 8d0f79886273 ("drm/mediatek: Introduce HDMI/DDC v2 for MT8195/MT8188= ") Cc: stable@vger.kernel.org Reviewed-by: Johan Hovold Signed-off-by: Guangshuo Li Reviewed-by: CK Hu --- v3: - Add Reviewed-by tag from Johan Hovold. - No code changes. v2: - Drop the empty remove callback, as suggested by Johan Hovold. - Mention that i2c_put_adapter() also drops a module reference that was never taken. - Fix the Fixes tag. - Add Cc stable. drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/media= tek/mtk_hdmi_v2.c index 7bbf463056c9..ffe456238a2b 100644 --- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c @@ -1499,13 +1499,6 @@ static int mtk_hdmi_v2_probe(struct platform_device = *pdev) return 0; } =20 -static void mtk_hdmi_v2_remove(struct platform_device *pdev) -{ - struct mtk_hdmi *hdmi =3D platform_get_drvdata(pdev); - - i2c_put_adapter(hdmi->ddc_adpt); -} - static const struct of_device_id mtk_drm_hdmi_v2_of_ids[] =3D { { .compatible =3D "mediatek,mt8188-hdmi-tx", .data =3D &mtk_hdmi_conf_mt8= 188 }, { .compatible =3D "mediatek,mt8195-hdmi-tx", .data =3D &mtk_hdmi_conf_mt8= 195 }, @@ -1515,7 +1508,6 @@ MODULE_DEVICE_TABLE(of, mtk_drm_hdmi_v2_of_ids); =20 static struct platform_driver mtk_hdmi_v2_driver =3D { .probe =3D mtk_hdmi_v2_probe, - .remove =3D mtk_hdmi_v2_remove, .driver =3D { .name =3D "mediatek-drm-hdmi-v2", .of_match_table =3D mtk_drm_hdmi_v2_of_ids, --=20 2.43.0