kernel-fxtec-pro1x/drivers/devfreq/governor_cache_hwmon.h
Rama Aparna Mallavarapu 60896a51ab PM / devfreq: cache_hwmon: Use array for reporting monitor stats
Using an array to report monitor stats instead of hard coded variable
names would allow for cleaner implementations of some cache hwmon
device drivers.

Change-Id: I787bdc12f10a0c8ff3c4195ce229a2987acdfce7
Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
Signed-off-by: Rama Aparna Mallavarapu <aparnam@codeaurora.org>
2019-01-17 11:16:41 -08:00

63 lines
1.6 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2014, 2016, 2019, The Linux Foundation. All rights reserved.
*/
#ifndef _GOVERNOR_CACHE_HWMON_H
#define _GOVERNOR_CACHE_HWMON_H
#include <linux/kernel.h>
#include <linux/devfreq.h>
enum request_group {
HIGH,
MED,
LOW,
MAX_NUM_GROUPS,
};
struct mrps_stats {
unsigned long mrps[MAX_NUM_GROUPS];
unsigned int busy_percent;
};
/**
* struct cache_hwmon - devfreq Cache HW monitor info
* @start_hwmon: Start the HW monitoring
* @stop_hwmon: Stop the HW monitoring
* @meas_mrps_and_set_irq: Return the measured count and set up the
* IRQ to fire if usage exceeds current
* measurement by @tol percent.
* @dev: device that this HW monitor can monitor.
* @of_node: OF node of device that this HW monitor can monitor.
* @df: Devfreq node that this HW montior is being used
* for. NULL when not actively in use, and non-NULL
* when in use.
*/
struct cache_hwmon {
int (*start_hwmon)(struct cache_hwmon *hw, struct mrps_stats *mrps);
void (*stop_hwmon)(struct cache_hwmon *hw);
unsigned long (*meas_mrps_and_set_irq)(struct cache_hwmon *hw,
unsigned int tol, unsigned int us,
struct mrps_stats *mrps);
struct device *dev;
struct device_node *of_node;
struct devfreq *df;
};
#ifdef CONFIG_DEVFREQ_GOV_QCOM_CACHE_HWMON
int register_cache_hwmon(struct device *dev, struct cache_hwmon *hwmon);
int update_cache_hwmon(struct cache_hwmon *hwmon);
#else
static inline int register_cache_hwmon(struct device *dev,
struct cache_hwmon *hwmon)
{
return 0;
}
int update_cache_hwmon(struct cache_hwmon *hwmon)
{
return 0;
}
#endif
#endif /* _GOVERNOR_CACHE_HWMON_H */