.. | .. |
---|
15 | 15 | #include <linux/device.h> |
---|
16 | 16 | #include <linux/sysfs.h> |
---|
17 | 17 | #include <linux/workqueue.h> |
---|
| 18 | +#include <linux/android_kabi.h> |
---|
18 | 19 | #include <uapi/linux/thermal.h> |
---|
19 | 20 | |
---|
20 | 21 | #define THERMAL_TRIPS_NONE -1 |
---|
.. | .. |
---|
29 | 30 | /* Default weight of a bound cooling device */ |
---|
30 | 31 | #define THERMAL_WEIGHT_DEFAULT 0 |
---|
31 | 32 | |
---|
32 | | -/* Max sensors that can be used for a single virtual thermalzone */ |
---|
33 | | -#define THERMAL_MAX_VIRT_SENSORS 10 |
---|
34 | | - |
---|
35 | 33 | /* use value, which < 0K, to indicate an invalid/uninitialized temperature */ |
---|
36 | 34 | #define THERMAL_TEMP_INVALID -274000 |
---|
37 | | - |
---|
38 | | -/* |
---|
39 | | - * use a high value for low temp tracking zone, |
---|
40 | | - * to indicate an invalid/uninitialized temperature |
---|
41 | | - */ |
---|
42 | | -#define THERMAL_TEMP_INVALID_LOW 274000 |
---|
43 | | - |
---|
44 | | -/* Unit conversion macros */ |
---|
45 | | -#define DECI_KELVIN_TO_CELSIUS(t) ({ \ |
---|
46 | | - long _t = (t); \ |
---|
47 | | - ((_t-2732 >= 0) ? (_t-2732+5)/10 : (_t-2732-5)/10); \ |
---|
48 | | -}) |
---|
49 | | -#define CELSIUS_TO_DECI_KELVIN(t) ((t)*10+2732) |
---|
50 | | -#define DECI_KELVIN_TO_MILLICELSIUS_WITH_OFFSET(t, off) (((t) - (off)) * 100) |
---|
51 | | -#define DECI_KELVIN_TO_MILLICELSIUS(t) DECI_KELVIN_TO_MILLICELSIUS_WITH_OFFSET(t, 2732) |
---|
52 | | -#define MILLICELSIUS_TO_DECI_KELVIN_WITH_OFFSET(t, off) (((t) / 100) + (off)) |
---|
53 | | -#define MILLICELSIUS_TO_DECI_KELVIN(t) MILLICELSIUS_TO_DECI_KELVIN_WITH_OFFSET(t, 2732) |
---|
54 | | - |
---|
55 | | -/* Default Thermal Governor */ |
---|
56 | | -#if defined(CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE) |
---|
57 | | -#define DEFAULT_THERMAL_GOVERNOR "step_wise" |
---|
58 | | -#elif defined(CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE) |
---|
59 | | -#define DEFAULT_THERMAL_GOVERNOR "fair_share" |
---|
60 | | -#elif defined(CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE) |
---|
61 | | -#define DEFAULT_THERMAL_GOVERNOR "user_space" |
---|
62 | | -#elif defined(CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR) |
---|
63 | | -#define DEFAULT_THERMAL_GOVERNOR "power_allocator" |
---|
64 | | -#endif |
---|
65 | 35 | |
---|
66 | 36 | struct thermal_zone_device; |
---|
67 | 37 | struct thermal_cooling_device; |
---|
68 | 38 | struct thermal_instance; |
---|
69 | | - |
---|
70 | | -enum thermal_device_mode { |
---|
71 | | - THERMAL_DEVICE_DISABLED = 0, |
---|
72 | | - THERMAL_DEVICE_ENABLED, |
---|
73 | | -}; |
---|
74 | | - |
---|
75 | | -enum thermal_trip_type { |
---|
76 | | - THERMAL_TRIP_ACTIVE = 0, |
---|
77 | | - THERMAL_TRIP_PASSIVE, |
---|
78 | | - THERMAL_TRIP_HOT, |
---|
79 | | - THERMAL_TRIP_CRITICAL, |
---|
80 | | - THERMAL_TRIP_CONFIGURABLE_HI, |
---|
81 | | - THERMAL_TRIP_CONFIGURABLE_LOW, |
---|
82 | | - THERMAL_TRIP_CRITICAL_LOW, |
---|
83 | | -}; |
---|
| 39 | +struct thermal_attr; |
---|
84 | 40 | |
---|
85 | 41 | enum thermal_trend { |
---|
86 | 42 | THERMAL_TREND_STABLE, /* temperature is stable */ |
---|
.. | .. |
---|
100 | 56 | THERMAL_DEVICE_UP, /* Thermal device is up after a down event */ |
---|
101 | 57 | THERMAL_DEVICE_POWER_CAPABILITY_CHANGED, /* power capability changed */ |
---|
102 | 58 | THERMAL_TABLE_CHANGED, /* Thermal table(s) changed */ |
---|
| 59 | + THERMAL_EVENT_KEEP_ALIVE, /* Request for user space handler to respond */ |
---|
103 | 60 | }; |
---|
104 | 61 | |
---|
105 | 62 | struct thermal_zone_device_ops { |
---|
.. | .. |
---|
109 | 66 | struct thermal_cooling_device *); |
---|
110 | 67 | int (*get_temp) (struct thermal_zone_device *, int *); |
---|
111 | 68 | int (*set_trips) (struct thermal_zone_device *, int, int); |
---|
112 | | - int (*get_mode) (struct thermal_zone_device *, |
---|
113 | | - enum thermal_device_mode *); |
---|
114 | | - int (*set_mode) (struct thermal_zone_device *, |
---|
| 69 | + int (*change_mode) (struct thermal_zone_device *, |
---|
115 | 70 | enum thermal_device_mode); |
---|
116 | 71 | int (*get_trip_type) (struct thermal_zone_device *, int, |
---|
117 | 72 | enum thermal_trip_type *); |
---|
.. | .. |
---|
125 | 80 | enum thermal_trend *); |
---|
126 | 81 | int (*notify) (struct thermal_zone_device *, int, |
---|
127 | 82 | enum thermal_trip_type); |
---|
128 | | - bool (*is_wakeable)(struct thermal_zone_device *); |
---|
129 | | - int (*set_polling_delay)(struct thermal_zone_device *, int); |
---|
130 | | - int (*set_passive_delay)(struct thermal_zone_device *, int); |
---|
| 83 | + ANDROID_KABI_RESERVE(1); |
---|
131 | 84 | }; |
---|
132 | 85 | |
---|
133 | 86 | struct thermal_cooling_device_ops { |
---|
134 | 87 | int (*get_max_state) (struct thermal_cooling_device *, unsigned long *); |
---|
135 | 88 | int (*get_cur_state) (struct thermal_cooling_device *, unsigned long *); |
---|
136 | 89 | int (*set_cur_state) (struct thermal_cooling_device *, unsigned long); |
---|
137 | | - int (*set_min_state)(struct thermal_cooling_device *cdev, |
---|
138 | | - unsigned long target); |
---|
139 | | - int (*get_min_state)(struct thermal_cooling_device *cdev, |
---|
140 | | - unsigned long *target); |
---|
141 | | - int (*get_requested_power)(struct thermal_cooling_device *, |
---|
142 | | - struct thermal_zone_device *, u32 *); |
---|
143 | | - int (*state2power)(struct thermal_cooling_device *, |
---|
144 | | - struct thermal_zone_device *, unsigned long, u32 *); |
---|
145 | | - int (*power2state)(struct thermal_cooling_device *, |
---|
146 | | - struct thermal_zone_device *, u32, unsigned long *); |
---|
| 90 | + int (*get_requested_power)(struct thermal_cooling_device *, u32 *); |
---|
| 91 | + int (*state2power)(struct thermal_cooling_device *, unsigned long, u32 *); |
---|
| 92 | + int (*power2state)(struct thermal_cooling_device *, u32, unsigned long *); |
---|
| 93 | + |
---|
| 94 | + ANDROID_KABI_RESERVE(1); |
---|
147 | 95 | }; |
---|
148 | 96 | |
---|
149 | 97 | struct thermal_cooling_device { |
---|
.. | .. |
---|
158 | 106 | struct mutex lock; /* protect thermal_instances list */ |
---|
159 | 107 | struct list_head thermal_instances; |
---|
160 | 108 | struct list_head node; |
---|
161 | | - unsigned long sysfs_cur_state_req; |
---|
162 | | - unsigned long sysfs_min_state_req; |
---|
163 | | -}; |
---|
164 | 109 | |
---|
165 | | -struct thermal_attr { |
---|
166 | | - struct device_attribute attr; |
---|
167 | | - char name[THERMAL_NAME_LENGTH]; |
---|
| 110 | + ANDROID_KABI_RESERVE(1); |
---|
168 | 111 | }; |
---|
169 | 112 | |
---|
170 | 113 | /** |
---|
.. | .. |
---|
175 | 118 | * @trip_temp_attrs: attributes for trip points for sysfs: trip temperature |
---|
176 | 119 | * @trip_type_attrs: attributes for trip points for sysfs: trip type |
---|
177 | 120 | * @trip_hyst_attrs: attributes for trip points for sysfs: trip hysteresis |
---|
| 121 | + * @mode: current mode of this thermal zone |
---|
178 | 122 | * @devdata: private pointer for device private data |
---|
179 | 123 | * @trips: number of trip points the thermal zone supports |
---|
180 | 124 | * @trips_disabled; bitmap for disabled trips |
---|
.. | .. |
---|
217 | 161 | struct thermal_attr *trip_temp_attrs; |
---|
218 | 162 | struct thermal_attr *trip_type_attrs; |
---|
219 | 163 | struct thermal_attr *trip_hyst_attrs; |
---|
| 164 | + enum thermal_device_mode mode; |
---|
220 | 165 | void *devdata; |
---|
221 | 166 | int trips; |
---|
222 | 167 | unsigned long trips_disabled; /* bitmap for disabled trips */ |
---|
.. | .. |
---|
240 | 185 | struct list_head node; |
---|
241 | 186 | struct delayed_work poll_queue; |
---|
242 | 187 | enum thermal_notify_event notify_event; |
---|
| 188 | + |
---|
| 189 | + ANDROID_KABI_RESERVE(1); |
---|
243 | 190 | }; |
---|
244 | 191 | |
---|
245 | 192 | /** |
---|
.. | .. |
---|
260 | 207 | void (*unbind_from_tz)(struct thermal_zone_device *tz); |
---|
261 | 208 | int (*throttle)(struct thermal_zone_device *tz, int trip); |
---|
262 | 209 | struct list_head governor_list; |
---|
263 | | - int min_state_throttle; |
---|
| 210 | + |
---|
| 211 | + ANDROID_KABI_RESERVE(1); |
---|
264 | 212 | }; |
---|
265 | 213 | |
---|
266 | 214 | /* Structure that holds binding parameters for a zone */ |
---|
.. | .. |
---|
273 | 221 | * platform characterization. This value is relative to the |
---|
274 | 222 | * rest of the weights so a cooling device whose weight is |
---|
275 | 223 | * double that of another cooling device is twice as |
---|
276 | | - * effective. See Documentation/thermal/sysfs-api.txt for more |
---|
| 224 | + * effective. See Documentation/driver-api/thermal/sysfs-api.rst for more |
---|
277 | 225 | * information. |
---|
278 | 226 | */ |
---|
279 | 227 | int weight; |
---|
.. | .. |
---|
281 | 229 | /* |
---|
282 | 230 | * This is a bit mask that gives the binding relation between this |
---|
283 | 231 | * thermal zone and cdev, for a particular trip point. |
---|
284 | | - * See Documentation/thermal/sysfs-api.txt for more information. |
---|
| 232 | + * See Documentation/driver-api/thermal/sysfs-api.rst for more information. |
---|
285 | 233 | */ |
---|
286 | 234 | int trip_mask; |
---|
287 | 235 | |
---|
.. | .. |
---|
296 | 244 | unsigned long *binding_limits; |
---|
297 | 245 | int (*match) (struct thermal_zone_device *tz, |
---|
298 | 246 | struct thermal_cooling_device *cdev); |
---|
| 247 | + |
---|
| 248 | + ANDROID_KABI_RESERVE(1); |
---|
299 | 249 | }; |
---|
300 | 250 | |
---|
301 | 251 | /* Structure to define Thermal Zone parameters */ |
---|
.. | .. |
---|
324 | 274 | */ |
---|
325 | 275 | s32 k_po; |
---|
326 | 276 | |
---|
327 | | - bool is_k_po_available; |
---|
328 | | - |
---|
329 | 277 | /* |
---|
330 | 278 | * Proportional parameter of the PID controller when |
---|
331 | 279 | * undershooting |
---|
332 | 280 | */ |
---|
333 | 281 | s32 k_pu; |
---|
334 | 282 | |
---|
335 | | - bool is_k_pu_available; |
---|
336 | | - |
---|
337 | 283 | /* Integral parameter of the PID controller */ |
---|
338 | 284 | s32 k_i; |
---|
339 | | - |
---|
340 | | - bool is_k_i_available; |
---|
341 | 285 | |
---|
342 | 286 | /* Derivative parameter of the PID controller */ |
---|
343 | 287 | s32 k_d; |
---|
.. | .. |
---|
356 | 300 | */ |
---|
357 | 301 | int offset; |
---|
358 | 302 | |
---|
359 | | - /* |
---|
360 | | - * @tracks_low: Indicates that the thermal zone params are for |
---|
361 | | - * temperatures falling below the thresholds. |
---|
362 | | - */ |
---|
363 | | - bool tracks_low; |
---|
364 | | -}; |
---|
365 | | - |
---|
366 | | -struct thermal_genl_event { |
---|
367 | | - u32 orig; |
---|
368 | | - enum events event; |
---|
| 303 | + ANDROID_KABI_RESERVE(1); |
---|
369 | 304 | }; |
---|
370 | 305 | |
---|
371 | 306 | /** |
---|
.. | .. |
---|
383 | 318 | * temperature. |
---|
384 | 319 | * @set_trip_temp: a pointer to a function that sets the trip temperature on |
---|
385 | 320 | * hardware. |
---|
386 | | - * @get_trip_temp: a pointer to a function that gets the trip temperature on |
---|
387 | | - * hardware. |
---|
388 | 321 | */ |
---|
389 | 322 | struct thermal_zone_of_device_ops { |
---|
390 | 323 | int (*get_temp)(void *, int *); |
---|
.. | .. |
---|
392 | 325 | int (*set_trips)(void *, int, int); |
---|
393 | 326 | int (*set_emul_temp)(void *, int); |
---|
394 | 327 | int (*set_trip_temp)(void *, int, int); |
---|
395 | | - int (*get_trip_temp)(void *, int, int *); |
---|
396 | | -}; |
---|
397 | 328 | |
---|
398 | | -/** |
---|
399 | | - * struct thermal_trip - representation of a point in temperature domain |
---|
400 | | - * @np: pointer to struct device_node that this trip point was created from |
---|
401 | | - * @temperature: temperature value in miliCelsius |
---|
402 | | - * @hysteresis: relative hysteresis in miliCelsius |
---|
403 | | - * @type: trip point type |
---|
404 | | - */ |
---|
405 | | - |
---|
406 | | -struct thermal_trip { |
---|
407 | | - struct device_node *np; |
---|
408 | | - int temperature; |
---|
409 | | - int hysteresis; |
---|
410 | | - enum thermal_trip_type type; |
---|
411 | | -}; |
---|
412 | | - |
---|
413 | | -/* Different aggregation logic supported for virtual sensors */ |
---|
414 | | -enum aggregation_logic { |
---|
415 | | - VIRT_WEIGHTED_AVG, |
---|
416 | | - VIRT_MAXIMUM, |
---|
417 | | - VIRT_MINIMUM, |
---|
418 | | - VIRT_COUNT_THRESHOLD, |
---|
419 | | - VIRT_AGGREGATION_NR, |
---|
420 | | -}; |
---|
421 | | - |
---|
422 | | -/* |
---|
423 | | - * struct virtual_sensor_data - Data structure used to provide |
---|
424 | | - * information about the virtual zone. |
---|
425 | | - * @virt_zone_name - Virtual thermal zone name |
---|
426 | | - * @num_sensors - Number of sensors this virtual zone uses to compute |
---|
427 | | - * temperature |
---|
428 | | - * @sensor_names - Array of sensor names |
---|
429 | | - * @logic - Temperature aggregation logic to be used |
---|
430 | | - * @coefficients - Coefficients to be used for weighted average logic |
---|
431 | | - * @coefficient_ct - number of coefficients provided as input |
---|
432 | | - * @avg_offset - offset value to be used for the weighted aggregation logic |
---|
433 | | - * @avg_denominator - denominator value to be used for the weighted aggregation |
---|
434 | | - * logic |
---|
435 | | - */ |
---|
436 | | -struct virtual_sensor_data { |
---|
437 | | - int num_sensors; |
---|
438 | | - char virt_zone_name[THERMAL_NAME_LENGTH]; |
---|
439 | | - char *sensor_names[THERMAL_MAX_VIRT_SENSORS]; |
---|
440 | | - enum aggregation_logic logic; |
---|
441 | | - int coefficients[THERMAL_MAX_VIRT_SENSORS]; |
---|
442 | | - int coefficient_ct; |
---|
443 | | - int avg_offset; |
---|
444 | | - int avg_denominator; |
---|
| 329 | + ANDROID_KABI_RESERVE(1); |
---|
445 | 330 | }; |
---|
446 | 331 | |
---|
447 | 332 | /* Function declarations */ |
---|
448 | 333 | #ifdef CONFIG_THERMAL_OF |
---|
| 334 | +int thermal_zone_of_get_sensor_id(struct device_node *tz_np, |
---|
| 335 | + struct device_node *sensor_np, |
---|
| 336 | + u32 *id); |
---|
449 | 337 | struct thermal_zone_device * |
---|
450 | 338 | thermal_zone_of_sensor_register(struct device *dev, int id, void *data, |
---|
451 | 339 | const struct thermal_zone_of_device_ops *ops); |
---|
.. | .. |
---|
456 | 344 | const struct thermal_zone_of_device_ops *ops); |
---|
457 | 345 | void devm_thermal_zone_of_sensor_unregister(struct device *dev, |
---|
458 | 346 | struct thermal_zone_device *tz); |
---|
459 | | -struct thermal_zone_device *devm_thermal_of_virtual_sensor_register( |
---|
460 | | - struct device *dev, |
---|
461 | | - const struct virtual_sensor_data *sensor_data); |
---|
462 | 347 | #else |
---|
| 348 | + |
---|
| 349 | +static inline int thermal_zone_of_get_sensor_id(struct device_node *tz_np, |
---|
| 350 | + struct device_node *sensor_np, |
---|
| 351 | + u32 *id) |
---|
| 352 | +{ |
---|
| 353 | + return -ENOENT; |
---|
| 354 | +} |
---|
463 | 355 | static inline struct thermal_zone_device * |
---|
464 | 356 | thermal_zone_of_sensor_register(struct device *dev, int id, void *data, |
---|
465 | 357 | const struct thermal_zone_of_device_ops *ops) |
---|
.. | .. |
---|
486 | 378 | { |
---|
487 | 379 | } |
---|
488 | 380 | |
---|
489 | | -static inline |
---|
490 | | -struct thermal_zone_device *devm_thermal_of_virtual_sensor_register( |
---|
491 | | - struct device *dev, |
---|
492 | | - const struct virtual_sensor_data *sensor_data) |
---|
493 | | -{ |
---|
494 | | - return ERR_PTR(-ENODEV); |
---|
495 | | -} |
---|
496 | | - |
---|
497 | 381 | #endif |
---|
498 | 382 | |
---|
499 | | -#if IS_ENABLED(CONFIG_THERMAL) |
---|
500 | | -static inline bool cdev_is_power_actor(struct thermal_cooling_device *cdev) |
---|
501 | | -{ |
---|
502 | | - return cdev->ops->get_requested_power && cdev->ops->state2power && |
---|
503 | | - cdev->ops->power2state; |
---|
504 | | -} |
---|
505 | | - |
---|
506 | | -int power_actor_get_max_power(struct thermal_cooling_device *, |
---|
507 | | - struct thermal_zone_device *tz, u32 *max_power); |
---|
508 | | -int power_actor_get_min_power(struct thermal_cooling_device *, |
---|
509 | | - struct thermal_zone_device *tz, u32 *min_power); |
---|
510 | | -int power_actor_set_power(struct thermal_cooling_device *, |
---|
511 | | - struct thermal_instance *, u32); |
---|
| 383 | +#ifdef CONFIG_THERMAL |
---|
512 | 384 | struct thermal_zone_device *thermal_zone_device_register(const char *, int, int, |
---|
513 | 385 | void *, struct thermal_zone_device_ops *, |
---|
514 | 386 | struct thermal_zone_params *, int, int); |
---|
.. | .. |
---|
522 | 394 | struct thermal_cooling_device *); |
---|
523 | 395 | void thermal_zone_device_update(struct thermal_zone_device *, |
---|
524 | 396 | enum thermal_notify_event); |
---|
525 | | -void thermal_zone_device_update_temp(struct thermal_zone_device *tz, |
---|
526 | | - enum thermal_notify_event event, int temp); |
---|
527 | | -void thermal_zone_set_trips(struct thermal_zone_device *); |
---|
528 | 397 | |
---|
529 | 398 | struct thermal_cooling_device *thermal_cooling_device_register(const char *, |
---|
530 | 399 | void *, const struct thermal_cooling_device_ops *); |
---|
531 | 400 | struct thermal_cooling_device * |
---|
532 | 401 | thermal_of_cooling_device_register(struct device_node *np, const char *, void *, |
---|
533 | 402 | const struct thermal_cooling_device_ops *); |
---|
| 403 | +struct thermal_cooling_device * |
---|
| 404 | +devm_thermal_of_cooling_device_register(struct device *dev, |
---|
| 405 | + struct device_node *np, |
---|
| 406 | + char *type, void *devdata, |
---|
| 407 | + const struct thermal_cooling_device_ops *ops); |
---|
534 | 408 | void thermal_cooling_device_unregister(struct thermal_cooling_device *); |
---|
535 | 409 | struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name); |
---|
536 | | -struct thermal_cooling_device *thermal_zone_get_cdev_by_name(const char *name); |
---|
537 | 410 | int thermal_zone_get_temp(struct thermal_zone_device *tz, int *temp); |
---|
538 | 411 | int thermal_zone_get_slope(struct thermal_zone_device *tz); |
---|
539 | 412 | int thermal_zone_get_offset(struct thermal_zone_device *tz); |
---|
540 | 413 | |
---|
541 | | -int get_tz_trend(struct thermal_zone_device *, int); |
---|
542 | | -struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, |
---|
543 | | - struct thermal_cooling_device *, int); |
---|
544 | 414 | void thermal_cdev_update(struct thermal_cooling_device *); |
---|
545 | 415 | void thermal_notify_framework(struct thermal_zone_device *, int); |
---|
| 416 | +int thermal_zone_device_enable(struct thermal_zone_device *tz); |
---|
| 417 | +int thermal_zone_device_disable(struct thermal_zone_device *tz); |
---|
| 418 | +int thermal_zone_device_is_enabled(struct thermal_zone_device *tz); |
---|
546 | 419 | #else |
---|
547 | | -static inline bool cdev_is_power_actor(struct thermal_cooling_device *cdev) |
---|
548 | | -{ return false; } |
---|
549 | | -static inline int power_actor_get_max_power(struct thermal_cooling_device *cdev, |
---|
550 | | - struct thermal_zone_device *tz, u32 *max_power) |
---|
551 | | -{ return 0; } |
---|
552 | | -static inline int power_actor_get_min_power(struct thermal_cooling_device *cdev, |
---|
553 | | - struct thermal_zone_device *tz, |
---|
554 | | - u32 *min_power) |
---|
555 | | -{ return -ENODEV; } |
---|
556 | | -static inline int power_actor_set_power(struct thermal_cooling_device *cdev, |
---|
557 | | - struct thermal_instance *tz, u32 power) |
---|
558 | | -{ return 0; } |
---|
559 | 420 | static inline struct thermal_zone_device *thermal_zone_device_register( |
---|
560 | 421 | const char *type, int trips, int mask, void *devdata, |
---|
561 | 422 | struct thermal_zone_device_ops *ops, |
---|
.. | .. |
---|
565 | 426 | static inline void thermal_zone_device_unregister( |
---|
566 | 427 | struct thermal_zone_device *tz) |
---|
567 | 428 | { } |
---|
568 | | -static inline int thermal_zone_bind_cooling_device( |
---|
569 | | - struct thermal_zone_device *tz, int trip, |
---|
570 | | - struct thermal_cooling_device *cdev, |
---|
571 | | - unsigned long upper, unsigned long lower, |
---|
572 | | - unsigned int weight) |
---|
573 | | -{ return -ENODEV; } |
---|
574 | | -static inline int thermal_zone_unbind_cooling_device( |
---|
575 | | - struct thermal_zone_device *tz, int trip, |
---|
576 | | - struct thermal_cooling_device *cdev) |
---|
577 | | -{ return -ENODEV; } |
---|
578 | | -static inline void thermal_zone_device_update(struct thermal_zone_device *tz, |
---|
579 | | - enum thermal_notify_event event) |
---|
580 | | -{ } |
---|
581 | | -static inline void thermal_zone_device_update_temp( |
---|
582 | | - struct thermal_zone_device *tz, enum thermal_notify_event event, |
---|
583 | | - int temp) |
---|
584 | | -{ } |
---|
585 | | -static inline void thermal_zone_set_trips(struct thermal_zone_device *tz) |
---|
586 | | -{ } |
---|
587 | 429 | static inline struct thermal_cooling_device * |
---|
588 | | -thermal_cooling_device_register(char *type, void *devdata, |
---|
| 430 | +thermal_cooling_device_register(const char *type, void *devdata, |
---|
589 | 431 | const struct thermal_cooling_device_ops *ops) |
---|
590 | 432 | { return ERR_PTR(-ENODEV); } |
---|
591 | 433 | static inline struct thermal_cooling_device * |
---|
592 | 434 | thermal_of_cooling_device_register(struct device_node *np, |
---|
593 | | - char *type, void *devdata, const struct thermal_cooling_device_ops *ops) |
---|
| 435 | + const char *type, void *devdata, |
---|
| 436 | + const struct thermal_cooling_device_ops *ops) |
---|
594 | 437 | { return ERR_PTR(-ENODEV); } |
---|
| 438 | +static inline struct thermal_cooling_device * |
---|
| 439 | +devm_thermal_of_cooling_device_register(struct device *dev, |
---|
| 440 | + struct device_node *np, |
---|
| 441 | + char *type, void *devdata, |
---|
| 442 | + const struct thermal_cooling_device_ops *ops) |
---|
| 443 | +{ |
---|
| 444 | + return ERR_PTR(-ENODEV); |
---|
| 445 | +} |
---|
595 | 446 | static inline void thermal_cooling_device_unregister( |
---|
596 | 447 | struct thermal_cooling_device *cdev) |
---|
597 | 448 | { } |
---|
598 | 449 | static inline struct thermal_zone_device *thermal_zone_get_zone_by_name( |
---|
599 | | - const char *name) |
---|
600 | | -{ return ERR_PTR(-ENODEV); } |
---|
601 | | -static inline struct thermal_cooling_device *thermal_zone_get_cdev_by_name( |
---|
602 | 450 | const char *name) |
---|
603 | 451 | { return ERR_PTR(-ENODEV); } |
---|
604 | 452 | static inline int thermal_zone_get_temp( |
---|
.. | .. |
---|
610 | 458 | static inline int thermal_zone_get_offset( |
---|
611 | 459 | struct thermal_zone_device *tz) |
---|
612 | 460 | { return -ENODEV; } |
---|
613 | | -static inline int get_tz_trend(struct thermal_zone_device *tz, int trip) |
---|
614 | | -{ return -ENODEV; } |
---|
615 | | -static inline struct thermal_instance * |
---|
616 | | -get_thermal_instance(struct thermal_zone_device *tz, |
---|
617 | | - struct thermal_cooling_device *cdev, int trip) |
---|
618 | | -{ return ERR_PTR(-ENODEV); } |
---|
| 461 | + |
---|
619 | 462 | static inline void thermal_cdev_update(struct thermal_cooling_device *cdev) |
---|
620 | 463 | { } |
---|
621 | 464 | static inline void thermal_notify_framework(struct thermal_zone_device *tz, |
---|
622 | 465 | int trip) |
---|
623 | 466 | { } |
---|
624 | | -#endif /* CONFIG_THERMAL */ |
---|
625 | 467 | |
---|
626 | | -#if defined(CONFIG_NET) && IS_ENABLED(CONFIG_THERMAL) |
---|
627 | | -extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
---|
628 | | - enum events event); |
---|
629 | | -#else |
---|
630 | | -static inline int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
---|
631 | | - enum events event) |
---|
632 | | -{ |
---|
633 | | - return 0; |
---|
634 | | -} |
---|
635 | | -#endif |
---|
| 468 | +static inline int thermal_zone_device_enable(struct thermal_zone_device *tz) |
---|
| 469 | +{ return -ENODEV; } |
---|
| 470 | + |
---|
| 471 | +static inline int thermal_zone_device_disable(struct thermal_zone_device *tz) |
---|
| 472 | +{ return -ENODEV; } |
---|
| 473 | + |
---|
| 474 | +static inline int |
---|
| 475 | +thermal_zone_device_is_enabled(struct thermal_zone_device *tz) |
---|
| 476 | +{ return -ENODEV; } |
---|
| 477 | +#endif /* CONFIG_THERMAL */ |
---|
636 | 478 | |
---|
637 | 479 | #endif /* __THERMAL_H__ */ |
---|