| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * LSAPIC Interrupt Controller | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This takes care of interrupts that are generated by the CPU's | 
					
						
							|  |  |  |  * internal Streamlined Advanced Programmable Interrupt Controller | 
					
						
							|  |  |  |  * (LSAPIC), such as the ITC and IPI interrupts. | 
					
						
							|  |  |  |     * | 
					
						
							|  |  |  |  * Copyright (C) 1999 VA Linux Systems | 
					
						
							|  |  |  |  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> | 
					
						
							|  |  |  |  * Copyright (C) 2000 Hewlett-Packard Co | 
					
						
							|  |  |  |  * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com> | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/sched.h>
 | 
					
						
							|  |  |  | #include <linux/irq.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static unsigned int | 
					
						
							| 
									
										
										
										
											2011-02-04 20:29:37 +01:00
										 |  |  | lsapic_noop_startup (struct irq_data *data) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static void | 
					
						
							| 
									
										
										
										
											2011-02-04 20:29:37 +01:00
										 |  |  | lsapic_noop (struct irq_data *data) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2007-05-11 14:55:43 -07:00
										 |  |  | 	/* nothing to do... */ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-04 20:29:37 +01:00
										 |  |  | static int lsapic_retrigger(struct irq_data *data) | 
					
						
							| 
									
										
										
										
											2006-06-29 02:24:44 -07:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2011-02-04 20:29:37 +01:00
										 |  |  | 	ia64_resend_irq(data->irq); | 
					
						
							| 
									
										
										
										
											2006-06-29 02:24:44 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	return 1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-10 12:45:00 -07:00
										 |  |  | struct irq_chip irq_type_ia64_lsapic = { | 
					
						
							| 
									
										
										
										
											2011-02-04 20:29:37 +01:00
										 |  |  | 	.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, | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | }; |