hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/irqchip/irq-gic.c
....@@ -271,7 +271,8 @@
271271 u32 reg;
272272
273273 #ifdef CONFIG_ROCKCHIP_AMP
274
- if (rockchip_amp_check_amp_irq(gic_irq(d)))
274
+ if (which != IRQCHIP_STATE_PENDING &&
275
+ rockchip_amp_check_amp_irq(gic_irq(d)))
275276 return -EINVAL;
276277 #endif
277278 switch (which) {
....@@ -533,7 +534,7 @@
533534
534535 maskval = 0;
535536 for (j = 0; j < 4; j++) {
536
- if (rockchip_amp_check_amp_irq(i + j)) {
537
+ if (rockchip_amp_need_init_amp_irq(i + j)) {
537538 maskval |= rockchip_amp_get_irq_cpumask(i + j) <<
538539 (j * 8);
539540 } else {
....@@ -1348,6 +1349,9 @@
13481349 goto error;
13491350 }
13501351
1352
+#ifdef CONFIG_ROCKCHIP_AMP
1353
+ rockchip_amp_get_gic_info(gic->gic_irqs, GIC_V2);
1354
+#endif
13511355 gic_dist_init(gic);
13521356 ret = gic_cpu_init(gic);
13531357 if (ret)
....@@ -1565,10 +1569,6 @@
15651569 gic->percpu_offset = 0;
15661570
15671571 gic_enable_of_quirks(node, gic_quirks, gic);
1568
-
1569
-#ifdef CONFIG_ROCKCHIP_AMP
1570
- rockchip_amp_get_gic_info();
1571
-#endif
15721572
15731573 return 0;
15741574