From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 5CC2F3A0E99 for ; Wed, 5 Aug 2026 19:27:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785958070; cv=none; b=C6mu+WtQYTIDhdMQWULi33YjY83T8+Cj9f12hjvYeGXaNbp2GRRkHE5RStimdAFKF+N497BJjSEEfxiEn8hfKulPwwoQdCAoPqvAvfwfTWzV1fpQV6n1V1d9Ktx3KqIx0nTbpdQqfyzCAc742Asu0n2pqeQaATQiROUSELzqDQg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785958070; c=relaxed/simple; bh=LTwaNtRgS3ooW/16vSo1ZZSGSBIxiNpLWZOXEdrz9xk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Oji7B/T1+52g027bDw74KuV8me0Ftdi/LkkVmvkaKEq2Djf2Q71z8fLgPPmuFsneWXkxocno4cv4b7/0h4Zh7xtqA4Xz+2LR4mHrakLKXbcJKl8W0PqDDOLky04Is+cGLqWQlBDUwpcxlqEFpAGu7SYXf1uKDH39897FdA7TUds= 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=fAFBs5Fp; arc=none smtp.client-ip=209.85.214.177 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="fAFBs5Fp" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2cc73e322dbso16974355ad.1 for ; Wed, 05 Aug 2026 12:27:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785958069; x=1786562869; 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=7ALVhTkLMakWqEuSe4Skb0kas0ActGjz0usx5j0rutA=; b=fAFBs5FpxqDB0+7L/n4tkaecRTyKUTO4zjwGVfBCqoTN5z+xp/V9pgHNRiP5/xuT/s 1GXG3CPUX61lXQXTsEr1CDmXonS5YodAh8x6Z92Z1ZY7IvwBVOSuiw6T2PvxeG5TdTA7 /NtoIpm/HpBlxehw72lt7JtANgXC1MQDZe7SkyhF/JCiTtj43KWRqHilBFwiAHW1nzOz VkH/DdmHRWMJ3ZUUqbfL5n5ue0CYDwOlp/IaDabqKpPFaOxcV4puWTcu+woUvhNISmKZ BGKllVuD3LZ2+hx+3g89e1OdDkPVVGpL9mo+KIviszbL3awChzu0Yg8O1xEix9gW7yEo RhzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785958069; x=1786562869; 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=7ALVhTkLMakWqEuSe4Skb0kas0ActGjz0usx5j0rutA=; b=oqKwD8L1xICkB0E1AYbpH06TRpmYHuQAag43bHkt02tF7amKrlKvklKFGY7wVHgbot 652Sej/ujp3Rg0SCyal8+Bl4PVb5CyLsMlmrQLq3oRfYIGN4am3Q4oZpU5GMk7H/Lul5 0odclfahVWPfNCpxpRwOTLEByRHiXp30Fh8mJ7l9sNhN+pq097/kjN/HmCN9AfKbnT3e QTOtGRhtfyVqgB7wNUspqWMeBaMeexWlUg98WuTa+06REdnPk0eSrinD9FmxTOgR/Qgl g9gB1rrb2eiDT+p9PqOhctOWk9fEGsgBcD91cwX9FLIfxtjb2YF9QlOoGzohHz/BDTup mq8A== X-Forwarded-Encrypted: i=1; AHgh+Roqm9ogGyGszDzj+qGyUkHUovJwWA4ghfHngTzCXMArdp966/hHzPKSTtAU2h4+WHDJdbXItWLpYUsBWm0=@vger.kernel.org X-Gm-Message-State: AOJu0Yzr0Gcc5IQP1mYAlA9Yvpac8GZJWSGbZmZpYrF1xmud1BPpRVjb IsA9iW54MZLpBxjryPneA+4com4QeweIQ64Lev0PEKJutYImGO4XV4Uc X-Gm-Gg: AR+sD11iRGzqtL+V0kO6IdQ12EVOAVyYSpuSG65qINTgUDU5AfGbWBazyI2R5tIgKI0 rEnx9WOqLKErgzdjgQfEwrBnS1bxLXxJwgG99ZYfmNjs8UD2R/GFIdU6ZfyqA952+WbtEM9K/l2 f/6OhBEYCMsPjOJq3vJFx3Up69CrL8VCAKPga5LdtWTerNdeccu1ADGWdD8XGpL6S+xd9am3RGh MM/zDwXdytZt+5SuF0TFxcO16Gxq8xEIS9y5uI+jGwoNuP/NkAxePY3KNvZhVvEPZ3FYfMKkCwp kl6Nr6lDhyPdt+ybrRUwynIgYqfkNQ8bZM12/sW9W9ktSU2UrlT25RSPey9Ft34rTW/D+8k1IlA QqJ+aeBIFLe6AQjVxSS7SE6P/JjamR7GKAhlx3WYuMThmxc8m7tRRr3AsAdiEeJkpX1GVsOn7SG wo0Np+r5+H95AWsSYmALnaTxPg5KFoWLmhNwV2ed85OaNVxle14VzXqQvFMw9Gtdk8Ui+TZ2Enc e0hXjb2QN95V7kP9oO/9XWNa6dnEcx+fWH1ufQyv1tUHaDk X-Received: by 2002:a05:6300:670b:b0:3c0:ac0f:6558 with SMTP id adf61e73a8af0-3cb85e99259mr11160290637.2.1785958068690; Wed, 05 Aug 2026 12:27:48 -0700 (PDT) Received: from fabio-X870-EAGLE-WIFI7.. ([2804:1b3:a801:e1cd:bc4c:d677:df1f:9a88]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13fca63ce12sm20260391c88.5.2026.08.05.12.27.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Aug 2026 12:27:48 -0700 (PDT) From: Fabio Estevam To: tglx@kernel.org Cc: radu@rendec.net, Frank.Li@nxp.com, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Fabio Estevam Subject: [PATCH v3 1/2] irqchip/imx-irqsteer: Convert to devm_pm_runtime_enable() Date: Wed, 5 Aug 2026 16:27:42 -0300 Message-ID: <20260805192743.244441-1-festevam@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: 8bit From: Fabio Estevam imx_irqsteer_probe() enables runtime PM, but imx_irqsteer_remove() does not disable it. Consequently, runtime PM remains enabled after unbinding the device, and rebinding it triggers: Unbalanced pm_runtime_enable! Use devm_pm_runtime_enable() to automatically disable runtime PM when the device is removed. Set up runtime PM before creating the IRQ domain and registering chained handlers so that a failure cannot leave either resource pointing at freed driver data. Fixes: 4730d2233311 ("irqchip/imx-irqsteer: Add runtime PM support") Signed-off-by: Fabio Estevam --- Changes since v1: - Move devm_pm_runtime_enable() prior to irq_domain_create_linear(). (Frank) drivers/irqchip/irq-imx-irqsteer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c index 87b07f517be3..653e25115083 100644 --- a/drivers/irqchip/irq-imx-irqsteer.c +++ b/drivers/irqchip/irq-imx-irqsteer.c @@ -236,6 +236,11 @@ static int imx_irqsteer_probe(struct platform_device *pdev) if (irqsteer_has_chanctrl(data->devtype_data)) writel_relaxed(BIT(data->channel), data->regs + CHANCTRL); + pm_runtime_set_active(&pdev->dev); + ret = devm_pm_runtime_enable(&pdev->dev); + if (ret) + goto out; + data->domain = irq_domain_create_linear(dev_fwnode(&pdev->dev), data->reg_num * 32, &imx_irqsteer_domain_ops, data); if (!data->domain) { @@ -262,9 +267,6 @@ static int imx_irqsteer_probe(struct platform_device *pdev) platform_set_drvdata(pdev, data); - pm_runtime_set_active(&pdev->dev); - pm_runtime_enable(&pdev->dev); - return 0; out: clk_disable_unprepare(data->ipg_clk); -- 2.43.0