Loading Documentation/sound/alsa/ALSA-Configuration.txt +6 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. slots - Reserve the slot index for the given driver. This option takes multiple strings. See "Module Autoloading Support" section for details. debug - Specifies the debug message level (0 = disable debug prints, 1 = normal debug messages, 2 = verbose debug messages) This option appears only when CONFIG_SND_DEBUG=y. This option can be dynamically changed via sysfs /sys/modules/snd/parameters/debug file. Module snd-pcm-oss ------------------ Loading include/sound/core.h +14 −24 Original line number Diff line number Diff line Loading @@ -329,18 +329,17 @@ unsigned int snd_dma_pointer(unsigned long dma, unsigned int size); struct resource; void release_and_free_resource(struct resource *res); #ifdef CONFIG_SND_VERBOSE_PRINTK void snd_verbose_printk(const char *file, int line, const char *format, ...) __attribute__ ((format (printf, 3, 4))); #endif #if defined(CONFIG_SND_DEBUG) && defined(CONFIG_SND_VERBOSE_PRINTK) void snd_verbose_printd(const char *file, int line, const char *format, ...) __attribute__ ((format (printf, 3, 4))); #endif /* --- */ #ifdef CONFIG_SND_VERBOSE_PRINTK #if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK) void __snd_printk(unsigned int level, const char *file, int line, const char *format, ...) __attribute__ ((format (printf, 4, 5))); #else #define __snd_printk(level, file, line, format, args...) \ printk(format, ##args) #endif /** * snd_printk - printk wrapper * @fmt: format string Loading @@ -349,15 +348,9 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) * when configured with CONFIG_SND_VERBOSE_PRINTK. */ #define snd_printk(fmt, args...) \ snd_verbose_printk(__FILE__, __LINE__, fmt ,##args) #else #define snd_printk(fmt, args...) \ printk(fmt ,##args) #endif __snd_printk(0, __FILE__, __LINE__, fmt, ##args) #ifdef CONFIG_SND_DEBUG #ifdef CONFIG_SND_VERBOSE_PRINTK /** * snd_printd - debug printk * @fmt: format string Loading @@ -366,11 +359,7 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) * Ignored when CONFIG_SND_DEBUG is not set. */ #define snd_printd(fmt, args...) \ snd_verbose_printd(__FILE__, __LINE__, fmt ,##args) #else #define snd_printd(fmt, args...) \ printk(fmt ,##args) #endif __snd_printk(1, __FILE__, __LINE__, fmt, ##args) /** * snd_BUG - give a BUG warning message and stack trace Loading Loading @@ -417,9 +406,10 @@ static inline int __snd_bug_on(int cond) * Works like snd_printk() for debugging purposes. * Ignored when CONFIG_SND_DEBUG_VERBOSE is not set. */ #define snd_printdd(format, args...) snd_printk(format, ##args) #define snd_printdd(format, args...) \ __snd_printk(2, __FILE__, __LINE__, format, ##args) #else #define snd_printdd(format, args...) /* nothing */ #define snd_printdd(format, args...) do { } while (0) #endif Loading sound/core/misc.c +48 −27 Original line number Diff line number Diff line Loading @@ -24,6 +24,20 @@ #include <linux/ioport.h> #include <sound/core.h> #ifdef CONFIG_SND_DEBUG #ifdef CONFIG_SND_DEBUG_VERBOSE #define DEFAULT_DEBUG_LEVEL 2 #else #define DEFAULT_DEBUG_LEVEL 1 #endif static int debug = DEFAULT_DEBUG_LEVEL; module_param(debug, int, 0644); MODULE_PARM_DESC(debug, "Debug level (0 = disable)"); #endif /* CONFIG_SND_DEBUG */ void release_and_free_resource(struct resource *res) { if (res) { Loading @@ -35,46 +49,53 @@ void release_and_free_resource(struct resource *res) EXPORT_SYMBOL(release_and_free_resource); #ifdef CONFIG_SND_VERBOSE_PRINTK void snd_verbose_printk(const char *file, int line, const char *format, ...) /* strip the leading path if the given path is absolute */ static const char *sanity_file_name(const char *path) { va_list args; if (*path == '/') return strrchr(path, '/') + 1; else return path; } if (format[0] == '<' && format[1] >= '0' && format[1] <= '7' && format[2] == '>') { /* print file and line with a certain printk prefix */ static int print_snd_pfx(unsigned int level, const char *path, int line, const char *format) { const char *file = sanity_file_name(path); char tmp[] = "<0>"; const char *pfx = level ? KERN_DEBUG : KERN_DEFAULT; int ret = 0; if (format[0] == '<' && format[2] == '>') { tmp[1] = format[1]; printk("%sALSA %s:%d: ", tmp, file, line); format += 3; } else { printk("ALSA %s:%d: ", file, line); pfx = tmp; ret = 1; } va_start(args, format); vprintk(format, args); va_end(args); printk("%sALSA %s:%d: ", pfx, file, line); return ret; } EXPORT_SYMBOL(snd_verbose_printk); #else #define print_snd_pfx(level, path, line, format) 0 #endif #if defined(CONFIG_SND_DEBUG) && defined(CONFIG_SND_VERBOSE_PRINTK) void snd_verbose_printd(const char *file, int line, const char *format, ...) #if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK) void __snd_printk(unsigned int level, const char *path, int line, const char *format, ...) { va_list args; if (format[0] == '<' && format[1] >= '0' && format[1] <= '7' && format[2] == '>') { char tmp[] = "<0>"; tmp[1] = format[1]; printk("%sALSA %s:%d: ", tmp, file, line); format += 3; } else { printk(KERN_DEBUG "ALSA %s:%d: ", file, line); } #ifdef CONFIG_SND_DEBUG if (debug < level) return; #endif va_start(args, format); if (print_snd_pfx(level, path, line, format)) format += 3; /* skip the printk level-prefix */ vprintk(format, args); va_end(args); } EXPORT_SYMBOL(snd_verbose_printd); EXPORT_SYMBOL_GPL(__snd_printk); #endif #ifdef CONFIG_PCI Loading Loading
Documentation/sound/alsa/ALSA-Configuration.txt +6 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,12 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. slots - Reserve the slot index for the given driver. This option takes multiple strings. See "Module Autoloading Support" section for details. debug - Specifies the debug message level (0 = disable debug prints, 1 = normal debug messages, 2 = verbose debug messages) This option appears only when CONFIG_SND_DEBUG=y. This option can be dynamically changed via sysfs /sys/modules/snd/parameters/debug file. Module snd-pcm-oss ------------------ Loading
include/sound/core.h +14 −24 Original line number Diff line number Diff line Loading @@ -329,18 +329,17 @@ unsigned int snd_dma_pointer(unsigned long dma, unsigned int size); struct resource; void release_and_free_resource(struct resource *res); #ifdef CONFIG_SND_VERBOSE_PRINTK void snd_verbose_printk(const char *file, int line, const char *format, ...) __attribute__ ((format (printf, 3, 4))); #endif #if defined(CONFIG_SND_DEBUG) && defined(CONFIG_SND_VERBOSE_PRINTK) void snd_verbose_printd(const char *file, int line, const char *format, ...) __attribute__ ((format (printf, 3, 4))); #endif /* --- */ #ifdef CONFIG_SND_VERBOSE_PRINTK #if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK) void __snd_printk(unsigned int level, const char *file, int line, const char *format, ...) __attribute__ ((format (printf, 4, 5))); #else #define __snd_printk(level, file, line, format, args...) \ printk(format, ##args) #endif /** * snd_printk - printk wrapper * @fmt: format string Loading @@ -349,15 +348,9 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) * when configured with CONFIG_SND_VERBOSE_PRINTK. */ #define snd_printk(fmt, args...) \ snd_verbose_printk(__FILE__, __LINE__, fmt ,##args) #else #define snd_printk(fmt, args...) \ printk(fmt ,##args) #endif __snd_printk(0, __FILE__, __LINE__, fmt, ##args) #ifdef CONFIG_SND_DEBUG #ifdef CONFIG_SND_VERBOSE_PRINTK /** * snd_printd - debug printk * @fmt: format string Loading @@ -366,11 +359,7 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) * Ignored when CONFIG_SND_DEBUG is not set. */ #define snd_printd(fmt, args...) \ snd_verbose_printd(__FILE__, __LINE__, fmt ,##args) #else #define snd_printd(fmt, args...) \ printk(fmt ,##args) #endif __snd_printk(1, __FILE__, __LINE__, fmt, ##args) /** * snd_BUG - give a BUG warning message and stack trace Loading Loading @@ -417,9 +406,10 @@ static inline int __snd_bug_on(int cond) * Works like snd_printk() for debugging purposes. * Ignored when CONFIG_SND_DEBUG_VERBOSE is not set. */ #define snd_printdd(format, args...) snd_printk(format, ##args) #define snd_printdd(format, args...) \ __snd_printk(2, __FILE__, __LINE__, format, ##args) #else #define snd_printdd(format, args...) /* nothing */ #define snd_printdd(format, args...) do { } while (0) #endif Loading
sound/core/misc.c +48 −27 Original line number Diff line number Diff line Loading @@ -24,6 +24,20 @@ #include <linux/ioport.h> #include <sound/core.h> #ifdef CONFIG_SND_DEBUG #ifdef CONFIG_SND_DEBUG_VERBOSE #define DEFAULT_DEBUG_LEVEL 2 #else #define DEFAULT_DEBUG_LEVEL 1 #endif static int debug = DEFAULT_DEBUG_LEVEL; module_param(debug, int, 0644); MODULE_PARM_DESC(debug, "Debug level (0 = disable)"); #endif /* CONFIG_SND_DEBUG */ void release_and_free_resource(struct resource *res) { if (res) { Loading @@ -35,46 +49,53 @@ void release_and_free_resource(struct resource *res) EXPORT_SYMBOL(release_and_free_resource); #ifdef CONFIG_SND_VERBOSE_PRINTK void snd_verbose_printk(const char *file, int line, const char *format, ...) /* strip the leading path if the given path is absolute */ static const char *sanity_file_name(const char *path) { va_list args; if (*path == '/') return strrchr(path, '/') + 1; else return path; } if (format[0] == '<' && format[1] >= '0' && format[1] <= '7' && format[2] == '>') { /* print file and line with a certain printk prefix */ static int print_snd_pfx(unsigned int level, const char *path, int line, const char *format) { const char *file = sanity_file_name(path); char tmp[] = "<0>"; const char *pfx = level ? KERN_DEBUG : KERN_DEFAULT; int ret = 0; if (format[0] == '<' && format[2] == '>') { tmp[1] = format[1]; printk("%sALSA %s:%d: ", tmp, file, line); format += 3; } else { printk("ALSA %s:%d: ", file, line); pfx = tmp; ret = 1; } va_start(args, format); vprintk(format, args); va_end(args); printk("%sALSA %s:%d: ", pfx, file, line); return ret; } EXPORT_SYMBOL(snd_verbose_printk); #else #define print_snd_pfx(level, path, line, format) 0 #endif #if defined(CONFIG_SND_DEBUG) && defined(CONFIG_SND_VERBOSE_PRINTK) void snd_verbose_printd(const char *file, int line, const char *format, ...) #if defined(CONFIG_SND_DEBUG) || defined(CONFIG_SND_VERBOSE_PRINTK) void __snd_printk(unsigned int level, const char *path, int line, const char *format, ...) { va_list args; if (format[0] == '<' && format[1] >= '0' && format[1] <= '7' && format[2] == '>') { char tmp[] = "<0>"; tmp[1] = format[1]; printk("%sALSA %s:%d: ", tmp, file, line); format += 3; } else { printk(KERN_DEBUG "ALSA %s:%d: ", file, line); } #ifdef CONFIG_SND_DEBUG if (debug < level) return; #endif va_start(args, format); if (print_snd_pfx(level, path, line, format)) format += 3; /* skip the printk level-prefix */ vprintk(format, args); va_end(args); } EXPORT_SYMBOL(snd_verbose_printd); EXPORT_SYMBOL_GPL(__snd_printk); #endif #ifdef CONFIG_PCI Loading