All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 0/8] ia64: Convert irq_chips to new functions
@ 2011-02-05 19:44 Thomas Gleixner
  2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

The following series converts the interrupt chips to the new
functions.Compile tested only.

Thanks,

	tglx



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 1/8] ia64: Remove stale irq_chip.end
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
  2011-02-05 19:44 ` [patch 2/8] ia64: Convert hp-sim to new irq_chip functions Thomas Gleixner
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck, Peter Zijlstra

[-- Attachment #1: ia64-remove-stale-irq_chip-end.patch --]
[-- Type: text/plain, Size: 3378 bytes --]

irq_chip.end got obsolete with the removal of __do_IRQ().

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tony Luck <tony.luck@intel.com>
LKML-Reference: <20110203004210.143127544@linutronix.de>
---
 arch/ia64/hp/sim/hpsim_irq.c  |    1 -
 arch/ia64/kernel/iosapic.c    |    2 --
 arch/ia64/kernel/irq_lsapic.c |    1 -
 arch/ia64/sn/kernel/irq.c     |   23 -----------------------
 4 files changed, 27 deletions(-)

Index: linux-next/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux-next.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux-next/arch/ia64/hp/sim/hpsim_irq.c
@@ -34,7 +34,6 @@ static struct irq_chip irq_type_hp_sim =
 	.enable =	hpsim_irq_noop,
 	.disable =	hpsim_irq_noop,
 	.ack =		hpsim_irq_noop,
-	.end =		hpsim_irq_noop,
 	.set_affinity =	hpsim_set_affinity_noop,
 };
 
Index: linux-next/arch/ia64/kernel/iosapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/iosapic.c
+++ linux-next/arch/ia64/kernel/iosapic.c
@@ -460,7 +460,6 @@ iosapic_ack_edge_irq (unsigned int irq)
 
 #define iosapic_enable_edge_irq		unmask_irq
 #define iosapic_disable_edge_irq	nop
-#define iosapic_end_edge_irq		nop
 
 static struct irq_chip irq_type_iosapic_edge = {
 	.name =		"IO-SAPIC-edge",
@@ -469,7 +468,6 @@ static struct irq_chip irq_type_iosapic_
 	.enable =	iosapic_enable_edge_irq,
 	.disable =	iosapic_disable_edge_irq,
 	.ack =		iosapic_ack_edge_irq,
-	.end =		iosapic_end_edge_irq,
 	.mask =		mask_irq,
 	.unmask =	unmask_irq,
 	.set_affinity =	iosapic_set_affinity
Index: linux-next/arch/ia64/kernel/irq_lsapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/irq_lsapic.c
+++ linux-next/arch/ia64/kernel/irq_lsapic.c
@@ -40,6 +40,5 @@ struct irq_chip irq_type_ia64_lsapic = {
 	.enable =	lsapic_noop,
 	.disable =	lsapic_noop,
 	.ack =		lsapic_noop,
-	.end =		lsapic_noop,
 	.retrigger =	lsapic_retrigger,
 };
Index: linux-next/arch/ia64/sn/kernel/irq.c
===================================================================
--- linux-next.orig/arch/ia64/sn/kernel/irq.c
+++ linux-next/arch/ia64/sn/kernel/irq.c
@@ -114,28 +114,6 @@ static void sn_ack_irq(unsigned int irq)
 	move_native_irq(irq);
 }
 
-static void sn_end_irq(unsigned int irq)
-{
-	int ivec;
-	u64 event_occurred;
-
-	ivec = irq & 0xff;
-	if (ivec == SGI_UART_VECTOR) {
-		event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR (SH_EVENT_OCCURRED));
-		/* If the UART bit is set here, we may have received an
-		 * interrupt from the UART that the driver missed.  To
-		 * make sure, we IPI ourselves to force us to look again.
-		 */
-		if (event_occurred & SH_EVENT_OCCURRED_UART_INT_MASK) {
-			platform_send_ipi(smp_processor_id(), SGI_UART_VECTOR,
-					  IA64_IPI_DM_INT, 0);
-		}
-	}
-	__clear_bit(ivec, (volatile void *)pda->sn_in_service_ivecs);
-	if (sn_force_interrupt_flag)
-		force_interrupt(irq);
-}
-
 static void sn_irq_info_free(struct rcu_head *head);
 
 struct sn_irq_info *sn_retarget_vector(struct sn_irq_info *sn_irq_info,
@@ -275,7 +253,6 @@ struct irq_chip irq_type_sn = {
 	.enable		= sn_enable_irq,
 	.disable	= sn_disable_irq,
 	.ack		= sn_ack_irq,
-	.end		= sn_end_irq,
 	.mask		= sn_mask_irq,
 	.unmask		= sn_unmask_irq,
 	.set_affinity	= sn_set_affinity_irq



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 2/8] ia64: Convert hp-sim to new irq_chip functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
  2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
  2011-02-05 19:44 ` [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc Thomas Gleixner
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-convert-hp-sim.patch --]
[-- Type: text/plain, Size: 1322 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/hp/sim/hpsim_irq.c |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

Index: linux-next/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux-next.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux-next/arch/ia64/hp/sim/hpsim_irq.c
@@ -11,30 +11,30 @@
 #include <linux/irq.h>
 
 static unsigned int
-hpsim_irq_startup (unsigned int irq)
+hpsim_irq_startup(struct irq_data *data)
 {
 	return 0;
 }
 
 static void
-hpsim_irq_noop (unsigned int irq)
+hpsim_irq_noop(struct irq_data *data)
 {
 }
 
 static int
-hpsim_set_affinity_noop(unsigned int a, const struct cpumask *b)
+hpsim_set_affinity_noop(struct irq_data *d, const struct cpumask *b, bool f)
 {
 	return 0;
 }
 
 static struct irq_chip irq_type_hp_sim = {
-	.name =		"hpsim",
-	.startup =	hpsim_irq_startup,
-	.shutdown =	hpsim_irq_noop,
-	.enable =	hpsim_irq_noop,
-	.disable =	hpsim_irq_noop,
-	.ack =		hpsim_irq_noop,
-	.set_affinity =	hpsim_set_affinity_noop,
+	.name =			"hpsim",
+	.irq_startup =		hpsim_irq_startup,
+	.irq_shutdown =		hpsim_irq_noop,
+	.irq_enable =		hpsim_irq_noop,
+	.irq_disable =		hpsim_irq_noop,
+	.irq_ack =		hpsim_irq_noop,
+	.irq_set_affinity =	hpsim_set_affinity_noop,
 };
 
 void __init



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
  2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
  2011-02-05 19:44 ` [patch 2/8] ia64: Convert hp-sim to new irq_chip functions Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
  2011-02-05 19:44 ` [patch 4/8] ia64: Convert msi_sn to new irq_chip functions Thomas Gleixner
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-hp-sim-use-accessor-functions.patch --]
[-- Type: text/plain, Size: 834 bytes --]

Use accessor functions instead of open coded access.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/hp/sim/hpsim_irq.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Index: linux-next/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux-next.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux-next/arch/ia64/hp/sim/hpsim_irq.c
@@ -40,12 +40,12 @@ static struct irq_chip irq_type_hp_sim =
 void __init
 hpsim_irq_init (void)
 {
-	struct irq_desc *idesc;
 	int i;
 
-	for (i = 0; i < NR_IRQS; ++i) {
-		idesc = irq_desc + i;
-		if (idesc->chip == &no_irq_chip)
-			idesc->chip = &irq_type_hp_sim;
+	for_each_active_irq(i) {
+		struct irq_chip *chip = get_irq_chip(i);
+
+		if (chip == &no_irq_chip)
+			set_irq_chip(i, &irq_type_hp_sim);
 	}
 }



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 4/8] ia64: Convert msi_sn to new irq_chip functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
                   ` (2 preceding siblings ...)
  2011-02-05 19:44 ` [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
  2011-02-05 19:44 ` [patch 5/8] ia64: Convert sn " Thomas Gleixner
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-convert-msi-sn-irq-chip.patch --]
[-- Type: text/plain, Size: 2164 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/sn/kernel/msi_sn.c |   28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

Index: linux-next/arch/ia64/sn/kernel/msi_sn.c
===================================================================
--- linux-next.orig/arch/ia64/sn/kernel/msi_sn.c
+++ linux-next/arch/ia64/sn/kernel/msi_sn.c
@@ -152,8 +152,8 @@ int sn_setup_msi_irq(struct pci_dev *pde
 }
 
 #ifdef CONFIG_SMP
-static int sn_set_msi_irq_affinity(unsigned int irq,
-				    const struct cpumask *cpu_mask)
+static int sn_set_msi_irq_affinity(struct irq_data *data,
+				   const struct cpumask *cpu_mask, bool force)
 {
 	struct msi_msg msg;
 	int slice;
@@ -164,7 +164,7 @@ static int sn_set_msi_irq_affinity(unsig
 	struct sn_irq_info *sn_irq_info;
 	struct sn_irq_info *new_irq_info;
 	struct sn_pcibus_provider *provider;
-	unsigned int cpu;
+	unsigned int cpu, irq = data->irq;
 
 	cpu = cpumask_first(cpu_mask);
 	sn_irq_info = sn_msi_info[irq].sn_irq_info;
@@ -206,33 +206,33 @@ static int sn_set_msi_irq_affinity(unsig
 	msg.address_lo = (u32)(bus_addr & 0x00000000ffffffff);
 
 	write_msi_msg(irq, &msg);
-	cpumask_copy(irq_desc[irq].affinity, cpu_mask);
+	cpumask_copy(data->affinity, cpu_mask);
 
 	return 0;
 }
 #endif /* CONFIG_SMP */
 
-static void sn_ack_msi_irq(unsigned int irq)
+static void sn_ack_msi_irq(struct irq_data *data)
 {
-	move_native_irq(irq);
+	move_native_irq(data->irq);
 	ia64_eoi();
 }
 
-static int sn_msi_retrigger_irq(unsigned int irq)
+static int sn_msi_retrigger_irq(struct irq_data *data)
 {
-	unsigned int vector = irq;
+	unsigned int vector = data->irq;
 	ia64_resend_irq(vector);
 
 	return 1;
 }
 
 static struct irq_chip sn_msi_chip = {
-	.name		= "PCI-MSI",
-	.irq_mask	= mask_msi_irq,
-	.irq_unmask	= unmask_msi_irq,
-	.ack		= sn_ack_msi_irq,
+	.name			= "PCI-MSI",
+	.irq_mask		= mask_msi_irq,
+	.irq_unmask		= unmask_msi_irq,
+	.irq_ack		= sn_ack_msi_irq,
 #ifdef CONFIG_SMP
-	.set_affinity	= sn_set_msi_irq_affinity,
+	.irq_set_affinity	= sn_set_msi_irq_affinity,
 #endif
-	.retrigger	= sn_msi_retrigger_irq,
+	.irq_retrigger		= sn_msi_retrigger_irq,
 };



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 5/8] ia64: Convert sn to new irq_chip functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
                   ` (3 preceding siblings ...)
  2011-02-05 19:44 ` [patch 4/8] ia64: Convert msi_sn to new irq_chip functions Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
  2011-02-05 19:45 ` [patch 6/8] ia64: Convert msi " Thomas Gleixner
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-convert-sn-irq-chip.patch --]
[-- Type: text/plain, Size: 2874 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/sn/kernel/irq.c |   44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

Index: linux-next/arch/ia64/sn/kernel/irq.c
===================================================================
--- linux-next.orig/arch/ia64/sn/kernel/irq.c
+++ linux-next/arch/ia64/sn/kernel/irq.c
@@ -78,34 +78,34 @@ u64 sn_intr_redirect(nasid_t local_nasid
 	return ret_stuff.status;
 }
 
-static unsigned int sn_startup_irq(unsigned int irq)
+static unsigned int sn_startup_irq(struct irq_data *data)
 {
 	return 0;
 }
 
-static void sn_shutdown_irq(unsigned int irq)
+static void sn_shutdown_irq(struct irq_data *data)
 {
 }
 
 extern void ia64_mca_register_cpev(int);
 
-static void sn_disable_irq(unsigned int irq)
+static void sn_disable_irq(struct irq_data *data)
 {
-	if (irq == local_vector_to_irq(IA64_CPE_VECTOR))
+	if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR))
 		ia64_mca_register_cpev(0);
 }
 
-static void sn_enable_irq(unsigned int irq)
+static void sn_enable_irq(struct irq_data *data)
 {
-	if (irq == local_vector_to_irq(IA64_CPE_VECTOR))
-		ia64_mca_register_cpev(irq);
+	if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR))
+		ia64_mca_register_cpev(data->irq);
 }
 
-static void sn_ack_irq(unsigned int irq)
+static void sn_ack_irq(struct irq_data *data)
 {
 	u64 event_occurred, mask;
+	unsigned int irq = data->irq & 0xff;
 
-	irq = irq & 0xff;
 	event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED));
 	mask = event_occurred & SH_ALL_INT_MASK;
 	HUB_S((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS), mask);
@@ -206,9 +206,11 @@ finish_up:
 	return new_irq_info;
 }
 
-static int sn_set_affinity_irq(unsigned int irq, const struct cpumask *mask)
+static int sn_set_affinity_irq(struct irq_data *data,
+			       const struct cpumask *mask, bool force)
 {
 	struct sn_irq_info *sn_irq_info, *sn_irq_info_safe;
+	unsigned int irq = data->irq;
 	nasid_t nasid;
 	int slice;
 
@@ -237,25 +239,25 @@ void sn_set_err_irq_affinity(unsigned in
 #endif
 
 static void
-sn_mask_irq(unsigned int irq)
+sn_mask_irq(struct irq_data *data)
 {
 }
 
 static void
-sn_unmask_irq(unsigned int irq)
+sn_unmask_irq(struct irq_data *data)
 {
 }
 
 struct irq_chip irq_type_sn = {
-	.name		= "SN hub",
-	.startup	= sn_startup_irq,
-	.shutdown	= sn_shutdown_irq,
-	.enable		= sn_enable_irq,
-	.disable	= sn_disable_irq,
-	.ack		= sn_ack_irq,
-	.mask		= sn_mask_irq,
-	.unmask		= sn_unmask_irq,
-	.set_affinity	= sn_set_affinity_irq
+	.name			= "SN hub",
+	.irq_startup		= sn_startup_irq,
+	.irq_shutdown		= sn_shutdown_irq,
+	.irq_enable		= sn_enable_irq,
+	.irq_disable		= sn_disable_irq,
+	.irq_ack		= sn_ack_irq,
+	.irq_mask		= sn_mask_irq,
+	.irq_unmask		= sn_unmask_irq,
+	.irq_set_affinity	= sn_set_affinity_irq
 };
 
 ia64_vector sn_irq_to_vector(int irq)



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 6/8] ia64: Convert msi to new irq_chip functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
                   ` (4 preceding siblings ...)
  2011-02-05 19:44 ` [patch 5/8] ia64: Convert sn " Thomas Gleixner
@ 2011-02-05 19:45 ` Thomas Gleixner
  2011-02-05 19:45 ` [patch 7/8] ia64: Convert lsapic " Thomas Gleixner
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:45 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-convert-msi.patch --]
[-- Type: text/plain, Size: 3314 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/kernel/msi_ia64.c |   41 ++++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 19 deletions(-)

Index: linux-next/arch/ia64/kernel/msi_ia64.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/msi_ia64.c
+++ linux-next/arch/ia64/kernel/msi_ia64.c
@@ -12,12 +12,13 @@
 static struct irq_chip	ia64_msi_chip;
 
 #ifdef CONFIG_SMP
-static int ia64_set_msi_irq_affinity(unsigned int irq,
-				      const cpumask_t *cpu_mask)
+static int ia64_set_msi_irq_affinity(struct irq_data *idata,
+				     const cpumask_t *cpu_mask, bool force)
 {
 	struct msi_msg msg;
 	u32 addr, data;
 	int cpu = first_cpu(*cpu_mask);
+	unsigned int irq = idata->irq;
 
 	if (!cpu_online(cpu))
 		return -1;
@@ -38,7 +39,7 @@ static int ia64_set_msi_irq_affinity(uns
 	msg.data = data;
 
 	write_msi_msg(irq, &msg);
-	cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
+	cpumask_copy(idata->affinity, cpumask_of(cpu));
 
 	return 0;
 }
@@ -84,16 +85,16 @@ void ia64_teardown_msi_irq(unsigned int 
 	destroy_irq(irq);
 }
 
-static void ia64_ack_msi_irq(unsigned int irq)
+static void ia64_ack_msi_irq(struct irq_data *data)
 {
-	irq_complete_move(irq);
-	move_native_irq(irq);
+	irq_complete_move(data->irq);
+	move_native_irq(data->irq);
 	ia64_eoi();
 }
 
-static int ia64_msi_retrigger_irq(unsigned int irq)
+static int ia64_msi_retrigger_irq(struct irq_data *data)
 {
-	unsigned int vector = irq_to_vector(irq);
+	unsigned int vector = irq_to_vector(data->irq);
 	ia64_resend_irq(vector);
 
 	return 1;
@@ -103,14 +104,14 @@ static int ia64_msi_retrigger_irq(unsign
  * Generic ops used on most IA64 platforms.
  */
 static struct irq_chip ia64_msi_chip = {
-	.name		= "PCI-MSI",
-	.irq_mask	= mask_msi_irq,
-	.irq_unmask	= unmask_msi_irq,
-	.ack		= ia64_ack_msi_irq,
+	.name			= "PCI-MSI",
+	.irq_mask		= mask_msi_irq,
+	.irq_unmask		= unmask_msi_irq,
+	.irq_ack		= ia64_ack_msi_irq,
 #ifdef CONFIG_SMP
-	.set_affinity	= ia64_set_msi_irq_affinity,
+	.irq_set_affinity	= ia64_set_msi_irq_affinity,
 #endif
-	.retrigger	= ia64_msi_retrigger_irq,
+	.irq_retrigger		= ia64_msi_retrigger_irq,
 };
 
 
@@ -132,8 +133,10 @@ void arch_teardown_msi_irq(unsigned int 
 
 #ifdef CONFIG_DMAR
 #ifdef CONFIG_SMP
-static int dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
+static int dmar_msi_set_affinity(struct irq_data *data,
+				 const struct cpumask *mask, bool force)
 {
+	unsigned int irq = data->irq;
 	struct irq_cfg *cfg = irq_cfg + irq;
 	struct msi_msg msg;
 	int cpu = cpumask_first(mask);
@@ -152,7 +155,7 @@ static int dmar_msi_set_affinity(unsigne
 	msg.address_lo |= MSI_ADDR_DEST_ID_CPU(cpu_physical_id(cpu));
 
 	dmar_msi_write(irq, &msg);
-	cpumask_copy(irq_desc[irq].affinity, mask);
+	cpumask_copy(data->affinity, mask);
 
 	return 0;
 }
@@ -162,11 +165,11 @@ static struct irq_chip dmar_msi_type = {
 	.name = "DMAR_MSI",
 	.irq_unmask = dmar_msi_unmask,
 	.irq_mask = dmar_msi_mask,
-	.ack = ia64_ack_msi_irq,
+	.irq_ack = ia64_ack_msi_irq,
 #ifdef CONFIG_SMP
-	.set_affinity = dmar_msi_set_affinity,
+	.irq_set_affinity = dmar_msi_set_affinity,
 #endif
-	.retrigger = ia64_msi_retrigger_irq,
+	.irq_retrigger = ia64_msi_retrigger_irq,
 };
 
 static int



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 7/8] ia64: Convert lsapic to new irq_chip functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
                   ` (5 preceding siblings ...)
  2011-02-05 19:45 ` [patch 6/8] ia64: Convert msi " Thomas Gleixner
@ 2011-02-05 19:45 ` Thomas Gleixner
  2011-02-05 19:45 ` [patch 8/8] ia64: Convert iosapic " Thomas Gleixner
  2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:45 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-convert-lsapic.patch --]
[-- Type: text/plain, Size: 1297 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/kernel/irq_lsapic.c |   22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

Index: linux-next/arch/ia64/kernel/irq_lsapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/irq_lsapic.c
+++ linux-next/arch/ia64/kernel/irq_lsapic.c
@@ -15,30 +15,30 @@
 #include <linux/irq.h>
 
 static unsigned int
-lsapic_noop_startup (unsigned int irq)
+lsapic_noop_startup (struct irq_data *data)
 {
 	return 0;
 }
 
 static void
-lsapic_noop (unsigned int irq)
+lsapic_noop (struct irq_data *data)
 {
 	/* nothing to do... */
 }
 
-static int lsapic_retrigger(unsigned int irq)
+static int lsapic_retrigger(struct irq_data *data)
 {
-	ia64_resend_irq(irq);
+	ia64_resend_irq(data->irq);
 
 	return 1;
 }
 
 struct irq_chip irq_type_ia64_lsapic = {
-	.name =		"LSAPIC",
-	.startup =	lsapic_noop_startup,
-	.shutdown =	lsapic_noop,
-	.enable =	lsapic_noop,
-	.disable =	lsapic_noop,
-	.ack =		lsapic_noop,
-	.retrigger =	lsapic_retrigger,
+	.name =			"LSAPIC",
+	.irq_startup =		lsapic_noop_startup,
+	.irq_shutdown =		lsapic_noop,
+	.irq_enable =		lsapic_noop,
+	.irq_disable =		lsapic_noop,
+	.irq_ack =		lsapic_noop,
+	.irq_retrigger =	lsapic_retrigger,
 };



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [patch 8/8] ia64: Convert iosapic to new irq_chip functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
                   ` (6 preceding siblings ...)
  2011-02-05 19:45 ` [patch 7/8] ia64: Convert lsapic " Thomas Gleixner
@ 2011-02-05 19:45 ` Thomas Gleixner
  2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
  8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:45 UTC (permalink / raw)
  To: LKML; +Cc: Tony Luck

[-- Attachment #1: ia64-convert-iosapic.patch --]
[-- Type: text/plain, Size: 4811 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/ia64/kernel/iosapic.c |   70 ++++++++++++++++++++++++---------------------
 1 file changed, 38 insertions(+), 32 deletions(-)

Index: linux-next/arch/ia64/kernel/iosapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/iosapic.c
+++ linux-next/arch/ia64/kernel/iosapic.c
@@ -257,7 +257,7 @@ set_rte (unsigned int gsi, unsigned int 
 }
 
 static void
-nop (unsigned int irq)
+nop (struct irq_data *data)
 {
 	/* do nothing... */
 }
@@ -287,8 +287,9 @@ kexec_disable_iosapic(void)
 #endif
 
 static void
-mask_irq (unsigned int irq)
+mask_irq (struct irq_data *data)
 {
+	unsigned int irq = data->irq;
 	u32 low32;
 	int rte_index;
 	struct iosapic_rte_info *rte;
@@ -305,8 +306,9 @@ mask_irq (unsigned int irq)
 }
 
 static void
-unmask_irq (unsigned int irq)
+unmask_irq (struct irq_data *data)
 {
+	unsigned int irq = data->irq;
 	u32 low32;
 	int rte_index;
 	struct iosapic_rte_info *rte;
@@ -323,9 +325,11 @@ unmask_irq (unsigned int irq)
 
 
 static int
-iosapic_set_affinity(unsigned int irq, const struct cpumask *mask)
+iosapic_set_affinity(struct irq_data *data, const struct cpumask *mask,
+		     bool force)
 {
 #ifdef CONFIG_SMP
+	unsigned int irq = data->irq;
 	u32 high32, low32;
 	int cpu, dest, rte_index;
 	int redir = (irq & IA64_IRQ_REDIRECTED) ? 1 : 0;
@@ -379,15 +383,16 @@ iosapic_set_affinity(unsigned int irq, c
  */
 
 static unsigned int
-iosapic_startup_level_irq (unsigned int irq)
+iosapic_startup_level_irq (struct irq_data *data)
 {
-	unmask_irq(irq);
+	unmask_irq(data);
 	return 0;
 }
 
 static void
-iosapic_unmask_level_irq (unsigned int irq)
+iosapic_unmask_level_irq (struct irq_data *data)
 {
+	unsigned int irq = data->irq;
 	ia64_vector vec = irq_to_vector(irq);
 	struct iosapic_rte_info *rte;
 	int do_unmask_irq = 0;
@@ -395,16 +400,16 @@ iosapic_unmask_level_irq (unsigned int i
 	irq_complete_move(irq);
 	if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) {
 		do_unmask_irq = 1;
-		mask_irq(irq);
+		mask_irq(data);
 	} else
-		unmask_irq(irq);
+		unmask_irq(data);
 
 	list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list)
 		iosapic_eoi(rte->iosapic->addr, vec);
 
 	if (unlikely(do_unmask_irq)) {
 		move_masked_irq(irq);
-		unmask_irq(irq);
+		unmask_irq(data);
 	}
 }
 
@@ -414,15 +419,15 @@ iosapic_unmask_level_irq (unsigned int i
 #define iosapic_ack_level_irq		nop
 
 static struct irq_chip irq_type_iosapic_level = {
-	.name =		"IO-SAPIC-level",
-	.startup =	iosapic_startup_level_irq,
-	.shutdown =	iosapic_shutdown_level_irq,
-	.enable =	iosapic_enable_level_irq,
-	.disable =	iosapic_disable_level_irq,
-	.ack =		iosapic_ack_level_irq,
-	.mask =		mask_irq,
-	.unmask =	iosapic_unmask_level_irq,
-	.set_affinity =	iosapic_set_affinity
+	.name =			"IO-SAPIC-level",
+	.irq_startup =		iosapic_startup_level_irq,
+	.irq_shutdown =		iosapic_shutdown_level_irq,
+	.irq_enable =		iosapic_enable_level_irq,
+	.irq_disable =		iosapic_disable_level_irq,
+	.irq_ack =		iosapic_ack_level_irq,
+	.irq_mask =		mask_irq,
+	.irq_unmask =		iosapic_unmask_level_irq,
+	.irq_set_affinity =	iosapic_set_affinity
 };
 
 /*
@@ -430,9 +435,9 @@ static struct irq_chip irq_type_iosapic_
  */
 
 static unsigned int
-iosapic_startup_edge_irq (unsigned int irq)
+iosapic_startup_edge_irq (struct irq_data *data)
 {
-	unmask_irq(irq);
+	unmask_irq(data);
 	/*
 	 * IOSAPIC simply drops interrupts pended while the
 	 * corresponding pin was masked, so we can't know if an
@@ -442,8 +447,9 @@ iosapic_startup_edge_irq (unsigned int i
 }
 
 static void
-iosapic_ack_edge_irq (unsigned int irq)
+iosapic_ack_edge_irq (struct irq_data *data)
 {
+	unsigned int irq = data->irq;
 	struct irq_desc *idesc = irq_desc + irq;
 
 	irq_complete_move(irq);
@@ -455,22 +461,22 @@ iosapic_ack_edge_irq (unsigned int irq)
 	 */
 	if ((idesc->status & (IRQ_PENDING|IRQ_DISABLED)) ==
 	    (IRQ_PENDING|IRQ_DISABLED))
-		mask_irq(irq);
+		mask_irq(data);
 }
 
 #define iosapic_enable_edge_irq		unmask_irq
 #define iosapic_disable_edge_irq	nop
 
 static struct irq_chip irq_type_iosapic_edge = {
-	.name =		"IO-SAPIC-edge",
-	.startup =	iosapic_startup_edge_irq,
-	.shutdown =	iosapic_disable_edge_irq,
-	.enable =	iosapic_enable_edge_irq,
-	.disable =	iosapic_disable_edge_irq,
-	.ack =		iosapic_ack_edge_irq,
-	.mask =		mask_irq,
-	.unmask =	unmask_irq,
-	.set_affinity =	iosapic_set_affinity
+	.name =			"IO-SAPIC-edge",
+	.irq_startup =		iosapic_startup_edge_irq,
+	.irq_shutdown =		iosapic_disable_edge_irq,
+	.irq_enable =		iosapic_enable_edge_irq,
+	.irq_disable =		iosapic_disable_edge_irq,
+	.irq_ack =		iosapic_ack_edge_irq,
+	.irq_mask =		mask_irq,
+	.irq_unmask =		unmask_irq,
+	.irq_set_affinity =	iosapic_set_affinity
 };
 
 static unsigned int



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 0/8] ia64: Convert irq_chips to new functions
  2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
                   ` (7 preceding siblings ...)
  2011-02-05 19:45 ` [patch 8/8] ia64: Convert iosapic " Thomas Gleixner
@ 2011-02-07 23:35 ` Tony Luck
  2011-02-07 23:38   ` Thomas Gleixner
  8 siblings, 1 reply; 11+ messages in thread
From: Tony Luck @ 2011-02-07 23:35 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, Jes Sorensen

On Sat, Feb 5, 2011 at 11:44 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> The following series converts the interrupt chips to the new
> functions.Compile tested only.

I see a new warning while building:

arch/ia64/sn/kernel/irq.c:427: warning: ‘force_interrupt’ defined but not used

since you deleted the only use of this function.
sn_force_interrupt_flag doesn't
seem to be useful either once this patch has been applied.

Apart from that it all seems to build and boot with no problems on my
machine.  I haven't tested on SGI sn2 system (where you've made
a moderately big change).  It'd be nice to get an Ack from there.

-Tony

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [patch 0/8] ia64: Convert irq_chips to new functions
  2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
@ 2011-02-07 23:38   ` Thomas Gleixner
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-07 23:38 UTC (permalink / raw)
  To: Tony Luck; +Cc: LKML, Jes Sorensen

[-- Attachment #1: Type: TEXT/PLAIN, Size: 792 bytes --]

On Mon, 7 Feb 2011, Tony Luck wrote:

> On Sat, Feb 5, 2011 at 11:44 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > The following series converts the interrupt chips to the new
> > functions.Compile tested only.
> 
> I see a new warning while building:
> 
> arch/ia64/sn/kernel/irq.c:427: warning: ‘force_interrupt’ defined but not used

Oops
 
> since you deleted the only use of this function.
> sn_force_interrupt_flag doesn't
> seem to be useful either once this patch has been applied.
 
Agreed.

> Apart from that it all seems to build and boot with no problems on my
> machine.  I haven't tested on SGI sn2 system (where you've made
> a moderately big change).  It'd be nice to get an Ack from there.

That might take a while. I fear Jes is skiing this week, IIRC.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2011-02-07 23:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
2011-02-05 19:44 ` [patch 2/8] ia64: Convert hp-sim to new irq_chip functions Thomas Gleixner
2011-02-05 19:44 ` [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc Thomas Gleixner
2011-02-05 19:44 ` [patch 4/8] ia64: Convert msi_sn to new irq_chip functions Thomas Gleixner
2011-02-05 19:44 ` [patch 5/8] ia64: Convert sn " Thomas Gleixner
2011-02-05 19:45 ` [patch 6/8] ia64: Convert msi " Thomas Gleixner
2011-02-05 19:45 ` [patch 7/8] ia64: Convert lsapic " Thomas Gleixner
2011-02-05 19:45 ` [patch 8/8] ia64: Convert iosapic " Thomas Gleixner
2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
2011-02-07 23:38   ` Thomas Gleixner

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.