| .. | .. |
|---|
| 161 | 161 | *init_params) |
|---|
| 162 | 162 | { |
|---|
| 163 | 163 | unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN; |
|---|
| 164 | + unsigned int set = 0; |
|---|
| 164 | 165 | struct brcmstb_l2_intc_data *data; |
|---|
| 165 | 166 | struct irq_chip_type *ct; |
|---|
| 166 | 167 | int ret; |
|---|
| .. | .. |
|---|
| 208 | 209 | if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) |
|---|
| 209 | 210 | flags |= IRQ_GC_BE_IO; |
|---|
| 210 | 211 | |
|---|
| 212 | + if (init_params->handler == handle_level_irq) |
|---|
| 213 | + set |= IRQ_LEVEL; |
|---|
| 214 | + |
|---|
| 211 | 215 | /* Allocate a single Generic IRQ chip for this node */ |
|---|
| 212 | 216 | ret = irq_alloc_domain_generic_chips(data->domain, 32, 1, |
|---|
| 213 | | - np->full_name, init_params->handler, clr, 0, flags); |
|---|
| 217 | + np->full_name, init_params->handler, clr, set, flags); |
|---|
| 214 | 218 | if (ret) { |
|---|
| 215 | 219 | pr_err("failed to allocate generic irq chip\n"); |
|---|
| 216 | 220 | goto out_free_domain; |
|---|