| .. | .. |
|---|
| 33 | 33 | const struct gic_quirk *quirks, void *data) |
|---|
| 34 | 34 | { |
|---|
| 35 | 35 | for (; quirks->desc; quirks++) { |
|---|
| 36 | | - if (!of_device_is_compatible(np, quirks->compatible)) |
|---|
| 36 | + if (!quirks->compatible && !quirks->property) |
|---|
| 37 | + continue; |
|---|
| 38 | + if (quirks->compatible && |
|---|
| 39 | + !of_device_is_compatible(np, quirks->compatible)) |
|---|
| 40 | + continue; |
|---|
| 41 | + if (quirks->property && |
|---|
| 42 | + !of_property_read_bool(np, quirks->property)) |
|---|
| 37 | 43 | continue; |
|---|
| 38 | 44 | if (quirks->init(data)) |
|---|
| 39 | 45 | pr_info("GIC: enabling workaround for %s\n", |
|---|
| .. | .. |
|---|
| 45 | 51 | void *data) |
|---|
| 46 | 52 | { |
|---|
| 47 | 53 | for (; quirks->desc; quirks++) { |
|---|
| 48 | | - if (quirks->compatible) |
|---|
| 54 | + if (quirks->compatible || quirks->property) |
|---|
| 49 | 55 | continue; |
|---|
| 50 | 56 | if (quirks->iidr != (quirks->mask & iidr)) |
|---|
| 51 | 57 | continue; |
|---|
| .. | .. |
|---|
| 122 | 128 | |
|---|
| 123 | 129 | amp_pri = 0; |
|---|
| 124 | 130 | for (j = 0; j < 4; j++) { |
|---|
| 125 | | - if (rockchip_amp_check_amp_irq(i + j)) { |
|---|
| 131 | + if (rockchip_amp_need_init_amp_irq(i + j)) { |
|---|
| 126 | 132 | amp_pri |= rockchip_amp_get_irq_prio(i + j) << |
|---|
| 127 | 133 | (j * 8); |
|---|
| 128 | 134 | } else { |
|---|