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

Commit 7a16d387 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha-2.6:
  alpha: Enable GENERIC_HARDIRQS_NO_DEPRECATED
  alpha: irq: Convert affinity to use irq_data
  alpha: irq: Remove pointless irq status manipulation
  alpha: titan: Convert irq_chip functions
  alpha: takara: Convert irq_chip functions
  alpha: sable: Convert irq_chip functions
  alpha: rx164: Convert irq_chip functions
  alpha: noritake: Convert irq_chip functions
  alpha: rawhide: Convert irq_chip functions
  alpha: mikasa: Convert irq_chip functions
  alpha: marvel: Convert irq_chip functions
  alpha: eiger: Convert irq_chip functions
  alpha: eb64p: Convert irq_chip functions
  alpha: dp264: Convert irq_chip functions
  alpha: cabriolet: Convert irq_chip functions
  alpha: i8259, alcor, jensen wildfire: Convert irq_chip
  alpha: srm: Convert irq_chip functions
  alpha: Pyxis convert irq_chip functions
  Fix typo in call to irq_to_desc()
parents 06f9a73f 10e53f58
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ config ALPHA
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_IRQ_PROBE
	select AUTO_IRQ_AFFINITY if SMP
	select GENERIC_HARDIRQS_NO_DEPRECATED
	help
	  The Alpha is a 64-bit general-purpose processor designed and
	  marketed by the Digital Equipment Corporation of blessed memory,
+9 −4
Original line number Diff line number Diff line
@@ -44,11 +44,16 @@ static char irq_user_affinity[NR_IRQS];

int irq_select_affinity(unsigned int irq)
{
	struct irq_desc *desc = irq_to_desc[irq];
	struct irq_data *data = irq_get_irq_data(irq);
	struct irq_chip *chip;
	static int last_cpu;
	int cpu = last_cpu + 1;

	if (!desc || !get_irq_desc_chip(desc)->set_affinity || irq_user_affinity[irq])
	if (!data)
		return 1;
	chip = irq_data_get_irq_chip(data);

	if (!chip->irq_set_affinity || irq_user_affinity[irq])
		return 1;

	while (!cpu_possible(cpu) ||
@@ -56,8 +61,8 @@ int irq_select_affinity(unsigned int irq)
		cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
	last_cpu = cpu;

	cpumask_copy(desc->affinity, cpumask_of(cpu));
	get_irq_desc_chip(desc)->set_affinity(irq, cpumask_of(cpu));
	cpumask_copy(data->affinity, cpumask_of(cpu));
	chip->irq_set_affinity(data, cpumask_of(cpu), false);
	return 0;
}
#endif /* CONFIG_SMP */
+3 −8
Original line number Diff line number Diff line
@@ -228,15 +228,10 @@ struct irqaction timer_irqaction = {
void __init
init_rtc_irq(void)
{
	struct irq_desc *desc = irq_to_desc(RTC_IRQ);

	if (desc) {
		desc->status |= IRQ_DISABLED;
	set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
				      handle_simple_irq, "RTC");
	setup_irq(RTC_IRQ, &timer_irqaction);
}
}

/* Dummy irqactions.  */
struct irqaction isa_cascade_irqaction = {
+10 −8
Original line number Diff line number Diff line
@@ -33,10 +33,10 @@ i8259_update_irq_hw(unsigned int irq, unsigned long mask)
}

inline void
i8259a_enable_irq(unsigned int irq)
i8259a_enable_irq(struct irq_data *d)
{
	spin_lock(&i8259_irq_lock);
	i8259_update_irq_hw(irq, cached_irq_mask &= ~(1 << irq));
	i8259_update_irq_hw(d->irq, cached_irq_mask &= ~(1 << d->irq));
	spin_unlock(&i8259_irq_lock);
}

@@ -47,16 +47,18 @@ __i8259a_disable_irq(unsigned int irq)
}

void
i8259a_disable_irq(unsigned int irq)
i8259a_disable_irq(struct irq_data *d)
{
	spin_lock(&i8259_irq_lock);
	__i8259a_disable_irq(irq);
	__i8259a_disable_irq(d->irq);
	spin_unlock(&i8259_irq_lock);
}

void
i8259a_mask_and_ack_irq(unsigned int irq)
i8259a_mask_and_ack_irq(struct irq_data *d)
{
	unsigned int irq = d->irq;

	spin_lock(&i8259_irq_lock);
	__i8259a_disable_irq(irq);

@@ -71,9 +73,9 @@ i8259a_mask_and_ack_irq(unsigned int irq)

struct irq_chip i8259a_irq_type = {
	.name		= "XT-PIC",
	.unmask		= i8259a_enable_irq,
	.mask		= i8259a_disable_irq,
	.mask_ack	= i8259a_mask_and_ack_irq,
	.irq_unmask	= i8259a_enable_irq,
	.irq_mask	= i8259a_disable_irq,
	.irq_mask_ack	= i8259a_mask_and_ack_irq,
};

void __init
+3 −5
Original line number Diff line number Diff line
@@ -31,11 +31,9 @@ extern void init_rtc_irq(void);

extern void common_init_isa_dma(void);

extern void i8259a_enable_irq(unsigned int);
extern void i8259a_disable_irq(unsigned int);
extern void i8259a_mask_and_ack_irq(unsigned int);
extern unsigned int i8259a_startup_irq(unsigned int);
extern void i8259a_end_irq(unsigned int);
extern void i8259a_enable_irq(struct irq_data *d);
extern void i8259a_disable_irq(struct irq_data *d);
extern void i8259a_mask_and_ack_irq(struct irq_data *d);
extern struct irq_chip i8259a_irq_type;
extern void init_i8259a_irqs(void);

Loading