Skip to content

Commit

Permalink
Merge branch 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/…
Browse files Browse the repository at this point in the history
…linux/kernel/git/tip/linux-2.6-tip

* 'irq-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (37 commits)
  um: Use generic irq Kconfig
  tile: Use generic irq Kconfig
  sparc: Use generic irq Kconfig
  score: Use generic irq Kconfig
  powerpc: Use generic irq Kconfig
  parisc: Use generic irq Kconfig
  mn10300: Use generic irq Kconfig
  microblaze: Use generic irq Kconfig
  m68knommu: Use generic irq Kconfig
  ia64: Use generic irq Kconfig
  frv: Use generic irq Kconfig
  blackfin: Use generic irq Kconfig
  alpha: Use generic irq Kconfig
  genirq: Remove __do_IRQ
  m32r: Convert to generic irq Kconfig
  m32r: Convert usrv platform irq handling
  m32r: Convert opsput_lcdpld irq chip
  m32r: Convert opsput lanpld irq chip
  m32r: Convert opsput pld irq chip
  m32r: Convert opsput irq chip
  ...
  • Loading branch information
torvalds committed Jan 21, 2011
2 parents cfd7448 + dfff95c commit 0f5c2ac
Show file tree
Hide file tree
Showing 35 changed files with 428 additions and 1,048 deletions.
8 changes: 0 additions & 8 deletions Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -357,14 +357,6 @@ Who: Dave Jones <[email protected]>, Matthew Garrett <[email protected]>

-----------------------------

What: __do_IRQ all in one fits nothing interrupt handler
When: 2.6.32
Why: __do_IRQ was kept for easy migration to the type flow handlers.
More than two years of migration time is enough.
Who: Thomas Gleixner <[email protected]>

-----------------------------

What: fakephp and associated sysfs files in /sys/bus/pci/slots/
When: 2011
Why: In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to
Expand Down
19 changes: 3 additions & 16 deletions arch/alpha/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ config ALPHA
select HAVE_IRQ_WORK
select HAVE_PERF_EVENTS
select HAVE_DMA_ATTRS
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_PROBE
select AUTO_IRQ_AFFINITY if SMP
help
The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory,
Expand Down Expand Up @@ -68,22 +71,6 @@ config GENERIC_IOMAP
bool
default n

config GENERIC_HARDIRQS_NO__DO_IRQ
def_bool y

config GENERIC_HARDIRQS
bool
default y

config GENERIC_IRQ_PROBE
bool
default y

config AUTO_IRQ_AFFINITY
bool
depends on SMP
default y

source "init/Kconfig"
source "kernel/Kconfig.freezer"

Expand Down
17 changes: 3 additions & 14 deletions arch/blackfin/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ config BLACKFIN
select HAVE_KERNEL_LZO if RAMKERNEL
select HAVE_OPROFILE
select ARCH_WANT_OPTIONAL_GPIOLIB
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_PROBE
select IRQ_PER_CPU if SMP

config GENERIC_CSUM
def_bool y
Expand All @@ -44,15 +47,6 @@ config ZONE_DMA
config GENERIC_FIND_NEXT_BIT
def_bool y

config GENERIC_HARDIRQS
def_bool y

config GENERIC_IRQ_PROBE
def_bool y

config GENERIC_HARDIRQS_NO__DO_IRQ
def_bool y

config GENERIC_GPIO
def_bool y

Expand Down Expand Up @@ -254,11 +248,6 @@ config HOTPLUG_CPU
depends on SMP && HOTPLUG
default y

config IRQ_PER_CPU
bool
depends on SMP
default y

config HAVE_LEGACY_PER_CPU_AREA
def_bool y
depends on SMP
Expand Down
6 changes: 2 additions & 4 deletions arch/cris/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ config CRIS
bool
default y
select HAVE_IDE
select HAVE_GENERIC_HARDIRQS
select GENERIC_HARDIRQS_NO_DEPRECATED

config HZ
int
Expand All @@ -67,10 +69,6 @@ menu "General setup"

source "fs/Kconfig.binfmt"

config GENERIC_HARDIRQS
bool
default y

config ETRAX_CMDLINE
string "Kernel command line"
default "root=/dev/mtdblock3"
Expand Down
41 changes: 10 additions & 31 deletions arch/cris/arch-v10/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,43 +104,21 @@ static void (*interrupt[NR_IRQS])(void) = {
IRQ31_interrupt
};

static void enable_crisv10_irq(unsigned int irq);

static unsigned int startup_crisv10_irq(unsigned int irq)
{
enable_crisv10_irq(irq);
return 0;
}

#define shutdown_crisv10_irq disable_crisv10_irq

static void enable_crisv10_irq(unsigned int irq)
{
crisv10_unmask_irq(irq);
}

static void disable_crisv10_irq(unsigned int irq)
{
crisv10_mask_irq(irq);
}

static void ack_crisv10_irq(unsigned int irq)
static void enable_crisv10_irq(struct irq_data *data)
{
crisv10_unmask_irq(data->irq);
}

static void end_crisv10_irq(unsigned int irq)
static void disable_crisv10_irq(struct irq_data *data)
{
crisv10_mask_irq(data->irq);
}

static struct irq_chip crisv10_irq_type = {
.name = "CRISv10",
.startup = startup_crisv10_irq,
.shutdown = shutdown_crisv10_irq,
.enable = enable_crisv10_irq,
.disable = disable_crisv10_irq,
.ack = ack_crisv10_irq,
.end = end_crisv10_irq,
.set_affinity = NULL
.name = "CRISv10",
.irq_shutdown = disable_crisv10_irq,
.irq_enable = enable_crisv10_irq,
.irq_disable = disable_crisv10_irq,
};

void weird_irq(void);
Expand Down Expand Up @@ -221,7 +199,8 @@ init_IRQ(void)

/* Initialize IRQ handler descriptors. */
for(i = 2; i < NR_IRQS; i++) {
irq_desc[i].chip = &crisv10_irq_type;
set_irq_desc_and_handler(i, &crisv10_irq_type,
handle_simple_irq);
set_int_vector(i, interrupt[i]);
}

Expand Down
50 changes: 15 additions & 35 deletions arch/cris/arch-v32/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,54 +291,33 @@ void crisv32_unmask_irq(int irq)
}


static unsigned int startup_crisv32_irq(unsigned int irq)
static void enable_crisv32_irq(struct irq_data *data)
{
crisv32_unmask_irq(irq);
return 0;
}

static void shutdown_crisv32_irq(unsigned int irq)
{
crisv32_mask_irq(irq);
crisv32_unmask_irq(data->irq);
}

static void enable_crisv32_irq(unsigned int irq)
static void disable_crisv32_irq(struct irq_data *data)
{
crisv32_unmask_irq(irq);
crisv32_mask_irq(data->irq);
}

static void disable_crisv32_irq(unsigned int irq)
{
crisv32_mask_irq(irq);
}

static void ack_crisv32_irq(unsigned int irq)
{
}

static void end_crisv32_irq(unsigned int irq)
{
}

int set_affinity_crisv32_irq(unsigned int irq, const struct cpumask *dest)
static int set_affinity_crisv32_irq(struct irq_data *data,
const struct cpumask *dest, bool force)
{
unsigned long flags;

spin_lock_irqsave(&irq_lock, flags);
irq_allocations[irq - FIRST_IRQ].mask = *dest;
irq_allocations[data->irq - FIRST_IRQ].mask = *dest;
spin_unlock_irqrestore(&irq_lock, flags);

return 0;
}

static struct irq_chip crisv32_irq_type = {
.name = "CRISv32",
.startup = startup_crisv32_irq,
.shutdown = shutdown_crisv32_irq,
.enable = enable_crisv32_irq,
.disable = disable_crisv32_irq,
.ack = ack_crisv32_irq,
.end = end_crisv32_irq,
.set_affinity = set_affinity_crisv32_irq
.name = "CRISv32",
.irq_shutdown = disable_crisv32_irq,
.irq_enable = enable_crisv32_irq,
.irq_disable = disable_crisv32_irq,
.irq_set_affinity = set_affinity_crisv32_irq,
};

void
Expand Down Expand Up @@ -472,7 +451,8 @@ init_IRQ(void)

/* Point all IRQ's to bad handlers. */
for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) {
irq_desc[j].chip = &crisv32_irq_type;
set_irq_chip_and_handler(j, &crisv32_irq_type,
handle_simple_irq);
set_exception_vector(i, interrupt[j]);
}

Expand Down
6 changes: 3 additions & 3 deletions arch/cris/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ int show_interrupts(struct seq_file *p, void *v)
for_each_online_cpu(j)
seq_printf(p, "%10u ", kstat_irqs_cpu(i, j));
#endif
seq_printf(p, " %14s", irq_desc[i].chip->name);
seq_printf(p, " %14s", irq_desc[i].irq_data.chip->name);
seq_printf(p, " %s", action->name);

for (action=action->next; action; action = action->next)
Expand Down Expand Up @@ -93,8 +93,8 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
printk("do_IRQ: stack overflow: %lX\n", sp);
show_stack(NULL, (unsigned long *)sp);
}
__do_IRQ(irq);
irq_exit();
generic_handle_irq(irq);
irq_exit();
set_irq_regs(old_regs);
}

Expand Down
9 changes: 1 addition & 8 deletions arch/frv/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ config FRV
select HAVE_ARCH_TRACEHOOK
select HAVE_IRQ_WORK
select HAVE_PERF_EVENTS
select HAVE_GENERIC_HARDIRQS

config ZONE_DMA
bool
Expand All @@ -29,14 +30,6 @@ config GENERIC_CALIBRATE_DELAY
bool
default n

config GENERIC_HARDIRQS
bool
default y

config GENERIC_HARDIRQS_NO__DO_IRQ
bool
default y

config TIME_LOW_RES
bool
default y
Expand Down
6 changes: 2 additions & 4 deletions arch/h8300/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ config H8300
bool
default y
select HAVE_IDE
select HAVE_GENERIC_HARDIRQS
select GENERIC_HARDIRQS_NO_DEPRECATED

config SYMBOL_PREFIX
string
Expand Down Expand Up @@ -47,10 +49,6 @@ config GENERIC_HWEIGHT
bool
default y

config GENERIC_HARDIRQS
bool
default y

config GENERIC_CALIBRATE_DELAY
bool
default y
Expand Down
Loading

0 comments on commit 0f5c2ac

Please sign in to comment.