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

panfrost_devfreq.h (1127B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/* Copyright 2019 Collabora ltd. */
      3
      4#ifndef __PANFROST_DEVFREQ_H__
      5#define __PANFROST_DEVFREQ_H__
      6
      7#include <linux/devfreq.h>
      8#include <linux/spinlock.h>
      9#include <linux/ktime.h>
     10
     11struct devfreq;
     12struct thermal_cooling_device;
     13
     14struct panfrost_device;
     15
     16struct panfrost_devfreq {
     17	struct devfreq *devfreq;
     18	struct thermal_cooling_device *cooling;
     19	struct devfreq_simple_ondemand_data gov_data;
     20	bool opp_of_table_added;
     21
     22	ktime_t busy_time;
     23	ktime_t idle_time;
     24	ktime_t time_last_update;
     25	int busy_count;
     26	/*
     27	 * Protect busy_time, idle_time, time_last_update and busy_count
     28	 * because these can be updated concurrently between multiple jobs.
     29	 */
     30	spinlock_t lock;
     31};
     32
     33int panfrost_devfreq_init(struct panfrost_device *pfdev);
     34void panfrost_devfreq_fini(struct panfrost_device *pfdev);
     35
     36void panfrost_devfreq_resume(struct panfrost_device *pfdev);
     37void panfrost_devfreq_suspend(struct panfrost_device *pfdev);
     38
     39void panfrost_devfreq_record_busy(struct panfrost_devfreq *devfreq);
     40void panfrost_devfreq_record_idle(struct panfrost_devfreq *devfreq);
     41
     42#endif /* __PANFROST_DEVFREQ_H__ */