driver: rknpu: Fix build error when CONFIG_PM_DEVFREQ is not set
Signed-off-by: Felix Zeng <felix.zeng@rock-chips.com> Change-Id: I4dda1b517b1a90e4c95bff964f8a9b58192f5132
This commit is contained in:
@ -14,8 +14,10 @@
|
||||
#include <asm/div64.h>
|
||||
|
||||
#ifndef FPGA_PLATFORM
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
#include <../drivers/devfreq/governor.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "rknpu_drv.h"
|
||||
#include "rknpu_mm.h"
|
||||
@ -191,6 +193,7 @@ static int rknpu_freq_show(struct seq_file *m, void *data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
static ssize_t rknpu_freq_set(struct file *file, const char __user *ubuf,
|
||||
size_t len, loff_t *offp)
|
||||
{
|
||||
@ -233,6 +236,13 @@ static ssize_t rknpu_freq_set(struct file *file, const char __user *ubuf,
|
||||
|
||||
return len;
|
||||
}
|
||||
#else
|
||||
static ssize_t rknpu_freq_set(struct file *file, const char __user *ubuf,
|
||||
size_t len, loff_t *offp)
|
||||
{
|
||||
return -EFAULT;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int rknpu_volt_show(struct seq_file *m, void *data)
|
||||
{
|
||||
|
||||
@ -41,8 +41,10 @@
|
||||
#include <soc/rockchip/rockchip_opp_select.h>
|
||||
#include <soc/rockchip/rockchip_system_monitor.h>
|
||||
#include <soc/rockchip/rockchip_ipa.h>
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
#include <../drivers/devfreq/governor.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "rknpu_ioctl.h"
|
||||
#include "rknpu_reset.h"
|
||||
@ -1062,6 +1064,7 @@ static struct devfreq_dev_profile npu_devfreq_profile = {
|
||||
.get_cur_freq = npu_devfreq_get_cur_freq,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
static int devfreq_rknpu_ondemand_func(struct devfreq *df, unsigned long *freq)
|
||||
{
|
||||
struct rknpu_device *rknpu_dev = df->data;
|
||||
@ -1085,6 +1088,7 @@ static struct devfreq_governor devfreq_rknpu_ondemand = {
|
||||
.get_target_freq = devfreq_rknpu_ondemand_func,
|
||||
.event_handler = devfreq_rknpu_ondemand_handler,
|
||||
};
|
||||
#endif
|
||||
|
||||
static unsigned long npu_get_static_power(struct devfreq *devfreq,
|
||||
unsigned long voltage)
|
||||
@ -1191,11 +1195,13 @@ static int rknpu_devfreq_init(struct rknpu_device *rknpu_dev)
|
||||
dev_pm_opp_put(opp);
|
||||
dp->initial_freq = rknpu_dev->current_freq;
|
||||
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
ret = devfreq_add_governor(&devfreq_rknpu_ondemand);
|
||||
if (ret) {
|
||||
LOG_DEV_ERROR(dev, "failed to add rknpu_ondemand governor\n");
|
||||
goto err_remove_table;
|
||||
}
|
||||
#endif
|
||||
|
||||
rknpu_dev->devfreq = devm_devfreq_add_device(dev, dp, "rknpu_ondemand",
|
||||
(void *)rknpu_dev);
|
||||
@ -1247,7 +1253,9 @@ out:
|
||||
return 0;
|
||||
|
||||
err_remove_governor:
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
devfreq_remove_governor(&devfreq_rknpu_ondemand);
|
||||
#endif
|
||||
err_remove_table:
|
||||
dev_pm_opp_of_remove_table(dev);
|
||||
|
||||
@ -1325,11 +1333,13 @@ static int rknpu_devfreq_init(struct rknpu_device *rknpu_dev)
|
||||
}
|
||||
dp->initial_freq = rknpu_dev->current_freq;
|
||||
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
ret = devfreq_add_governor(&devfreq_rknpu_ondemand);
|
||||
if (ret) {
|
||||
LOG_DEV_ERROR(dev, "failed to add rknpu_ondemand governor\n");
|
||||
goto err_remove_table;
|
||||
}
|
||||
#endif
|
||||
|
||||
rknpu_dev->devfreq = devm_devfreq_add_device(dev, dp, "rknpu_ondemand",
|
||||
(void *)rknpu_dev);
|
||||
@ -1380,7 +1390,9 @@ out:
|
||||
return 0;
|
||||
|
||||
err_remove_governor:
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
devfreq_remove_governor(&devfreq_rknpu_ondemand);
|
||||
#endif
|
||||
err_remove_table:
|
||||
dev_pm_opp_of_remove_table(dev);
|
||||
|
||||
@ -1396,7 +1408,9 @@ static int rknpu_devfreq_remove(struct rknpu_device *rknpu_dev)
|
||||
devfreq_unregister_opp_notifier(rknpu_dev->dev,
|
||||
rknpu_dev->devfreq);
|
||||
dev_pm_opp_of_remove_table(rknpu_dev->dev);
|
||||
#ifdef CONFIG_PM_DEVFREQ
|
||||
devfreq_remove_governor(&devfreq_rknpu_ondemand);
|
||||
#endif
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user