hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/rknpu/rknpu_drv.c
....@@ -41,7 +41,9 @@
4141 #include <soc/rockchip/rockchip_opp_select.h>
4242 #include <soc/rockchip/rockchip_system_monitor.h>
4343 #include <soc/rockchip/rockchip_ipa.h>
44
+#ifdef CONFIG_PM_DEVFREQ
4445 #include <../drivers/devfreq/governor.h>
46
+#endif
4547 #endif
4648
4749 #include "rknpu_ioctl.h"
....@@ -1062,6 +1064,7 @@
10621064 .get_cur_freq = npu_devfreq_get_cur_freq,
10631065 };
10641066
1067
+#ifdef CONFIG_PM_DEVFREQ
10651068 static int devfreq_rknpu_ondemand_func(struct devfreq *df, unsigned long *freq)
10661069 {
10671070 struct rknpu_device *rknpu_dev = df->data;
....@@ -1085,6 +1088,7 @@
10851088 .get_target_freq = devfreq_rknpu_ondemand_func,
10861089 .event_handler = devfreq_rknpu_ondemand_handler,
10871090 };
1091
+#endif
10881092
10891093 static unsigned long npu_get_static_power(struct devfreq *devfreq,
10901094 unsigned long voltage)
....@@ -1191,11 +1195,13 @@
11911195 dev_pm_opp_put(opp);
11921196 dp->initial_freq = rknpu_dev->current_freq;
11931197
1198
+#ifdef CONFIG_PM_DEVFREQ
11941199 ret = devfreq_add_governor(&devfreq_rknpu_ondemand);
11951200 if (ret) {
11961201 LOG_DEV_ERROR(dev, "failed to add rknpu_ondemand governor\n");
11971202 goto err_remove_table;
11981203 }
1204
+#endif
11991205
12001206 rknpu_dev->devfreq = devm_devfreq_add_device(dev, dp, "rknpu_ondemand",
12011207 (void *)rknpu_dev);
....@@ -1247,7 +1253,9 @@
12471253 return 0;
12481254
12491255 err_remove_governor:
1256
+#ifdef CONFIG_PM_DEVFREQ
12501257 devfreq_remove_governor(&devfreq_rknpu_ondemand);
1258
+#endif
12511259 err_remove_table:
12521260 dev_pm_opp_of_remove_table(dev);
12531261
....@@ -1325,11 +1333,13 @@
13251333 }
13261334 dp->initial_freq = rknpu_dev->current_freq;
13271335
1336
+#ifdef CONFIG_PM_DEVFREQ
13281337 ret = devfreq_add_governor(&devfreq_rknpu_ondemand);
13291338 if (ret) {
13301339 LOG_DEV_ERROR(dev, "failed to add rknpu_ondemand governor\n");
13311340 goto err_remove_table;
13321341 }
1342
+#endif
13331343
13341344 rknpu_dev->devfreq = devm_devfreq_add_device(dev, dp, "rknpu_ondemand",
13351345 (void *)rknpu_dev);
....@@ -1380,7 +1390,9 @@
13801390 return 0;
13811391
13821392 err_remove_governor:
1393
+#ifdef CONFIG_PM_DEVFREQ
13831394 devfreq_remove_governor(&devfreq_rknpu_ondemand);
1395
+#endif
13841396 err_remove_table:
13851397 dev_pm_opp_of_remove_table(dev);
13861398
....@@ -1396,7 +1408,9 @@
13961408 devfreq_unregister_opp_notifier(rknpu_dev->dev,
13971409 rknpu_dev->devfreq);
13981410 dev_pm_opp_of_remove_table(rknpu_dev->dev);
1411
+#ifdef CONFIG_PM_DEVFREQ
13991412 devfreq_remove_governor(&devfreq_rknpu_ondemand);
1413
+#endif
14001414 }
14011415
14021416 return 0;