Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) Linaro Ltd 2020
4 * Author: Daniel Lezcano <daniel.lezcano@linaro.org>
5 */
6
7struct thermal_genl_cpu_caps {
8 int cpu;
9 int performance;
10 int efficiency;
11};
12
13enum thermal_genl_multicast_groups {
14 THERMAL_GENL_SAMPLING_GROUP = 0,
15 THERMAL_GENL_EVENT_GROUP = 1,
16 THERMAL_GENL_MAX_GROUP = THERMAL_GENL_EVENT_GROUP,
17};
18
19#define THERMAL_NOTIFY_BIND 0
20#define THERMAL_NOTIFY_UNBIND 1
21
22struct thermal_genl_notify {
23 int mcgrp;
24};
25
26struct thermal_zone_device;
27struct thermal_trip;
28struct thermal_cooling_device;
29
30/* Netlink notification function */
31#ifdef CONFIG_THERMAL_NETLINK
32int __init thermal_netlink_init(void);
33void __init thermal_netlink_exit(void);
34int thermal_genl_register_notifier(struct notifier_block *nb);
35int thermal_genl_unregister_notifier(struct notifier_block *nb);
36
37int thermal_notify_tz_create(const struct thermal_zone_device *tz);
38int thermal_notify_tz_delete(const struct thermal_zone_device *tz);
39int thermal_notify_tz_enable(const struct thermal_zone_device *tz);
40int thermal_notify_tz_disable(const struct thermal_zone_device *tz);
41int thermal_notify_tz_trip_down(const struct thermal_zone_device *tz,
42 const struct thermal_trip *trip);
43int thermal_notify_tz_trip_up(const struct thermal_zone_device *tz,
44 const struct thermal_trip *trip);
45int thermal_notify_tz_trip_change(const struct thermal_zone_device *tz,
46 const struct thermal_trip *trip);
47int thermal_notify_cdev_state_update(const struct thermal_cooling_device *cdev,
48 int state);
49int thermal_notify_cdev_add(const struct thermal_cooling_device *cdev);
50int thermal_notify_cdev_delete(const struct thermal_cooling_device *cdev);
51int thermal_notify_tz_gov_change(const struct thermal_zone_device *tz,
52 const char *name);
53int thermal_genl_sampling_temp(int id, int temp);
54int thermal_genl_cpu_capability_event(int count,
55 struct thermal_genl_cpu_caps *caps);
56int thermal_notify_threshold_add(const struct thermal_zone_device *tz,
57 int temperature, int direction);
58int thermal_notify_threshold_delete(const struct thermal_zone_device *tz,
59 int temperature, int direction);
60int thermal_notify_threshold_flush(const struct thermal_zone_device *tz);
61int thermal_notify_threshold_down(const struct thermal_zone_device *tz);
62int thermal_notify_threshold_up(const struct thermal_zone_device *tz);
63#else
64static inline int thermal_netlink_init(void)
65{
66 return 0;
67}
68
69static inline int thermal_notify_tz_create(const struct thermal_zone_device *tz)
70{
71 return 0;
72}
73
74static inline int thermal_genl_register_notifier(struct notifier_block *nb)
75{
76 return 0;
77}
78
79static inline int thermal_genl_unregister_notifier(struct notifier_block *nb)
80{
81 return 0;
82}
83
84static inline int thermal_notify_tz_delete(const struct thermal_zone_device *tz)
85{
86 return 0;
87}
88
89static inline int thermal_notify_tz_enable(const struct thermal_zone_device *tz)
90{
91 return 0;
92}
93
94static inline int thermal_notify_tz_disable(const struct thermal_zone_device *tz)
95{
96 return 0;
97}
98
99static inline int thermal_notify_tz_trip_down(const struct thermal_zone_device *tz,
100 const struct thermal_trip *trip)
101{
102 return 0;
103}
104
105static inline int thermal_notify_tz_trip_up(const struct thermal_zone_device *tz,
106 const struct thermal_trip *trip)
107{
108 return 0;
109}
110
111static inline int thermal_notify_tz_trip_change(const struct thermal_zone_device *tz,
112 const struct thermal_trip *trip)
113{
114 return 0;
115}
116
117static inline int thermal_notify_cdev_state_update(const struct thermal_cooling_device *cdev,
118 int state)
119{
120 return 0;
121}
122
123static inline int thermal_notify_cdev_add(const struct thermal_cooling_device *cdev)
124{
125 return 0;
126}
127
128static inline int thermal_notify_cdev_delete(const struct thermal_cooling_device *cdev)
129{
130 return 0;
131}
132
133static inline int thermal_notify_tz_gov_change(const struct thermal_zone_device *tz,
134 const char *name)
135{
136 return 0;
137}
138
139static inline int thermal_genl_sampling_temp(int id, int temp)
140{
141 return 0;
142}
143
144static inline int thermal_genl_cpu_capability_event(int count, struct thermal_genl_cpu_caps *caps)
145{
146 return 0;
147}
148
149static inline int thermal_notify_threshold_add(const struct thermal_zone_device *tz,
150 int temperature, int direction)
151{
152 return 0;
153}
154
155static inline int thermal_notify_threshold_delete(const struct thermal_zone_device *tz,
156 int temperature, int direction)
157{
158 return 0;
159}
160
161static inline int thermal_notify_threshold_flush(const struct thermal_zone_device *tz)
162{
163 return 0;
164}
165
166static inline int thermal_notify_threshold_down(const struct thermal_zone_device *tz)
167{
168 return 0;
169}
170
171static inline int thermal_notify_threshold_up(const struct thermal_zone_device *tz)
172{
173 return 0;
174}
175
176static inline void __init thermal_netlink_exit(void) {}
177
178#endif /* CONFIG_THERMAL_NETLINK */
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) Linaro Ltd 2020
4 * Author: Daniel Lezcano <daniel.lezcano@linaro.org>
5 */
6
7struct thermal_genl_cpu_caps {
8 int cpu;
9 int performance;
10 int efficiency;
11};
12
13struct thermal_zone_device;
14struct thermal_trip;
15struct thermal_cooling_device;
16
17/* Netlink notification function */
18#ifdef CONFIG_THERMAL_NETLINK
19int __init thermal_netlink_init(void);
20void __init thermal_netlink_exit(void);
21int thermal_notify_tz_create(const struct thermal_zone_device *tz);
22int thermal_notify_tz_delete(const struct thermal_zone_device *tz);
23int thermal_notify_tz_enable(const struct thermal_zone_device *tz);
24int thermal_notify_tz_disable(const struct thermal_zone_device *tz);
25int thermal_notify_tz_trip_down(const struct thermal_zone_device *tz,
26 const struct thermal_trip *trip);
27int thermal_notify_tz_trip_up(const struct thermal_zone_device *tz,
28 const struct thermal_trip *trip);
29int thermal_notify_tz_trip_change(const struct thermal_zone_device *tz,
30 const struct thermal_trip *trip);
31int thermal_notify_cdev_state_update(const struct thermal_cooling_device *cdev,
32 int state);
33int thermal_notify_cdev_add(const struct thermal_cooling_device *cdev);
34int thermal_notify_cdev_delete(const struct thermal_cooling_device *cdev);
35int thermal_notify_tz_gov_change(const struct thermal_zone_device *tz,
36 const char *name);
37int thermal_genl_sampling_temp(int id, int temp);
38int thermal_genl_cpu_capability_event(int count,
39 struct thermal_genl_cpu_caps *caps);
40#else
41static inline int thermal_netlink_init(void)
42{
43 return 0;
44}
45
46static inline int thermal_notify_tz_create(const struct thermal_zone_device *tz)
47{
48 return 0;
49}
50
51static inline int thermal_notify_tz_delete(const struct thermal_zone_device *tz)
52{
53 return 0;
54}
55
56static inline int thermal_notify_tz_enable(const struct thermal_zone_device *tz)
57{
58 return 0;
59}
60
61static inline int thermal_notify_tz_disable(const struct thermal_zone_device *tz)
62{
63 return 0;
64}
65
66static inline int thermal_notify_tz_trip_down(const struct thermal_zone_device *tz,
67 const struct thermal_trip *trip)
68{
69 return 0;
70}
71
72static inline int thermal_notify_tz_trip_up(const struct thermal_zone_device *tz,
73 const struct thermal_trip *trip)
74{
75 return 0;
76}
77
78static inline int thermal_notify_tz_trip_change(const struct thermal_zone_device *tz,
79 const struct thermal_trip *trip)
80{
81 return 0;
82}
83
84static inline int thermal_notify_cdev_state_update(const struct thermal_cooling_device *cdev,
85 int state)
86{
87 return 0;
88}
89
90static inline int thermal_notify_cdev_add(const struct thermal_cooling_device *cdev)
91{
92 return 0;
93}
94
95static inline int thermal_notify_cdev_delete(const struct thermal_cooling_device *cdev)
96{
97 return 0;
98}
99
100static inline int thermal_notify_tz_gov_change(const struct thermal_zone_device *tz,
101 const char *name)
102{
103 return 0;
104}
105
106static inline int thermal_genl_sampling_temp(int id, int temp)
107{
108 return 0;
109}
110
111static inline int thermal_genl_cpu_capability_event(int count, struct thermal_genl_cpu_caps *caps)
112{
113 return 0;
114}
115
116static inline void __init thermal_netlink_exit(void) {}
117
118#endif /* CONFIG_THERMAL_NETLINK */