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

Commit 81efe0fc authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Shawn Guo
Browse files

ARM: imx: drop support for irq priorisation



The code for irq priorisation support doesn't have any in-tree users and
the Kconfig description does wrong promises because nowadays irq
handlers are called with irqs disabled, so no high prioritized irq can
interrupt a lower prioritized handler.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
parent 5a269d22
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -20,16 +20,6 @@ config ARCH_MXC
menu "Freescale i.MX support"
	depends on ARCH_MXC

config MXC_IRQ_PRIOR
	bool "Use IRQ priority"
	help
	  Select this if you want to use prioritized IRQ handling.
	  This feature prevents higher priority ISR to be interrupted
	  by lower priority IRQ.
	  This may be useful in embedded applications, where are strong
	  requirements for timing.
	  Say N here, unless you have a specialized requirement.

config MXC_TZIC
	bool

+0 −25
Original line number Diff line number Diff line
@@ -54,28 +54,6 @@
static void __iomem *avic_base;
static struct irq_domain *domain;

#ifdef CONFIG_MXC_IRQ_PRIOR
static int avic_irq_set_priority(unsigned char irq, unsigned char prio)
{
	struct irq_data *d = irq_get_irq_data(irq);
	unsigned int temp;
	unsigned int mask = 0x0F << irq % 8 * 4;

	irq = d->hwirq;

	if (irq >= AVIC_NUM_IRQS)
		return -EINVAL;

	temp = __raw_readl(avic_base + AVIC_NIPRIORITY(irq / 8));
	temp &= ~mask;
	temp |= prio & mask;

	__raw_writel(temp, avic_base + AVIC_NIPRIORITY(irq / 8));

	return 0;
}
#endif

#ifdef CONFIG_FIQ
static int avic_set_irq_fiq(unsigned int irq, unsigned int type)
{
@@ -102,9 +80,6 @@ static int avic_set_irq_fiq(unsigned int irq, unsigned int type)


static struct mxc_extra_irq avic_extra_irq = {
#ifdef CONFIG_MXC_IRQ_PRIOR
	.set_priority = avic_irq_set_priority,
#endif
#ifdef CONFIG_FIQ
	.set_irq_fiq = avic_set_irq_fiq,
#endif
+0 −1
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@

struct mxc_extra_irq
{
	int (*set_priority)(unsigned char irq, unsigned char prio);
	int (*set_irq_fiq)(unsigned int irq, unsigned int type);
};