[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <164442347752.16921.16997392029622093003.tip-bot2@tip-bot2>
Date: Wed, 09 Feb 2022 16:17:57 -0000
From: "irqchip-bot for Marc Zyngier" <tip-bot2@...utronix.de>
To: linux-kernel@...r.kernel.org
Cc: Marc Zyngier <maz@...nel.org>, Bartosz Golaszewski <brgl@...ev.pl>,
tglx@...utronix.de
Subject: [irqchip: irq/irqchip-next] irqchip/imx-intmux: Move PM device over
to irq domain
The following commit has been merged into the irq/irqchip-next branch of irqchip:
Commit-ID: fb140b9c0fe1109ac2269443216d114751a030c0
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms/fb140b9c0fe1109ac2269443216d114751a030c0
Author: Marc Zyngier <maz@...nel.org>
AuthorDate: Tue, 01 Feb 2022 12:03:03
Committer: Marc Zyngier <maz@...nel.org>
CommitterDate: Wed, 09 Feb 2022 13:36:53
irqchip/imx-intmux: Move PM device over to irq domain
Move the reference to the device over to the irq domain.
This allows the irq_chip structure to be directly used instead
of taking a copy for each instance.
Signed-off-by: Marc Zyngier <maz@...nel.org>
Acked-by: Bartosz Golaszewski <brgl@...ev.pl>
Link: https://lore.kernel.org/r/20220201120310.878267-6-maz@kernel.org
---
drivers/irqchip/irq-imx-intmux.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/irqchip/irq-imx-intmux.c b/drivers/irqchip/irq-imx-intmux.c
index e86ff74..80aaea8 100644
--- a/drivers/irqchip/irq-imx-intmux.c
+++ b/drivers/irqchip/irq-imx-intmux.c
@@ -61,7 +61,6 @@
#define CHAN_MAX_NUM 0x8
struct intmux_irqchip_data {
- struct irq_chip chip;
u32 saved_reg;
int chanidx;
int irq;
@@ -114,7 +113,7 @@ static void imx_intmux_irq_unmask(struct irq_data *d)
raw_spin_unlock_irqrestore(&data->lock, flags);
}
-static struct irq_chip imx_intmux_irq_chip = {
+static struct irq_chip imx_intmux_irq_chip __ro_after_init = {
.name = "intmux",
.irq_mask = imx_intmux_irq_mask,
.irq_unmask = imx_intmux_irq_unmask,
@@ -126,7 +125,7 @@ static int imx_intmux_irq_map(struct irq_domain *h, unsigned int irq,
struct intmux_irqchip_data *data = h->host_data;
irq_set_chip_data(irq, data);
- irq_set_chip_and_handler(irq, &data->chip, handle_level_irq);
+ irq_set_chip_and_handler(irq, &imx_intmux_irq_chip, handle_level_irq);
return 0;
}
@@ -241,8 +240,6 @@ static int imx_intmux_probe(struct platform_device *pdev)
}
for (i = 0; i < channum; i++) {
- data->irqchip_data[i].chip = imx_intmux_irq_chip;
- data->irqchip_data[i].chip.parent_device = &pdev->dev;
data->irqchip_data[i].chanidx = i;
data->irqchip_data[i].irq = irq_of_parse_and_map(np, i);
@@ -260,6 +257,7 @@ static int imx_intmux_probe(struct platform_device *pdev)
goto out;
}
data->irqchip_data[i].domain = domain;
+ irq_domain_set_pm_device(domain, &pdev->dev);
/* disable all interrupt sources of this channel firstly */
writel_relaxed(0, data->regs + CHANIER(i));
Powered by blists - more mailing lists