Rui,
On Fri, Feb 13, 2015 at 07:28:02PM -0600, Nishanth Menon wrote: > 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 <[email protected]> > Signed-off-by: Nishanth Menon <[email protected]> I am collecting this one and queuing in my -fixes branch. > --- > > based on next-20150213 tag. > > Note: there are a few "CHECK: Alignment should match open parenthesis" > checkpatch warnings which I ignored since these are pure dummy > functions anyways. > > include/linux/thermal.h | 56 > +++++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 54 insertions(+), 2 deletions(-) > > diff --git a/include/linux/thermal.h b/include/linux/thermal.h > index fc52e307efab..5eac316490ea 100644 > --- a/include/linux/thermal.h > +++ b/include/linux/thermal.h > @@ -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); > - > -#ifdef CONFIG_NET > +#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 */ > + > +#if defined(CONFIG_NET) && IS_ENABLED(CONFIG_THERMAL) > extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, > enum events event); > #else > -- > 1.7.9.5 >
signature.asc
Description: Digital signature

