gic_fdt.c (e06afdb2856944d6db4e33d4bbe0e2dbbd057eb4) gic_fdt.c (103d39efe0c68cb2a808c306b14c3f473a02535d)
1/*-
2 * Copyright (c) 2011,2016 The FreeBSD Foundation
3 * All rights reserved.
4 *
5 * This software was developed by Andrew Turner under
6 * sponsorship from the FreeBSD Foundation.
7 *
8 * Developed by Damjan Marion <damjan.marion@gmail.com>

--- 144 unchanged lines hidden (view full) ---

153 */
154 pxref = ofw_bus_find_iparent(ofw_bus_get_node(dev));
155 if (pxref == 0 || xref == pxref) {
156 if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc) != 0) {
157 device_printf(dev, "could not set PIC as a root\n");
158 intr_pic_deregister(dev, xref);
159 goto cleanup;
160 }
1/*-
2 * Copyright (c) 2011,2016 The FreeBSD Foundation
3 * All rights reserved.
4 *
5 * This software was developed by Andrew Turner under
6 * sponsorship from the FreeBSD Foundation.
7 *
8 * Developed by Damjan Marion <damjan.marion@gmail.com>

--- 144 unchanged lines hidden (view full) ---

153 */
154 pxref = ofw_bus_find_iparent(ofw_bus_get_node(dev));
155 if (pxref == 0 || xref == pxref) {
156 if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc) != 0) {
157 device_printf(dev, "could not set PIC as a root\n");
158 intr_pic_deregister(dev, xref);
159 goto cleanup;
160 }
161
162#ifdef SMP
163 if (intr_ipi_pic_register(dev, 0) != 0) {
164 device_printf(dev, "could not register for IPIs\n");
165 goto cleanup;
166 }
167#endif
161 } else {
162 if (sc->base.gic_res[2] == NULL) {
163 device_printf(dev,
164 "not root PIC must have defined interrupt\n");
165 intr_pic_deregister(dev, xref);
166 goto cleanup;
167 }
168 if (bus_setup_intr(dev, sc->base.gic_res[2], INTR_TYPE_CLK,

--- 188 unchanged lines hidden ---
168 } else {
169 if (sc->base.gic_res[2] == NULL) {
170 device_printf(dev,
171 "not root PIC must have defined interrupt\n");
172 intr_pic_deregister(dev, xref);
173 goto cleanup;
174 }
175 if (bus_setup_intr(dev, sc->base.gic_res[2], INTR_TYPE_CLK,

--- 188 unchanged lines hidden ---