From nobody Mon Jun 8 06:36:13 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 95FB3407CF2 for ; Fri, 5 Jun 2026 11:57:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780660647; cv=none; b=I/HF/S4ztCZzqv7OGQsPjdk+byw6ibHV9BnC9YrOMiVX2IeJ61j9Stv+awdVN9k4UaSmGz481pfAQ/NsoaJ0l37M2JU1CrbA2ovCoqsEmITdiheYtG7XIC7ON2nVubvVTLecVdHrjxXKH5mbkzT6SDP9KTMelbsJbESzHsCMi4E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780660647; c=relaxed/simple; bh=1jnluH9nXmYHy1Syp5EUFcWQBdyNd19PmSpPNf0WAEY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=Xnw7vNah53Beqsa/ptfyI8xayzxA6I0Tp7qirSRh27FuBJdFUB4nomBarT0NB0FS/WQqdT/v2ggJaURbZjxSe5PFUZaBfAC73yz8Yl8bQjpgMHduHS50/P99WLdG8Qk1S1hwymy0E34nd7oKk+r/nXqJ7vMvXgXhA2jud3MjNgs= 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=NsnuZ5/X; arc=none smtp.client-ip=209.85.214.176 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="NsnuZ5/X" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2bf2e8ccca1so13407445ad.0 for ; Fri, 05 Jun 2026 04:57:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780660646; x=1781265446; 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=eF8yh/ZhaXDNZn8doXue2BXI/ROFqbRF9hALOIAEVU4=; b=NsnuZ5/XdpHsixjI8MsVZ4RDyvskKLbD7nBjdlhLNd+kfVooMyb6Bbi7bw3WqklP20 3zEHWCe8/b1SLoGaLjBcqz6NkjIEpY5pvVzcPNjzGBjmEgzo+M9PVvMfpho/rqn4Z2aZ 4w/21R+ggC55BiOVyNybfvlr/2gzFfzK6brJU4Dnw1zn7KwrbSwtCDygjItOn0NuO41m /EnJI//or74HIravSW3kAhfxbWRonkE8zMzF21Cc/I2w/d1ifnjxdVTZObF0NXkzJTUt pXHwOkrm7qHfnhflwWljfWoXDvUoEKcKKbZMZAm/DMLNGQ9UD58iP9ZCLy9doKUcnqbP aFwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780660646; x=1781265446; 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=eF8yh/ZhaXDNZn8doXue2BXI/ROFqbRF9hALOIAEVU4=; b=ceGXVzKLP62kQNh6RaOXVcCQz9IhdyxoxYpGz9pWXA3rbh2nA15HzMdTzh5SKZ50yM L0zF5SihNoPscxHoufigs0HSLdfFeLWWHBFvACtk/5Sk6WHFCMchMjGucleXZjafrMpc CqjMQOG0M3AsI+04Bp27MNZ1g9KymhoiBdmlHX1+yp9HkPY8Gwp/JB9WB7Wo0h6KeZVo IpkM+trAbCNjYPY+mxDWXEp1VEU9fbDtSkQqllH+rQ3tbLGbb+GA9G6n3K6pEXnsiviw fzUPptHRlkn7Ykd16VukURbP/4cgMFQTQuYOJoLk6R0WA1r6pwq7T01GbXcgVqA7krHX dITQ== X-Forwarded-Encrypted: i=1; AFNElJ9IC0DhFzoxi3Z4Gla/3TVehaA28ayb6yKNO2ym0CuS7Aue7plBTexKgJZ9xps5qRBl7CzL3wRz/VAnnnU=@vger.kernel.org X-Gm-Message-State: AOJu0Yyfl5t0adm5bxZrasBTMR7/YZ1sO8NvluzLAaqdkR0YFdXcNhHu Vj/fsXkm1x90HzJ25++IrHrO099q5LuHx6rEcgFBNGsr45hS+rB31f+j X-Gm-Gg: Acq92OFSWtzDZDd+VecVk37kPbb9bPAPocWqktEIFxxggs50QndwgbpqOlCK/RWxNN6 5PrrxEiaA44LVRR3zX5LjO4OH+XKnKj+0fd9KHaCLRUNAsxWVjTX43dVVP3sATFBaammJ5nLwgs eqwpewyNEMRuDzgCwGP18U4AfyG0OKoaT8DGDm+4csFAT6BVY55mSUGM+cKWYVC9etI5YzJ0OfV wvTBHCuYKXzBSUECYyE8fbfjugC+I/F8aV8zwJOzFukm49XYzoSnA+oGXSbrxjSutg4iu/cy6qd Vu9YT3BAbbs7J7CPb0sdlVhGrshZjFOu2uu7G3i6JZRCXM0XRoIuhlC5qXZSQXWt0SD75alOZuW bdXcLtdSauivWccjkq9kg2i+SlAluPRlsI4XeUkGU1yC9d2qKy5PJ5aaSDwMlKxnu24+xcsjsBK ut8f59QTcoHh/HlI6J1rQiIPXqQpfmYg3xHaF1tdqnPPDyEhAjelIgiOSkp1qaw0AKPqgQVpwgi wrn4VINBf4107lSJoE0qF4wJnIWMn3Tpk2Zqw0= X-Received: by 2002:a17:903:2d0:b0:2c0:bcff:e18c with SMTP id d9443c01a7336-2c1e833c99dmr35270255ad.37.1780660645598; Fri, 05 Jun 2026 04:57:25 -0700 (PDT) Received: from junjungu-PC.localdomain ([223.166.246.74]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2c164f6d45csm127241615ad.14.2026.06.05.04.57.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2026 04:57:25 -0700 (PDT) From: Felix Gu Date: Fri, 05 Jun 2026 19:57:20 +0800 Subject: [PATCH v2] phy: freescale: phy-fsl-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: <20260605-lvds-v2-1-3ce7539d1104@gmail.com> X-B4-Tracking: v=1; b=H4sIAJ+5ImoC/12Nyw6CMBBFf4XM2hqmMUVd+R+GBW2nMIaH6WCjI f13AXcuT3LuuQsIRSaBa7FApMTC07iCPhTgumZsSbFfGXSpTWnKk+qTF+VN5azBiw9Ywao+IwV +75l7/WN52Qe5edtuRscyT/Gz/yTcvL9kQoXKnglDQOuJqls7NNwf3TRAnXP+AsrHQS+qAAAA 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=1780660643; l=3323; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=1jnluH9nXmYHy1Syp5EUFcWQBdyNd19PmSpPNf0WAEY=; b=7iDgxZg0jOVAtl0CfL5XzlraW/8xEH/XzKMKF01We1Z9PtFrPxoWEZ7Gws4uWlANtj/DvKuXF kE/kdaqfFtiAU//wXVWMgQLI/oqzCJ0IIZknDig3s4ZhBATn21hx99I 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") Acked-by: Liu Ying Signed-off-by: Felix Gu Reviewed-by: Frank Li --- Changes in v2: - Change the patch's subject prefix requested by Liu Ying. - Add Liu Ying's Acked-by. - Link to v1: https://patch.msgid.link/20260604-lvds-v1-1-b8e1ff1bdee7@gmai= l.com To: Vinod Koul To: Neil Armstrong To: Frank Li To: Sascha Hauer To: Pengutronix Kernel Team To: Fabio Estevam To: Liu Ying Cc: linux-phy@lists.infradead.org Cc: imx@lists.linux.dev Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- 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