diff options
Diffstat (limited to 'include/linux/device.h')
| -rw-r--r-- | include/linux/device.h | 85 | 
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 | 
| 537 | extern void *devres_alloc(dr_release_t release, size_t size, gfp_t gfp); | 537 | extern void *devres_alloc(dr_release_t release, size_t size, gfp_t gfp); | 
| 538 | #endif | 538 | #endif | 
| 539 | extern 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); | ||
| 539 | extern void devres_free(void *res); | 543 | extern void devres_free(void *res); | 
| 540 | extern void devres_add(struct device *dev, void *res); | 544 | extern void devres_add(struct device *dev, void *res); | 
| 541 | extern void *devres_find(struct device *dev, dr_release_t release, | 545 | extern 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 | ||
| 894 | extern int __dev_printk(const char *level, const struct device *dev, | 898 | extern __printf(3, 0) | 
| 895 | struct va_format *vaf); | 899 | int dev_vprintk_emit(int level, const struct device *dev, | 
| 900 | const char *fmt, va_list args); | ||
| 901 | extern __printf(3, 4) | ||
| 902 | int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...); | ||
| 903 | |||
| 896 | extern __printf(3, 4) | 904 | extern __printf(3, 4) | 
| 897 | int dev_printk(const char *level, const struct device *dev, | 905 | int dev_printk(const char *level, const struct device *dev, | 
| 898 | const char *fmt, ...) | 906 | const char *fmt, ...); | 
| 899 | ; | ||
| 900 | extern __printf(2, 3) | 907 | extern __printf(2, 3) | 
| 901 | int dev_emerg(const struct device *dev, const char *fmt, ...); | 908 | int dev_emerg(const struct device *dev, const char *fmt, ...); | 
| 902 | extern __printf(2, 3) | 909 | extern __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 | ||
| 924 | static inline __printf(3, 0) | ||
| 925 | int dev_vprintk_emit(int level, const struct device *dev, | ||
| 926 | const char *fmt, va_list args) | ||
| 927 | { return 0; } | ||
| 928 | static inline __printf(3, 4) | ||
| 929 | int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...) | ||
| 930 | { return 0; } | ||
| 931 | |||
| 917 | static inline int __dev_printk(const char *level, const struct device *dev, | 932 | static 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, ...) \ | ||
| 975 | do { \ | ||
| 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, ...) \ | 
| 950 | do { \ | 991 | do { \ | 
| 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__) | 1015 | do { \ | 
| 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, ...) \ | ||
| 986 | do { \ | ||
| 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 | 
