From nobody Mon Jun 8 08:28:17 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.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 1F62646AF14 for ; Thu, 4 Jun 2026 14:39:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780583955; cv=none; b=PCGoMcqW5UL2TMJmmx6tM0xSojk69/KEyJW8n+rcR1UHAuEOl9ow7CbdHWMKwo73Bx7LlxedKnMOVWzYdjPiHmP1Z0eDVTvA2FnNCvRAmqjnEgG1aZgKx/JQIWbVDZDUwiGu6yOqHTl9oR7/6g1gAdy7nQ2SF93tqsNr3POpfio= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780583955; c=relaxed/simple; bh=k21HcNtRfGOfdGEdLFtlrPAUJg8uMPRTOaO8fu5/tX0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=jymURsB/RZSkDeqkTpUaiBLdf6GNtR19UtKDywAyoB6s6hrGMpwMVaFTp3yY00qVRm2a6qGVC/Ajg54QpC3Ia9WJdRg1Y49qM2ZjeF6WOXenUyunaojsIK7FXKM8OAriok09nOb/c7gs6pKdGU7SdbPNVlSw2/pZymE35Sd4ggE= 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=fJ+QJs0z; arc=none smtp.client-ip=209.85.216.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="fJ+QJs0z" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-36dd65b95f2so546306a91.0 for ; Thu, 04 Jun 2026 07:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780583953; x=1781188753; 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=DOMV3x2yG7P0NW9CHIRVjoVTM78K6MUr+RoZlGHPHew=; b=fJ+QJs0zz4rfCnP1BhxVBS1CZn/xmM3+4WMh5zuQ/BCHLrsJQ65odt9S1p6zzWiplS mfGDLiIxfESvoMs9FgDHxKGKR+AQmfJfg/NcpoWeBFZyYAoq1VpFJITCc2i3++sglSSR UX5MqUGyxspSrVgLkbbPKbaQZvBA7MMjKxHDc8yCPb88r9Ov4X405WE+G1TzoG76Nzkc +rjJ/1zvAG36jF3jdUEH0BGI6rEfpRZC6+g2FslDRycL2ruXXPYAVEkNIN6FM6x8BhCD 7aV6l8eU7n7cjpBgk+w4VvidWQsEzJ47t8qhuwWYh0ggsYvGIn2bgB/tr94txVnj4fon QTmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780583953; x=1781188753; 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=DOMV3x2yG7P0NW9CHIRVjoVTM78K6MUr+RoZlGHPHew=; b=Ui9WY5IUtcs7Rc06XqR4IRv2m702nHT0iQV9U5OXhcHT/szBROf7LudeBB6RD5qYGs EmTuIbpsFxHVUvejzjr4072Q2w0psmlsRIkD+TdP+jGc9z/Zh9iKACpCW0DJ11FtPSNc y5f71ouIUFIT5CEeVVH5a3CvUV57DBAHPf7zF/Op8qBz0zaop8p/f0/GGkkLoutGjMWC aY3Eti2yziMzR2LN2oK3SvTjII4E3TYduUScz08FjCr/XXNlsXuSPltrtQFdz17+RwZm kmPLzCLZEw+8gjnoL9AQ0XqvPHBXKEzz0ZVx/M88X7zWY43ba9zseEZJDZ7/9lpEpIB4 l5+w== X-Forwarded-Encrypted: i=1; AFNElJ9YpvPO0o7Tne/T83OihJJeF4DH+gE1x2h4ljh5VXUti27g2+LW//Oz+0Lp8cgL6pMHhpYXALqLZn0rdCA=@vger.kernel.org X-Gm-Message-State: AOJu0YwUuatKOUcXUkZnDEL57gWyi7jZwFYv+QH/A7kbMu3byF1qPaOk GGVNPXJbd65iUY3EKdtrzOkVp1M4npsekPRImMVsGwIJ62kQVcipV9UP X-Gm-Gg: Acq92OGYZNke5qpLx2qBDRMzfUE5uClqZsOhyOVbzxFSUjY7In4bG/N6oiE7iyB5+ZT VAihyk6sIvLwdTJ3e76VaDY+GcWvk+feczdCDXCeqhOYUY8ljLAWHman+9raX9ZXf5RVGfEvNXp DD+7AVAr1jV1S4Y/36EWU+8oeWYrCr0OXOqXrdEZ8alHhLPeIbeWkWE09v3npiDQJUozmrgL3ze tWHkcbLHH7CMtZ7iq+Ll7hdsVBdrCYwoAZE/RW5g68BpSINkASjBWGcbR58AXfA5rPvFMm/m5BJ Dpc/4MUP2a4k4lzUTyqIfxu6GdGL9fd7csYrUF+NoO/wrucsQndZRMX9TlVzTpOSaefj7SSxGJc 7Vj+SvyLWSSU38Vv5ccF5lwGh0+C9lCmPXFceMkpDfpDlaHPfCAT9wZFDGYWBYzYFdkY4XWI4Zi pJvlq0OHjOhpvUf+JBRDRr+lIFHRWlLNjZNteUHcdt7ULnKZ2Cf+tKx6RB0LGSCu+JGVRVnqlcv Wx8UpbYblGdUjE2rpZb+5Z/CfHiN3WF2saYbK0= X-Received: by 2002:a17:90b:58d0:b0:36b:769c:c037 with SMTP id 98e67ed59e1d1-36f76d559d7mr2969085a91.5.1780583953117; Thu, 04 Jun 2026 07:39:13 -0700 (PDT) Received: from junjungu-PC.localdomain ([223.166.246.30]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36f6bf830b2sm3118696a91.4.2026.06.04.07.39.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 07:39:12 -0700 (PDT) From: Felix Gu Date: Thu, 04 Jun 2026 22:39:07 +0800 Subject: [PATCH] phy: freescale: imx8qm-lvds-phy: Fix missing pm_runtime_disable() on probe error path 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: <20260604-lvds-v1-1-b8e1ff1bdee7@gmail.com> X-B4-Tracking: v=1; b=H4sIAAqOIWoC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDMwMT3ZyylGLdFDPz5CQzQ8uUNENzJaDSgqLUtMwKsDHRsRB+cWlSVmp yCUivUm0tALOMGkpoAAAA X-Change-ID: 20260604-lvds-d67cb619df17 To: Vinod Koul , Neil Armstrong , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Liu Ying Cc: linux-phy@lists.infradead.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Felix Gu X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1780583949; l=2666; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=k21HcNtRfGOfdGEdLFtlrPAUJg8uMPRTOaO8fu5/tX0=; b=jhHig4d+JEEW8lyIX24qIbqNx+rDwN/vC6NWkW86ZaeYwEzeYggjta+nO9Lfo878+ax0rH+ol 7jOKNHUbE0iDMCul78SSZxFsmrifomdo6iadGIx5pvJmozsEMf3g6HN X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= If mixel_lvds_phy_reset() fails in probe after pm_runtime_enable(), the function returns directly without calling pm_runtime_disable(), leaving runtime PM permanently enabled for the device. Fix this by using devm_pm_runtime_enable() so that cleanup is automatic on any probe failure or driver unbind. This also allows removing the manual err label and the .remove callback. Fixes: 06ff622d61d2 ("phy: freescale: Add i.MX8qm Mixel LVDS PHY support") Signed-off-by: Felix Gu Acked-by: Liu Ying --- drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c | 24 +++++++--------------= --- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c b/drivers/phy/= freescale/phy-fsl-imx8qm-lvds-phy.c index ece357443521..c662f91e598c 100644 --- a/drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c +++ b/drivers/phy/freescale/phy-fsl-imx8qm-lvds-phy.c @@ -345,7 +345,9 @@ static int mixel_lvds_phy_probe(struct platform_device = *pdev) =20 dev_set_drvdata(dev, priv); =20 - pm_runtime_enable(dev); + ret =3D devm_pm_runtime_enable(dev); + if (ret) + return ret; =20 ret =3D mixel_lvds_phy_reset(dev); if (ret) { @@ -355,17 +357,15 @@ static int mixel_lvds_phy_probe(struct platform_devic= e *pdev) =20 for (i =3D 0; i < PHY_NUM; i++) { lvds_phy =3D devm_kzalloc(dev, sizeof(*lvds_phy), GFP_KERNEL); - if (!lvds_phy) { - ret =3D -ENOMEM; - goto err; - } + if (!lvds_phy) + return -ENOMEM; =20 phy =3D devm_phy_create(dev, NULL, &mixel_lvds_phy_ops); if (IS_ERR(phy)) { ret =3D PTR_ERR(phy); dev_err(dev, "failed to create PHY for channel%d: %d\n", i, ret); - goto err; + return ret; } =20 lvds_phy->phy =3D phy; @@ -379,19 +379,10 @@ static int mixel_lvds_phy_probe(struct platform_devic= e *pdev) if (IS_ERR(phy_provider)) { ret =3D PTR_ERR(phy_provider); dev_err(dev, "failed to register PHY provider: %d\n", ret); - goto err; + return ret; } =20 return 0; -err: - pm_runtime_disable(dev); - - return ret; -} - -static void mixel_lvds_phy_remove(struct platform_device *pdev) -{ - pm_runtime_disable(&pdev->dev); } =20 static int __maybe_unused mixel_lvds_phy_runtime_suspend(struct device *de= v) @@ -432,7 +423,6 @@ MODULE_DEVICE_TABLE(of, mixel_lvds_phy_of_match); =20 static struct platform_driver mixel_lvds_phy_driver =3D { .probe =3D mixel_lvds_phy_probe, - .remove =3D mixel_lvds_phy_remove, .driver =3D { .pm =3D &mixel_lvds_phy_pm_ops, .name =3D "mixel-lvds-phy", --- base-commit: a225caacc36546a09586e3ece36c0313146e7da9 change-id: 20260604-lvds-d67cb619df17 Best regards, -- =20 Felix Gu