.. | .. |
---|
41 | 41 | #include <soc/rockchip/rockchip_opp_select.h> |
---|
42 | 42 | #include <soc/rockchip/rockchip_system_monitor.h> |
---|
43 | 43 | #include <soc/rockchip/rockchip_ipa.h> |
---|
| 44 | +#ifdef CONFIG_PM_DEVFREQ |
---|
44 | 45 | #include <../drivers/devfreq/governor.h> |
---|
| 46 | +#endif |
---|
45 | 47 | #endif |
---|
46 | 48 | |
---|
47 | 49 | #include "rknpu_ioctl.h" |
---|
.. | .. |
---|
1062 | 1064 | .get_cur_freq = npu_devfreq_get_cur_freq, |
---|
1063 | 1065 | }; |
---|
1064 | 1066 | |
---|
| 1067 | +#ifdef CONFIG_PM_DEVFREQ |
---|
1065 | 1068 | static int devfreq_rknpu_ondemand_func(struct devfreq *df, unsigned long *freq) |
---|
1066 | 1069 | { |
---|
1067 | 1070 | struct rknpu_device *rknpu_dev = df->data; |
---|
.. | .. |
---|
1085 | 1088 | .get_target_freq = devfreq_rknpu_ondemand_func, |
---|
1086 | 1089 | .event_handler = devfreq_rknpu_ondemand_handler, |
---|
1087 | 1090 | }; |
---|
| 1091 | +#endif |
---|
1088 | 1092 | |
---|
1089 | 1093 | static unsigned long npu_get_static_power(struct devfreq *devfreq, |
---|
1090 | 1094 | unsigned long voltage) |
---|
.. | .. |
---|
1191 | 1195 | dev_pm_opp_put(opp); |
---|
1192 | 1196 | dp->initial_freq = rknpu_dev->current_freq; |
---|
1193 | 1197 | |
---|
| 1198 | +#ifdef CONFIG_PM_DEVFREQ |
---|
1194 | 1199 | ret = devfreq_add_governor(&devfreq_rknpu_ondemand); |
---|
1195 | 1200 | if (ret) { |
---|
1196 | 1201 | LOG_DEV_ERROR(dev, "failed to add rknpu_ondemand governor\n"); |
---|
1197 | 1202 | goto err_remove_table; |
---|
1198 | 1203 | } |
---|
| 1204 | +#endif |
---|
1199 | 1205 | |
---|
1200 | 1206 | rknpu_dev->devfreq = devm_devfreq_add_device(dev, dp, "rknpu_ondemand", |
---|
1201 | 1207 | (void *)rknpu_dev); |
---|
.. | .. |
---|
1247 | 1253 | return 0; |
---|
1248 | 1254 | |
---|
1249 | 1255 | err_remove_governor: |
---|
| 1256 | +#ifdef CONFIG_PM_DEVFREQ |
---|
1250 | 1257 | devfreq_remove_governor(&devfreq_rknpu_ondemand); |
---|
| 1258 | +#endif |
---|
1251 | 1259 | err_remove_table: |
---|
1252 | 1260 | dev_pm_opp_of_remove_table(dev); |
---|
1253 | 1261 | |
---|
.. | .. |
---|
1325 | 1333 | } |
---|
1326 | 1334 | dp->initial_freq = rknpu_dev->current_freq; |
---|
1327 | 1335 | |
---|
| 1336 | +#ifdef CONFIG_PM_DEVFREQ |
---|
1328 | 1337 | ret = devfreq_add_governor(&devfreq_rknpu_ondemand); |
---|
1329 | 1338 | if (ret) { |
---|
1330 | 1339 | LOG_DEV_ERROR(dev, "failed to add rknpu_ondemand governor\n"); |
---|
1331 | 1340 | goto err_remove_table; |
---|
1332 | 1341 | } |
---|
| 1342 | +#endif |
---|
1333 | 1343 | |
---|
1334 | 1344 | rknpu_dev->devfreq = devm_devfreq_add_device(dev, dp, "rknpu_ondemand", |
---|
1335 | 1345 | (void *)rknpu_dev); |
---|
.. | .. |
---|
1380 | 1390 | return 0; |
---|
1381 | 1391 | |
---|
1382 | 1392 | err_remove_governor: |
---|
| 1393 | +#ifdef CONFIG_PM_DEVFREQ |
---|
1383 | 1394 | devfreq_remove_governor(&devfreq_rknpu_ondemand); |
---|
| 1395 | +#endif |
---|
1384 | 1396 | err_remove_table: |
---|
1385 | 1397 | dev_pm_opp_of_remove_table(dev); |
---|
1386 | 1398 | |
---|
.. | .. |
---|
1396 | 1408 | devfreq_unregister_opp_notifier(rknpu_dev->dev, |
---|
1397 | 1409 | rknpu_dev->devfreq); |
---|
1398 | 1410 | dev_pm_opp_of_remove_table(rknpu_dev->dev); |
---|
| 1411 | +#ifdef CONFIG_PM_DEVFREQ |
---|
1399 | 1412 | devfreq_remove_governor(&devfreq_rknpu_ondemand); |
---|
| 1413 | +#endif |
---|
1400 | 1414 | } |
---|
1401 | 1415 | |
---|
1402 | 1416 | return 0; |
---|