| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * arch/arm/mach-vexpress/dcscb.c - Dual Cluster System Configuration Block |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Created by: Nicolas Pitre, May 2012 |
|---|
| 5 | 6 | * Copyright: (C) 2012-2013 Linaro Limited |
|---|
| 6 | | - * |
|---|
| 7 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 8 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 9 | | - * published by the Free Software Foundation. |
|---|
| 10 | 7 | */ |
|---|
| 11 | 8 | |
|---|
| 12 | 9 | #include <linux/init.h> |
|---|
| .. | .. |
|---|
| 23 | 20 | #include <asm/cputype.h> |
|---|
| 24 | 21 | #include <asm/cp15.h> |
|---|
| 25 | 22 | |
|---|
| 23 | +#include "core.h" |
|---|
| 26 | 24 | |
|---|
| 27 | 25 | #define RST_HOLD0 0x0 |
|---|
| 28 | 26 | #define RST_HOLD1 0x4 |
|---|
| .. | .. |
|---|
| 146 | 144 | if (!node) |
|---|
| 147 | 145 | return -ENODEV; |
|---|
| 148 | 146 | dcscb_base = of_iomap(node, 0); |
|---|
| 147 | + of_node_put(node); |
|---|
| 149 | 148 | if (!dcscb_base) |
|---|
| 150 | 149 | return -EADDRNOTAVAIL; |
|---|
| 151 | 150 | cfg = readl_relaxed(dcscb_base + DCS_CFG_R); |
|---|