thermal: Introduce dummy functions when thermal is not defined
When CONFIG_THERMAL is not enabled, it is better to introduce equivalent dummy functions in the exported header than to introduce #ifdeffery in drivers using the function. This will prevent issues such as that reported in: http://www.spinics.net/lists/linux-next/msg31573.html While at it switch over to IS_ENABLED for thermal macros to allow for thermal framework to be built as framework and relevant APIs be usable by relevant drivers as a result. Reported-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
This commit is contained in:
Родитель
9ca9be2b09
Коммит
12ca718846
|
@ -314,6 +314,8 @@ void thermal_zone_of_sensor_unregister(struct device *dev,
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_THERMAL)
|
||||
struct thermal_zone_device *thermal_zone_device_register(const char *, int, int,
|
||||
void *, struct thermal_zone_device_ops *,
|
||||
const struct thermal_zone_params *, int, int);
|
||||
|
@ -340,8 +342,58 @@ struct thermal_instance *get_thermal_instance(struct thermal_zone_device *,
|
|||
struct thermal_cooling_device *, int);
|
||||
void thermal_cdev_update(struct thermal_cooling_device *);
|
||||
void thermal_notify_framework(struct thermal_zone_device *, int);
|
||||
#else
|
||||
static inline struct thermal_zone_device *thermal_zone_device_register(
|
||||
const char *type, int trips, int mask, void *devdata,
|
||||
struct thermal_zone_device_ops *ops,
|
||||
const struct thermal_zone_params *tzp,
|
||||
int passive_delay, int polling_delay)
|
||||
{ return ERR_PTR(-ENODEV); }
|
||||
static inline void thermal_zone_device_unregister(
|
||||
struct thermal_zone_device *tz)
|
||||
{ }
|
||||
static inline int thermal_zone_bind_cooling_device(
|
||||
struct thermal_zone_device *tz, int trip,
|
||||
struct thermal_cooling_device *cdev,
|
||||
unsigned long upper, unsigned long lower)
|
||||
{ return -ENODEV; }
|
||||
static inline int thermal_zone_unbind_cooling_device(
|
||||
struct thermal_zone_device *tz, int trip,
|
||||
struct thermal_cooling_device *cdev)
|
||||
{ return -ENODEV; }
|
||||
static inline void thermal_zone_device_update(struct thermal_zone_device *tz)
|
||||
{ }
|
||||
static inline struct thermal_cooling_device *
|
||||
thermal_cooling_device_register(char *type, void *devdata,
|
||||
const struct thermal_cooling_device_ops *ops)
|
||||
{ return ERR_PTR(-ENODEV); }
|
||||
static inline struct thermal_cooling_device *
|
||||
thermal_of_cooling_device_register(struct device_node *np,
|
||||
char *type, void *devdata, const struct thermal_cooling_device_ops *ops)
|
||||
{ return ERR_PTR(-ENODEV); }
|
||||
static inline void thermal_cooling_device_unregister(
|
||||
struct thermal_cooling_device *cdev)
|
||||
{ }
|
||||
static inline struct thermal_zone_device *thermal_zone_get_zone_by_name(
|
||||
const char *name)
|
||||
{ return ERR_PTR(-ENODEV); }
|
||||
static inline int thermal_zone_get_temp(
|
||||
struct thermal_zone_device *tz, unsigned long *temp)
|
||||
{ return -ENODEV; }
|
||||
static inline int get_tz_trend(struct thermal_zone_device *tz, int trip)
|
||||
{ return -ENODEV; }
|
||||
static inline struct thermal_instance *
|
||||
get_thermal_instance(struct thermal_zone_device *tz,
|
||||
struct thermal_cooling_device *cdev, int trip)
|
||||
{ return ERR_PTR(-ENODEV); }
|
||||
static inline void thermal_cdev_update(struct thermal_cooling_device *cdev)
|
||||
{ }
|
||||
static inline void thermal_notify_framework(struct thermal_zone_device *tz,
|
||||
int trip)
|
||||
{ }
|
||||
#endif /* CONFIG_THERMAL */
|
||||
|
||||
#ifdef CONFIG_NET
|
||||
#if defined(CONFIG_NET) && IS_ENABLED(CONFIG_THERMAL)
|
||||
extern int thermal_generate_netlink_event(struct thermal_zone_device *tz,
|
||||
enum events event);
|
||||
#else
|
||||
|
|
Загрузка…
Ссылка в новой задаче