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>
23 lines
760 B
C
23 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 */
|