clk: use clocks_get() instead of global pointer

Uses clock_get() as one point of access to clock info
instead of global pointer.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This commit is contained in:
Tomasz Lauda 2020-01-09 09:46:16 +01:00 committed by Liam Girdwood
parent 452f8ef6d3
commit 45e3a93b57
2 changed files with 10 additions and 6 deletions

View File

@ -10,6 +10,7 @@
#define __SOF_LIB_CLK_H__
#include <platform/lib/clk.h>
#include <sof/sof.h>
#include <sof/spinlock.h>
#include <stdint.h>
@ -42,8 +43,6 @@ struct clock_info {
int (*set_freq)(int clock, int freq_idx);
};
extern struct clock_info *clocks;
uint32_t clock_get_freq(int clock);
void clock_set_freq(int clock, uint32_t hz);
@ -52,4 +51,9 @@ uint64_t clock_ms_to_ticks(int clock, uint64_t ms);
void platform_timer_set_delta(struct timer *timer, uint64_t ns);
static inline struct clock_info *clocks_get(void)
{
return sof_get()->clocks;
}
#endif /* __SOF_LIB_CLK_H__ */

View File

@ -43,14 +43,14 @@ static inline uint32_t clock_get_nearest_freq_idx(const struct freq_table *tab,
uint32_t clock_get_freq(int clock)
{
struct clock_info *clk_info = &clocks[clock];
struct clock_info *clk_info = clocks_get() + clock;
return clk_info->freqs[clk_info->current_freq_idx].freq;
}
void clock_set_freq(int clock, uint32_t hz)
{
struct clock_info *clk_info = &clocks[clock];
struct clock_info *clk_info = clocks_get() + clock;
uint32_t idx;
uint32_t flags;
@ -89,14 +89,14 @@ void clock_set_freq(int clock, uint32_t hz)
uint64_t clock_ms_to_ticks(int clock, uint64_t ms)
{
struct clock_info *clk_info = &clocks[clock];
struct clock_info *clk_info = clocks_get() + clock;
return clk_info->freqs[clk_info->current_freq_idx].ticks_per_msec * ms;
}
void platform_timer_set_delta(struct timer *timer, uint64_t ns)
{
struct clock_info *clk_info = &clocks[PLATFORM_DEFAULT_CLOCK];
struct clock_info *clk_info = clocks_get() + PLATFORM_DEFAULT_CLOCK;
uint32_t ticks_per_msec =
clk_info->freqs[clk_info->current_freq_idx].ticks_per_msec;
uint64_t ticks;