alsa: hide HDMI/ELD printks unless in debug kernels
PATCH 1/1 alsa: hide HDMI/ELD printks unless in debug kernels
These trivial messages will show up repeatedly on hot plug as well as video mode changes, which could be annoying.
--- sound/pci/hda/hda_eld.c | 6 +++--- sound/pci/hda/patch_hdmi.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)
sound/pci/hda/hda_eld.c +3 -3
@@ -410,7 +410,7 @@ static void hdmi_show_short_audio_desc(selse buf2[0 ] ='\0' ; - printk(KERN_INFO "HDMI: supports coding type %s:" + snd_printdd("HDMI: supports coding type %s:" " channels = %d, rates =%s%s\n", cea_audio_coding_type_names[a->format], a->channels,
@@ -434,14 +434,14 @@ void snd_hdmi_show_eld(struct hdmi_eld * {int i; -printk (KERN_INFO "HDMI: detected monitor %s at connection type %s\n" , +snd_printdd ("HDMI: detected monitor %s at connection type %s\n" , e->monitor_name, eld_connection_type_names[e->conn_type]);if (e->spk_alloc) {char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE ];snd_print_channel_allocation (e->spk_alloc, buf,sizeof (buf)); -printk (KERN_INFO "HDMI: available speakers:%s\n" , buf); +snd_printdd ("HDMI: available speakers:%s\n" , buf); }for (i =0 ; i < e->sad_count; i++)
sound/pci/hda/patch_hdmi.c +2 -2
@@ -757,7 +757,7 @@ static void hdmi_intrinsic_event(structint pin_idx;struct hdmi_eld *eld; -printk (KERN_INFO +snd_printdd ("HDMI hot plug event: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n" , codec->addr, pin_nid, pd, eldv);
@@ -989,7 +989,7 @@ static void hdmi_present_sense(struct hdelse eld->eld_valid =0 ; -printk (KERN_INFO +snd_printdd ("HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n" , codec->addr, pin_nid, eld->monitor_present, eld->eld_valid);
Quoted 4 lines · Fengguang Wu
These trivial messages will show up repeatedly on hot plug as well as video mode changes, which could be annoying.
Signed-off-by Wu Fengguang <[email protected]>
Those messages are very useful for end-users to diagnose problems with HDMI audio. Is there a way to make the messages dynamic, so users can get them if they want, without recompiling their kernel?
At Mon, 09 Apr 2012 09:12:44 -0600,
Quoted 10 lines · Stephen Warren
Quoted 4 lines · Fengguang Wu
These trivial messages will show up repeatedly on hot plug as well as video mode changes, which could be annoying.
Signed-off-by Wu Fengguang <[email protected]>Those messages are very useful for end-users to diagnose problems with HDMI audio. Is there a way to make the messages dynamic, so users can get them if they want, without recompiling their kernel?
We can define a new macro like below, add call like _snd_printd(2, ....) instead of snd_printd().
(Yes, the number 2 can be replaced better in an enum, too.)
In future, we should move to the standard dynamic_printk, but a patch like this would be a good compromise for merging to 3.4 kernel, IMO.
Takashi
---
include/sound/core.h +3 -0
@@ -354,6 +354,8 @@ void __snd_printk(unsigned int level, const char *file, int line,*/ #define snd_printd(fmt, args...) \ __snd_printk(1, __FILE__, __LINE__, fmt, ##args) +#define _snd_printd(level, fmt, args...) \ + __snd_printk(level, __FILE__, __LINE__, fmt, ##args)/** * snd_BUG - give a BUG warning message and stack trace
@@ -383,6 +385,7 @@ void __snd_printk(unsigned int level, const char *file, int line,#else /* !CONFIG_SND_DEBUG */ #define snd_printd(fmt, args...) do { } while (0) +#define _snd_printd(level, fmt, args...) do { } while (0)#define snd_BUG () do { } while (0)static inline int __snd_bug_on (int cond) {
Quoted 13 lines · Takashi Iwai
At Mon, 09 Apr 2012 09:12:44 -0600,
Quoted 10 lines · Stephen Warren
Quoted 4 lines · Fengguang Wu
These trivial messages will show up repeatedly on hot plug as well as video mode changes, which could be annoying.
Signed-off-by Wu Fengguang <[email protected]>Those messages are very useful for end-users to diagnose problems with HDMI audio. Is there a way to make the messages dynamic, so users can get them if they want, without recompiling their kernel?
Quoted 6 lines
We can define a new macro like below, add call like
_snd_printd(2, ....)instead ofsnd_printd().
(Yes, the number 2 can be replaced better in an enum, too.)In future, we should move to the standard
dynamic_printk, but a patch like this would be a good compromise for merging to 3.4 kernel, IMO.
OK. How about this?
Subject: alsa: hide HDMI/ELD printks unless snd.debug=2
Date: Fri Nov 11 19:09:36 CST 2011
Also remove two warnings when CONFIG_SND_DEBUG is not set:
sound/pci/hda/patch_hdmi.c: In function ‘hdmi_intrinsic_event’:sound/pci/hda/patch_hdmi.c:761:6: warning: unused variable ‘eldv’ [-Wunused-variable] sound/pci/hda/patch_hdmi.c:760:6: warning: unused variable ‘pd’ [-Wunused-variable]
--- include/sound/core.h | 10 ++++++++++ sound/pci/hda/hda_eld.c | 6 +++--- sound/pci/hda/patch_hdmi.c | 9 ++++----- 3 files changed, 17 insertions(+), 8 deletions(-)
sound/pci/hda/hda_eld.c +3 -3
@@ -418,7 +418,7 @@ static void hdmi_show_short_audio_desc(selse buf2[0 ] ='\0' ; - printk(KERN_INFO "HDMI: supports coding type %s:" + _snd_printd(SND_PR_VERBOSE, "HDMI: supports coding type %s:" " channels = %d, rates =%s%s\n", cea_audio_coding_type_names[a->format], a->channels,
@@ -442,14 +442,14 @@ void snd_hdmi_show_eld(struct hdmi_eld * {int i; -printk (KERN_INFO "HDMI: detected monitor %s at connection type %s\n" , +_snd_printd (SND_PR_VERBOSE ,"HDMI: detected monitor %s at connection type %s\n" , e->monitor_name, eld_connection_type_names[e->conn_type]);if (e->spk_alloc) {char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE ];snd_print_channel_allocation (e->spk_alloc, buf,sizeof (buf)); -printk (KERN_INFO "HDMI: available speakers:%s\n" , buf); +_snd_printd (SND_PR_VERBOSE ,"HDMI: available speakers:%s\n" , buf); }for (i =0 ; i < e->sad_count; i++)
sound/pci/hda/patch_hdmi.c +4 -5
@@ -757,8 +757,6 @@ static void hdmi_intrinsic_event(structstruct hdmi_spec *spec = codec->spec;int tag = res >>AC_UNSOL_RES_TAG_SHIFT ;int pin_nid; -int pd = !!(res &AC_UNSOL_RES_PD ); -int eldv = !!(res &AC_UNSOL_RES_ELDV );int pin_idx;struct hda_jack_tbl *jack;
@@ -768,9 +766,10 @@ static void hdmi_intrinsic_event(struct pin_nid = jack->nid; jack->jack_dirty =1 ; -printk (KERN_INFO +_snd_printd (SND_PR_VERBOSE ,"HDMI hot plug event: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n" , - codec->addr, pin_nid, pd, eldv); + codec->addr, pin_nid, + !!(res &AC_UNSOL_RES_PD ), !!(res &AC_UNSOL_RES_ELDV )); pin_idx =pin_nid_to_pin_index (spec, pin_nid);if (pin_idx <0 )
@@ -992,7 +991,7 @@ static void hdmi_present_sense(struct hdif (eld->monitor_present) eld_valid = !!(present &AC_PINSENSE_ELDV ); -printk (KERN_INFO +_snd_printd (SND_PR_VERBOSE ,"HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n" , codec->addr, pin_nid, eld->monitor_present, eld_valid);
include/sound/core.h +10 -0
@@ -325,6 +325,13 @@ void release_and_free_resource(struct re/* --- */ +/* sound printk debug levels */ +enum { +SND_PR_ALWAYS , +SND_PR_DEBUG , +SND_PR_VERBOSE , +}; +#if defined(CONFIG_SND_DEBUG ) || defined(CONFIG_SND_VERBOSE_PRINTK ) __printf(4, 5) void __snd_printk(unsigned int level, const char *file, int line,
@@ -354,6 +361,8 @@ void __snd_printk(unsigned int level, co*/ #define snd_printd(fmt, args...) \ __snd_printk(1, __FILE__, __LINE__, fmt, ##args) +#define _snd_printd(level, fmt, args...) \ + __snd_printk(level, __FILE__, __LINE__, fmt, ##args)/** * snd_BUG - give a BUG warning message and stack trace
@@ -383,6 +392,7 @@ void __snd_printk(unsigned int level, co#else /* !CONFIG_SND_DEBUG */ #define snd_printd(fmt, args...) do { } while (0) +#define _snd_printd(level, fmt, args...) do { } while (0)#define snd_BUG () do { } while (0)static inline int __snd_bug_on (int cond) {
At Tue, 10 Apr 2012 17:00:35 +0800,
Quoted 19 lines · Fengguang Wu
Quoted 17 lines · Takashi Iwai
At Mon, 09 Apr 2012 09:12:44 -0600,
Quoted 10 lines · Stephen Warren
Quoted 4 lines · Fengguang Wu
These trivial messages will show up repeatedly on hot plug as well as video mode changes, which could be annoying.
Signed-off-by Wu Fengguang <[email protected]>Those messages are very useful for end-users to diagnose problems with HDMI audio. Is there a way to make the messages dynamic, so users can get them if they want, without recompiling their kernel?
We can define a new macro like below, add call like
_snd_printd(2, ....)instead ofsnd_printd().
(Yes, the number 2 can be replaced better in an enum, too.)
Quoted 7 lines
Quoted 2 lines
In future, we should move to the standard
dynamic_printk, but a patch like this would be a good compromise for merging to 3.4 kernel, IMO.OK. How about this?
Subject: alsa: hide HDMI/ELD printks unless snd.debug=2
Date: Fri Nov 11 19:09:36 CST 2011
Looks good to me. Applied it now.
Thanks!
Takashi
Quoted 102 lines
Also remove two warnings when
CONFIG_SND_DEBUGis not set:
sound/pci/hda/patch_hdmi.c: In function ‘hdmi_intrinsic_event’:sound/pci/hda/patch_hdmi.c:761:6: warning: unused variable ‘eldv’ [-Wunused-variable]sound/pci/hda/patch_hdmi.c:760:6: warning: unused variable ‘pd’ [-Wunused-variable]Signed-off-by Wu Fengguang <[email protected]>--- include/sound/core.h | 10 ++++++++++ sound/pci/hda/hda_eld.c | 6 +++--- sound/pci/hda/patch_hdmi.c | 9 ++++----- 3 files changed, 17 insertions(+), 8 deletions(-)sound/pci/hda/hda_eld.c +3
-3@@ -418,7 +418,7 @@ static void hdmi_show_short_audio_desc(selse buf2[0 ] ='\0' ; - printk(KERN_INFO "HDMI: supports coding type %s:" + _snd_printd(SND_PR_VERBOSE, "HDMI: supports coding type %s:" " channels = %d, rates =%s%s\n", cea_audio_coding_type_names[a->format], a->channels,@@ -442,14 +442,14 @@ void snd_hdmi_show_eld(struct hdmi_eld * {int i; -printk (KERN_INFO "HDMI: detected monitor %s at connection type %s\n" , +_snd_printd (SND_PR_VERBOSE ,"HDMI: detected monitor %s at connection type %s\n" , e->monitor_name, eld_connection_type_names[e->conn_type]);if (e->spk_alloc) {char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE ];snd_print_channel_allocation (e->spk_alloc, buf,sizeof (buf)); -printk (KERN_INFO "HDMI: available speakers:%s\n" , buf); +_snd_printd (SND_PR_VERBOSE ,"HDMI: available speakers:%s\n" , buf); }for (i =0 ; i < e->sad_count; i++)sound/pci/hda/patch_hdmi.c +4
-5@@ -757,8 +757,6 @@ static void hdmi_intrinsic_event(structstruct hdmi_spec *spec = codec->spec;int tag = res >>AC_UNSOL_RES_TAG_SHIFT ;int pin_nid; -int pd = !!(res &AC_UNSOL_RES_PD ); -int eldv = !!(res &AC_UNSOL_RES_ELDV );int pin_idx;struct hda_jack_tbl *jack;@@ -768,9 +766,10 @@ static void hdmi_intrinsic_event(struct pin_nid = jack->nid; jack->jack_dirty =1 ; -printk (KERN_INFO +_snd_printd (SND_PR_VERBOSE ,"HDMI hot plug event: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n" , - codec->addr, pin_nid, pd, eldv); + codec->addr, pin_nid, + !!(res &AC_UNSOL_RES_PD ), !!(res &AC_UNSOL_RES_ELDV )); pin_idx =pin_nid_to_pin_index (spec, pin_nid);if (pin_idx <0 )@@ -992,7 +991,7 @@ static void hdmi_present_sense(struct hdif (eld->monitor_present) eld_valid = !!(present &AC_PINSENSE_ELDV ); -printk (KERN_INFO +_snd_printd (SND_PR_VERBOSE ,"HDMI status: Codec=%d Pin=%d Presence_Detect=%d ELD_Valid=%d\n" , codec->addr, pin_nid, eld->monitor_present, eld_valid);include/sound/core.h +9
-0@@ -325,6 +325,13 @@ void release_and_free_resource(struct re/* --- */ +/* sound printk debug levels */ +enum { +SND_PR_ALWAYS , +SND_PR_DEBUG , +SND_PR_VERBOSE , +}; +#if defined(CONFIG_SND_DEBUG ) || defined(CONFIG_SND_VERBOSE_PRINTK ) __printf(4, 5) void __snd_printk(unsigned int level, const char *file, int line,@@ -354,6 +361,8 @@ void __snd_printk(unsigned int level, co*/ #define snd_printd(fmt, args...) \ __snd_printk(1, __FILE__, __LINE__, fmt, ##args) +#define _snd_printd(level, fmt, args...) \ + __snd_printk(level, __FILE__, __LINE__, fmt, ##args)/** * snd_BUG - give a BUG warning message and stack trace
include/sound/core.h void __snd_printk(unsigned int level, co · line 398
Quoted 7 lines
include/sound/core.h +1
-0@@ -383,6 +392,7 @@ void __snd_printk(unsigned int level, co#else /* !CONFIG_SND_DEBUG */ #define snd_printd(fmt, args...) do { } while (0) +#define _snd_printd(level, fmt, args...) do { } while (0)#define snd_BUG () do { } while (0)static inline int __snd_bug_on (int cond) {
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel