mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-27 17:58:22 +00:00 
			
		
		
		
	 43539c38cd
			
		
	
	
		43539c38cd
		
	
	
	
	
		
			
			This patch adds a variant of ht_create_irq __ht_create_irq that takes an aditional parameter update that is a function that is called whenever we want to write to a drivers htirq configuration registers. This is needed to support the ipath_iba6110 because it's registers in the proper location are not actually conected to the hardware that controlls interrupt delivery. [bos@serpentine.com: fixes] Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Cc: Andi Kleen <ak@suse.de> Cc: <olson@pathscale.com> Cc: Roland Dreier <rolandd@cisco.com> Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			24 lines
		
	
	
		
			760 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			760 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef LINUX_HTIRQ_H
 | |
| #define LINUX_HTIRQ_H
 | |
| 
 | |
| struct ht_irq_msg {
 | |
| 	u32	address_lo;	/* low 32 bits of the ht irq message */
 | |
| 	u32	address_hi;	/* high 32 bits of the it irq message */
 | |
| };
 | |
| 
 | |
| /* Helper functions.. */
 | |
| void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
 | |
| void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
 | |
| void mask_ht_irq(unsigned int irq);
 | |
| void unmask_ht_irq(unsigned int irq);
 | |
| 
 | |
| /* The arch hook for getting things started */
 | |
| int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev);
 | |
| 
 | |
| /* For drivers of buggy hardware */
 | |
| typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq,
 | |
| 			       struct ht_irq_msg *msg);
 | |
| int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update);
 | |
| 
 | |
| #endif /* LINUX_HTIRQ_H */
 |