brintos

brintos / linux-shallow public Read only

0
0
Text · 959 B · b7860bc Raw
46 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.4 */5 6#include <linux/acpi.h>7#include <linux/init.h>8#include <linux/of.h>9#include <linux/clocksource.h>10 11extern struct of_device_id __timer_of_table[];12 13static const struct of_device_id __timer_of_table_sentinel14	__used __section("__timer_of_table_end");15 16void __init timer_probe(void)17{18	struct device_node *np;19	const struct of_device_id *match;20	of_init_fn_1_ret init_func_ret;21	unsigned timers = 0;22	int ret;23 24	for_each_matching_node_and_match(np, __timer_of_table, &match) {25		if (!of_device_is_available(np))26			continue;27 28		init_func_ret = match->data;29 30		ret = init_func_ret(np);31		if (ret) {32			if (ret != -EPROBE_DEFER)33				pr_err("Failed to initialize '%pOF': %d\n", np,34				       ret);35			continue;36		}37 38		timers++;39	}40 41	timers += acpi_probe_device_table(timer);42 43	if (!timers)44		pr_crit("%s: no matching timers found\n", __func__);45}46