forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 95099d4622f8cb224d94e314c7a8e0df60b13f87
kernel/drivers/irqchip/irq-bcm7120-l2.c
....@@ -1,11 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Broadcom BCM7120 style Level 2 interrupt controller driver
34 *
45 * Copyright (C) 2014 Broadcom Corporation
5
- *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License version 2 as
8
- * published by the Free Software Foundation.
96 */
107
118 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
....@@ -146,6 +143,9 @@
146143
147144 irq_set_chained_handler_and_data(parent_irq,
148145 bcm7120_l2_intc_irq_handle, l1_data);
146
+ if (data->can_wake)
147
+ enable_irq_wake(parent_irq);
148
+
149149 return 0;
150150 }
151151
....@@ -250,6 +250,8 @@
250250 if (ret < 0)
251251 goto out_free_l1_data;
252252
253
+ data->can_wake = of_property_read_bool(dn, "brcm,irq-can-wake");
254
+
253255 for (irq = 0; irq < data->num_parent_irqs; irq++) {
254256 ret = bcm7120_l2_intc_init_one(dn, data, irq, valid_mask);
255257 if (ret)
....@@ -276,9 +278,6 @@
276278 pr_err("failed to allocate generic irq chip\n");
277279 goto out_free_domain;
278280 }
279
-
280
- if (of_property_read_bool(dn, "brcm,irq-can-wake"))
281
- data->can_wake = true;
282281
283282 for (idx = 0; idx < data->n_words; idx++) {
284283 irq = idx * IRQS_PER_WORD;
....@@ -318,6 +317,9 @@
318317 }
319318 }
320319
320
+ pr_info("registered %s intc (%pOF, parent IRQ(s): %d)\n",
321
+ intc_name, dn, data->num_parent_irqs);
322
+
321323 return 0;
322324
323325 out_free_domain: