.. | .. |
---|
185 | 185 | exynos_smc(SMC_CMD_L2X0SETUP2, regs->pwr_ctrl, regs->aux_ctrl, 0); |
---|
186 | 186 | } |
---|
187 | 187 | |
---|
188 | | -void __init exynos_firmware_init(void) |
---|
| 188 | +bool __init exynos_secure_firmware_available(void) |
---|
189 | 189 | { |
---|
190 | 190 | struct device_node *nd; |
---|
191 | 191 | const __be32 *addr; |
---|
.. | .. |
---|
193 | 193 | nd = of_find_compatible_node(NULL, NULL, |
---|
194 | 194 | "samsung,secure-firmware"); |
---|
195 | 195 | if (!nd) |
---|
196 | | - return; |
---|
| 196 | + return false; |
---|
197 | 197 | |
---|
198 | 198 | addr = of_get_address(nd, 0, NULL, NULL); |
---|
199 | 199 | of_node_put(nd); |
---|
200 | 200 | if (!addr) { |
---|
201 | 201 | pr_err("%s: No address specified.\n", __func__); |
---|
202 | | - return; |
---|
| 202 | + return false; |
---|
203 | 203 | } |
---|
204 | 204 | |
---|
| 205 | + return true; |
---|
| 206 | +} |
---|
| 207 | + |
---|
| 208 | +void __init exynos_firmware_init(void) |
---|
| 209 | +{ |
---|
| 210 | + if (!exynos_secure_firmware_available()) |
---|
| 211 | + return; |
---|
| 212 | + |
---|
205 | 213 | pr_info("Running under secure firmware.\n"); |
---|
206 | 214 | |
---|
207 | 215 | register_firmware_ops(&exynos_firmware_ops); |
---|