Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81243651 authored by Tero Kristo's avatar Tero Kristo Committed by Paul Walmsley
Browse files

ARM: OMAP3/4: PRM: provide io chain reconfig function through irq setup



This helps to make the PRM registration modular, and also gets rid of a
cpu type check done later.

Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
parent d8871cd2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@ struct omap_prcm_irq {
 * @ocp_barrier: fn ptr to force buffered PRM writes to complete
 * @save_and_clear_irqen: fn ptr to save and clear IRQENABLE regs
 * @restore_irqen: fn ptr to save and clear IRQENABLE regs
 * @reconfigure_io_chain: fn ptr to reconfigure IO chain
 * @saved_mask: IRQENABLE regs are saved here during suspend
 * @priority_mask: 1 bit per IRQ, set to 1 if omap_prcm_irq.priority = true
 * @base_irq: base dynamic IRQ number, returned from irq_alloc_descs() in init
@@ -501,6 +502,7 @@ struct omap_prcm_irq_setup {
	void (*ocp_barrier)(void);
	void (*save_and_clear_irqen)(u32 *saved_mask);
	void (*restore_irqen)(u32 *saved_mask);
	void (*reconfigure_io_chain)(void);
	u32 *saved_mask;
	u32 *priority_mask;
	int base_irq;
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ static struct omap_prcm_irq_setup omap3_prcm_irq_setup = {
	.ocp_barrier		= &omap3xxx_prm_ocp_barrier,
	.save_and_clear_irqen	= &omap3xxx_prm_save_and_clear_irqen,
	.restore_irqen		= &omap3xxx_prm_restore_irqen,
	.reconfigure_io_chain	= &omap3xxx_prm_reconfigure_io_chain,
};

/*
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ static struct omap_prcm_irq_setup omap4_prcm_irq_setup = {
	.ocp_barrier		= &omap44xx_prm_ocp_barrier,
	.save_and_clear_irqen	= &omap44xx_prm_save_and_clear_irqen,
	.restore_irqen		= &omap44xx_prm_restore_irqen,
	.reconfigure_io_chain	= &omap44xx_prm_reconfigure_io_chain,
};

/*
+1 −6
Original line number Diff line number Diff line
@@ -330,12 +330,7 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup)

	if (of_have_populated_dt()) {
		int irq = omap_prcm_event_to_irq("io");
		if (cpu_is_omap34xx())
			omap_pcs_legacy_init(irq,
				omap3xxx_prm_reconfigure_io_chain);
		else
			omap_pcs_legacy_init(irq,
				omap44xx_prm_reconfigure_io_chain);
		omap_pcs_legacy_init(irq, irq_setup->reconfigure_io_chain);
	}

	return 0;