aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/device.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/device.h')
-rw-r--r--include/linux/device.h85
1 files changed, 57 insertions, 28 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 52a5f15a2223..af92883bb4a6 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -536,6 +536,10 @@ extern void *__devres_alloc(dr_release_t release, size_t size, gfp_t gfp,
536#else 536#else
537extern void *devres_alloc(dr_release_t release, size_t size, gfp_t gfp); 537extern void *devres_alloc(dr_release_t release, size_t size, gfp_t gfp);
538#endif 538#endif
539extern void devres_for_each_res(struct device *dev, dr_release_t release,
540 dr_match_t match, void *match_data,
541 void (*fn)(struct device *, void *, void *),
542 void *data);
539extern void devres_free(void *res); 543extern void devres_free(void *res);
540extern void devres_add(struct device *dev, void *res); 544extern void devres_add(struct device *dev, void *res);
541extern void *devres_find(struct device *dev, dr_release_t release, 545extern void *devres_find(struct device *dev, dr_release_t release,
@@ -891,12 +895,15 @@ extern const char *dev_driver_string(const struct device *dev);
891 895
892#ifdef CONFIG_PRINTK 896#ifdef CONFIG_PRINTK
893 897
894extern int __dev_printk(const char *level, const struct device *dev, 898extern __printf(3, 0)
895 struct va_format *vaf); 899int dev_vprintk_emit(int level, const struct device *dev,
900 const char *fmt, va_list args);
901extern __printf(3, 4)
902int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...);
903
896extern __printf(3, 4) 904extern __printf(3, 4)
897int dev_printk(const char *level, const struct device *dev, 905int dev_printk(const char *level, const struct device *dev,
898 const char *fmt, ...) 906 const char *fmt, ...);
899 ;
900extern __printf(2, 3) 907extern __printf(2, 3)
901int dev_emerg(const struct device *dev, const char *fmt, ...); 908int dev_emerg(const struct device *dev, const char *fmt, ...);
902extern __printf(2, 3) 909extern __printf(2, 3)
@@ -914,6 +921,14 @@ int _dev_info(const struct device *dev, const char *fmt, ...);
914 921
915#else 922#else
916 923
924static inline __printf(3, 0)
925int dev_vprintk_emit(int level, const struct device *dev,
926 const char *fmt, va_list args)
927{ return 0; }
928static inline __printf(3, 4)
929int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...)
930{ return 0; }
931
917static inline int __dev_printk(const char *level, const struct device *dev, 932static inline int __dev_printk(const char *level, const struct device *dev,
918 struct va_format *vaf) 933 struct va_format *vaf)
919{ return 0; } 934{ return 0; }
@@ -946,6 +961,32 @@ int _dev_info(const struct device *dev, const char *fmt, ...)
946 961
947#endif 962#endif
948 963
964/*
965 * Stupid hackaround for existing uses of non-printk uses dev_info
966 *
967 * Note that the definition of dev_info below is actually _dev_info
968 * and a macro is used to avoid redefining dev_info
969 */
970
971#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
972
973#if defined(CONFIG_DYNAMIC_DEBUG)
974#define dev_dbg(dev, format, ...) \
975do { \
976 dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
977} while (0)
978#elif defined(DEBUG)
979#define dev_dbg(dev, format, arg...) \
980 dev_printk(KERN_DEBUG, dev, format, ##arg)
981#else
982#define dev_dbg(dev, format, arg...) \
983({ \
984 if (0) \
985 dev_printk(KERN_DEBUG, dev, format, ##arg); \
986 0; \
987})
988#endif
989
949#define dev_level_ratelimited(dev_level, dev, fmt, ...) \ 990#define dev_level_ratelimited(dev_level, dev, fmt, ...) \
950do { \ 991do { \
951 static DEFINE_RATELIMIT_STATE(_rs, \ 992 static DEFINE_RATELIMIT_STATE(_rs, \
@@ -969,33 +1010,21 @@ do { \
969 dev_level_ratelimited(dev_notice, dev, fmt, ##__VA_ARGS__) 1010 dev_level_ratelimited(dev_notice, dev, fmt, ##__VA_ARGS__)
970#define dev_info_ratelimited(dev, fmt, ...) \ 1011#define dev_info_ratelimited(dev, fmt, ...) \
971 dev_level_ratelimited(dev_info, dev, fmt, ##__VA_ARGS__) 1012 dev_level_ratelimited(dev_info, dev, fmt, ##__VA_ARGS__)
1013#if defined(CONFIG_DYNAMIC_DEBUG) || defined(DEBUG)
972#define dev_dbg_ratelimited(dev, fmt, ...) \ 1014#define dev_dbg_ratelimited(dev, fmt, ...) \
973 dev_level_ratelimited(dev_dbg, dev, fmt, ##__VA_ARGS__) 1015do { \
974 1016 static DEFINE_RATELIMIT_STATE(_rs, \
975/* 1017 DEFAULT_RATELIMIT_INTERVAL, \
976 * Stupid hackaround for existing uses of non-printk uses dev_info 1018 DEFAULT_RATELIMIT_BURST); \
977 * 1019 DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
978 * Note that the definition of dev_info below is actually _dev_info 1020 if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT) && \
979 * and a macro is used to avoid redefining dev_info 1021 __ratelimit(&_rs)) \
980 */ 1022 __dynamic_pr_debug(&descriptor, pr_fmt(fmt), \
981 1023 ##__VA_ARGS__); \
982#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
983
984#if defined(CONFIG_DYNAMIC_DEBUG)
985#define dev_dbg(dev, format, ...) \
986do { \
987 dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \
988} while (0) 1024} while (0)
989#elif defined(DEBUG)
990#define dev_dbg(dev, format, arg...) \
991 dev_printk(KERN_DEBUG, dev, format, ##arg)
992#else 1025#else
993#define dev_dbg(dev, format, arg...) \ 1026#define dev_dbg_ratelimited(dev, fmt, ...) \
994({ \ 1027 no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
995 if (0) \
996 dev_printk(KERN_DEBUG, dev, format, ##arg); \
997 0; \
998})
999#endif 1028#endif
1000 1029
1001#ifdef VERBOSE_DEBUG 1030#ifdef VERBOSE_DEBUG