File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change 15
15
16
16
/* FIC Registers */
17
17
#define AL_FIC_CAUSE 0x00
18
+ #define AL_FIC_SET_CAUSE 0x08
18
19
#define AL_FIC_MASK 0x10
19
20
#define AL_FIC_CONTROL 0x28
20
21
@@ -126,6 +127,16 @@ static void al_fic_irq_handler(struct irq_desc *desc)
126
127
chained_irq_exit (irqchip , desc );
127
128
}
128
129
130
+ static int al_fic_irq_retrigger (struct irq_data * data )
131
+ {
132
+ struct irq_chip_generic * gc = irq_data_get_irq_chip_data (data );
133
+ struct al_fic * fic = gc -> private ;
134
+
135
+ writel_relaxed (BIT (data -> hwirq ), fic -> base + AL_FIC_SET_CAUSE );
136
+
137
+ return 1 ;
138
+ }
139
+
129
140
static int al_fic_register (struct device_node * node ,
130
141
struct al_fic * fic )
131
142
{
@@ -159,6 +170,7 @@ static int al_fic_register(struct device_node *node,
159
170
gc -> chip_types -> chip .irq_unmask = irq_gc_mask_clr_bit ;
160
171
gc -> chip_types -> chip .irq_ack = irq_gc_ack_clr_bit ;
161
172
gc -> chip_types -> chip .irq_set_type = al_fic_irq_set_type ;
173
+ gc -> chip_types -> chip .irq_retrigger = al_fic_irq_retrigger ;
162
174
gc -> chip_types -> chip .flags = IRQCHIP_SKIP_SET_WAKE ;
163
175
gc -> private = fic ;
164
176
You can’t perform that action at this time.
0 commit comments