cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

clock.c (1078B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * arch/sh/kernel/cpu/clock.c - SuperH clock framework
      4 *
      5 *  Copyright (C) 2005 - 2009  Paul Mundt
      6 *
      7 * This clock framework is derived from the OMAP version by:
      8 *
      9 *	Copyright (C) 2004 - 2008 Nokia Corporation
     10 *	Written by Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
     11 *
     12 *  Modified for omap shared clock framework by Tony Lindgren <tony@atomide.com>
     13 */
     14#include <linux/kernel.h>
     15#include <linux/init.h>
     16#include <linux/clk.h>
     17#include <asm/clock.h>
     18#include <asm/machvec.h>
     19
     20int __init clk_init(void)
     21{
     22	int ret;
     23
     24#ifndef CONFIG_COMMON_CLK
     25	ret = arch_clk_init();
     26	if (unlikely(ret)) {
     27		pr_err("%s: CPU clock registration failed.\n", __func__);
     28		return ret;
     29	}
     30#endif
     31
     32	if (sh_mv.mv_clk_init) {
     33		ret = sh_mv.mv_clk_init();
     34		if (unlikely(ret)) {
     35			pr_err("%s: machvec clock initialization failed.\n",
     36			       __func__);
     37			return ret;
     38		}
     39	}
     40
     41#ifndef CONFIG_COMMON_CLK
     42	/* Kick the child clocks.. */
     43	recalculate_root_clocks();
     44
     45	/* Enable the necessary init clocks */
     46	clk_enable_init_clocks();
     47#endif
     48
     49	return ret;
     50}
     51
     52