]>
Commit | Line | Data |
---|---|---|
95d77884 EB |
1 | #ifndef LINUX_HTIRQ_H |
2 | #define LINUX_HTIRQ_H | |
3 | ||
49e07d8f JL |
4 | struct pci_dev; |
5 | struct irq_data; | |
6 | ||
ec68307c EB |
7 | struct ht_irq_msg { |
8 | u32 address_lo; /* low 32 bits of the ht irq message */ | |
9 | u32 address_hi; /* high 32 bits of the it irq message */ | |
10 | }; | |
11 | ||
49e07d8f JL |
12 | typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq, |
13 | struct ht_irq_msg *msg); | |
14 | ||
15 | struct ht_irq_cfg { | |
16 | struct pci_dev *dev; | |
17 | /* Update callback used to cope with buggy hardware */ | |
18 | ht_irq_update_t *update; | |
19 | unsigned pos; | |
20 | unsigned idx; | |
21 | struct ht_irq_msg msg; | |
22 | }; | |
23 | ||
95d77884 | 24 | /* Helper functions.. */ |
ec68307c EB |
25 | void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg); |
26 | void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg); | |
e9f7ac66 TG |
27 | void mask_ht_irq(struct irq_data *data); |
28 | void unmask_ht_irq(struct irq_data *data); | |
95d77884 EB |
29 | |
30 | /* The arch hook for getting things started */ | |
49e07d8f JL |
31 | int arch_setup_ht_irq(int idx, int pos, struct pci_dev *dev, |
32 | ht_irq_update_t *update); | |
33 | void arch_teardown_ht_irq(unsigned int irq); | |
95d77884 | 34 | |
43539c38 | 35 | /* For drivers of buggy hardware */ |
43539c38 EB |
36 | int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update); |
37 | ||
95d77884 | 38 | #endif /* LINUX_HTIRQ_H */ |