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

Commit e4304266 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
  parisc: add tty driver to PDC console
  drivers/parisc/iosapic.c: Remove unnecessary kzalloc cast
  parisc: remove homegrown L1_CACHE_ALIGN macro
  arch/parisc: Removing undead ifdef CONFIG_PA20
  parisc: unwind - optimise linked-list searches for modules
  parisc: change to new flag variable
  drivers/char/agp/parisc-agp.c: eliminate memory leak
  parisc: kill __do_IRQ
  parisc: convert eisa interrupts to flow handlers
  parisc: convert gsc and dino pci interrupts to flow handlers
  parisc: convert suckyio interrupts to flow handlers
  parisc: convert iosapic interrupts to proper flow handlers
  parisc: convert cpu interrupts to proper flow handlers
  parisc: lay groundwork for killing __do_IRQ
  parisc: add prlimit64 syscall
  parisc: squelch warning when using dev_get_stats
parents e732ff70 650a35f8
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ config PARISC
	select HAVE_IRQ_WORK
	select HAVE_PERF_EVENTS
	select GENERIC_ATOMIC64 if !64BIT
	select GENERIC_HARDIRQS_NO__DO_IRQ
	help
	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
	  in many of their workstations & servers (HP9000 700 and 800 series,
@@ -85,6 +86,9 @@ config IRQ_PER_CPU
	bool
	default y

config GENERIC_HARDIRQS_NO__DO_IRQ
	def_bool y

# unless you want to implement ACPI on PA-RISC ... ;-)
config PM
	bool
+0 −2
Original line number Diff line number Diff line
@@ -24,8 +24,6 @@

#ifndef __ASSEMBLY__

#define L1_CACHE_ALIGN(x)       (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))

#define SMP_CACHE_BYTES L1_CACHE_BYTES

#define ARCH_DMA_MINALIGN	L1_CACHE_BYTES
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ struct irq_chip;
void no_ack_irq(unsigned int irq);
void no_end_irq(unsigned int irq);
void cpu_ack_irq(unsigned int irq);
void cpu_end_irq(unsigned int irq);
void cpu_eoi_irq(unsigned int irq);

extern int txn_alloc_irq(unsigned int nbits);
extern int txn_claim_irq(int);
+2 −1
Original line number Diff line number Diff line
@@ -813,8 +813,9 @@
#define __NR_perf_event_open	(__NR_Linux + 318)
#define __NR_recvmmsg		(__NR_Linux + 319)
#define __NR_accept4		(__NR_Linux + 320)
#define __NR_prlimit64		(__NR_Linux + 321)

#define __NR_Linux_syscalls	(__NR_accept4 + 1)
#define __NR_Linux_syscalls	(__NR_prlimit64 + 1)


#define __IGNORE_select		/* newselect */
+18 −23
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ static volatile unsigned long cpu_eiem = 0;
*/
static DEFINE_PER_CPU(unsigned long, local_ack_eiem) = ~0UL;

static void cpu_disable_irq(unsigned int irq)
static void cpu_mask_irq(unsigned int irq)
{
	unsigned long eirr_bit = EIEM_MASK(irq);

@@ -63,7 +63,7 @@ static void cpu_disable_irq(unsigned int irq)
	 * then gets disabled */
}

static void cpu_enable_irq(unsigned int irq)
static void cpu_unmask_irq(unsigned int irq)
{
	unsigned long eirr_bit = EIEM_MASK(irq);

@@ -75,12 +75,6 @@ static void cpu_enable_irq(unsigned int irq)
	smp_send_all_nop();
}

static unsigned int cpu_startup_irq(unsigned int irq)
{
	cpu_enable_irq(irq);
	return 0;
}

void no_ack_irq(unsigned int irq) { }
void no_end_irq(unsigned int irq) { }

@@ -99,7 +93,7 @@ void cpu_ack_irq(unsigned int irq)
	mtctl(mask, 23);
}

void cpu_end_irq(unsigned int irq)
void cpu_eoi_irq(unsigned int irq)
{
	unsigned long mask = EIEM_MASK(irq);
	int cpu = smp_processor_id();
@@ -146,12 +140,10 @@ static int cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest)

static struct irq_chip cpu_interrupt_type = {
	.name		= "CPU",
	.startup	= cpu_startup_irq,
	.shutdown	= cpu_disable_irq,
	.enable		= cpu_enable_irq,
	.disable	= cpu_disable_irq,
	.mask		= cpu_mask_irq,
	.unmask		= cpu_unmask_irq,
	.ack		= cpu_ack_irq,
	.end		= cpu_end_irq,
	.eoi		= cpu_eoi_irq,
#ifdef CONFIG_SMP
	.set_affinity	= cpu_set_affinity_irq,
#endif
@@ -247,10 +239,11 @@ int cpu_claim_irq(unsigned int irq, struct irq_chip *type, void *data)
	if (irq_desc[irq].chip != &cpu_interrupt_type)
		return -EBUSY;

	/* for iosapic interrupts */
	if (type) {
		irq_desc[irq].chip = type;
		irq_desc[irq].chip_data = data;
		cpu_interrupt_type.enable(irq);
		set_irq_chip_and_handler(irq, type, handle_level_irq);
		set_irq_chip_data(irq, data);
		cpu_unmask_irq(irq);
	}
	return 0;
}
@@ -368,7 +361,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
		goto set_out;
	}
#endif
	__do_IRQ(irq);
	generic_handle_irq(irq);

 out:
	irq_exit();
@@ -398,14 +391,15 @@ static void claim_cpu_irqs(void)
{
	int i;
	for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) {
		irq_desc[i].chip = &cpu_interrupt_type;
		set_irq_chip_and_handler(i, &cpu_interrupt_type,
			handle_level_irq);
	}

	irq_desc[TIMER_IRQ].action = &timer_action;
	irq_desc[TIMER_IRQ].status = IRQ_PER_CPU;
	set_irq_handler(TIMER_IRQ, handle_percpu_irq);
	setup_irq(TIMER_IRQ, &timer_action);
#ifdef CONFIG_SMP
	irq_desc[IPI_IRQ].action = &ipi_action;
	irq_desc[IPI_IRQ].status = IRQ_PER_CPU;
	set_irq_handler(IPI_IRQ, handle_percpu_irq);
	setup_irq(IPI_IRQ, &ipi_action);
#endif
}

@@ -423,3 +417,4 @@ void __init init_IRQ(void)
        set_eiem(cpu_eiem);	/* EIEM : enable all external intr */

}
Loading