Skip to content

Commit

Permalink
ARM: imx: drop support for irq priorisation
Browse files Browse the repository at this point in the history
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: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
  • Loading branch information
Uwe Kleine-König authored and Shawn Guo committed Dec 9, 2013
1 parent 5a269d2 commit 81efe0f
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 36 deletions.
10 changes: 0 additions & 10 deletions arch/arm/mach-imx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
25 changes: 0 additions & 25 deletions arch/arm/mach-imx/avic.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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
Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-imx/irq-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
};

Expand Down

0 comments on commit 81efe0f

Please sign in to comment.