kernel_samsung_a34x-permissive/drivers/fingerprint/fingerprint_common_qcom.c

90 lines
2 KiB
C
Raw Normal View History

#include "fingerprint_common.h"
#include <linux/version.h>
#if defined(CONFIG_CPU_FREQ_LIMIT) || defined(CONFIG_CPU_FREQ_LIMIT_USERSPACE)
#if (KERNEL_VERSION(5, 4, 0) > LINUX_VERSION_CODE)
#include <linux/cpufreq.h>
#else
#include <linux/cpufreq_limit.h>
extern int set_freq_limit(unsigned int id, unsigned int freq);
#endif
#endif
#define FINGER_ID 2
#define LIMIT_RELEASE -1
void spi_get_ctrldata(struct spi_device *spi)
{
}
int spi_clk_register(struct spi_clk_setting *clk_setting, struct device *dev)
{
return 0;
}
int spi_clk_unregister(struct spi_clk_setting *clk_setting)
{
return 0;
}
int spi_clk_enable(struct spi_clk_setting *clk_setting)
{
#ifdef ENABLE_SENSORS_FPRINT_SECURE
if (!clk_setting->enabled_clk) {
__pm_stay_awake(clk_setting->spi_wake_lock);
clk_setting->enabled_clk = true;
}
#endif
return 0;
}
int spi_clk_disable(struct spi_clk_setting *clk_setting)
{
#ifdef ENABLE_SENSORS_FPRINT_SECURE
if (clk_setting->enabled_clk) {
__pm_relax(clk_setting->spi_wake_lock);
clk_setting->enabled_clk = false;
}
#endif
return 0;
}
int cpu_speedup_enable(struct boosting_config *boosting)
{
int retval = 0;
#if defined(CONFIG_CPU_FREQ_LIMIT) || defined(CONFIG_CPU_FREQ_LIMIT_USERSPACE)
if (boosting->min_cpufreq_limit) {
pr_debug("%s\n", __func__);
pm_qos_add_request(&boosting->pm_qos, PM_QOS_CPU_DMA_LATENCY, 0);
retval = set_freq_limit(FINGER_ID, boosting->min_cpufreq_limit);
if (retval)
pr_err("booster start failed. (%d)\n", retval);
}
#else
pr_debug("FP_CPU_SPEEDUP does not supported\n");
#endif
return retval;
}
int cpu_speedup_disable(struct boosting_config *boosting)
{
int retval = 0;
#if defined(CONFIG_CPU_FREQ_LIMIT) || defined(CONFIG_CPU_FREQ_LIMIT_USERSPACE)
if (boosting->min_cpufreq_limit) {
pr_debug("%s\n", __func__);
retval = set_freq_limit(FINGER_ID, LIMIT_RELEASE);
if (retval)
pr_err("booster stop failed. (%d)\n", retval);
pm_qos_remove_request(&boosting->pm_qos);
}
#else
pr_debug("FP_CPU_SPEEDUP does not supported\n");
#endif
return retval;
}