Răsfoiți Sursa

ALSA: hda - make HDMI messages more user friendly

- make some messages more user friendly
- add message prefix "HDMI:" to indicate the problem's domain
  (also easier to do `dmesg | grep HDMI` ;-)

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Wu Fengguang 16 ani în urmă
părinte
comite
03284c8f23
2 a modificat fișierele cu 32 adăugiri și 30 ștergeri
  1. 16 14
      sound/pci/hda/hda_eld.c
  2. 16 16
      sound/pci/hda/patch_intelhdmi.c

+ 16 - 14
sound/pci/hda/hda_eld.c

@@ -168,11 +168,11 @@ static unsigned char hdmi_get_eld_byte(struct hda_codec *codec, hda_nid_t nid,
 					AC_VERB_GET_HDMI_ELDD, byte_index);
 					AC_VERB_GET_HDMI_ELDD, byte_index);
 
 
 #ifdef BE_PARANOID
 #ifdef BE_PARANOID
-	printk(KERN_INFO "ELD data byte %d: 0x%x\n", byte_index, val);
+	printk(KERN_INFO "HDMI: ELD data byte %d: 0x%x\n", byte_index, val);
 #endif
 #endif
 
 
 	if ((val & AC_ELDD_ELD_VALID) == 0) {
 	if ((val & AC_ELDD_ELD_VALID) == 0) {
-		snd_printd(KERN_INFO "Invalid ELD data byte %d\n",
+		snd_printd(KERN_INFO "HDMI: invalid ELD data byte %d\n",
 								byte_index);
 								byte_index);
 		val = 0;
 		val = 0;
 	}
 	}
@@ -208,7 +208,7 @@ static void hdmi_update_short_audio_desc(struct cea_sad *a,
 	switch (a->format) {
 	switch (a->format) {
 	case AUDIO_CODING_TYPE_REF_STREAM_HEADER:
 	case AUDIO_CODING_TYPE_REF_STREAM_HEADER:
 		snd_printd(KERN_INFO
 		snd_printd(KERN_INFO
-				"audio coding type 0 not expected in ELD\n");
+				"HDMI: audio coding type 0 not expected\n");
 		break;
 		break;
 
 
 	case AUDIO_CODING_TYPE_LPCM:
 	case AUDIO_CODING_TYPE_LPCM:
@@ -254,7 +254,7 @@ static void hdmi_update_short_audio_desc(struct cea_sad *a,
 		if (a->format == AUDIO_CODING_XTYPE_HE_REF_CT ||
 		if (a->format == AUDIO_CODING_XTYPE_HE_REF_CT ||
 		    a->format >= AUDIO_CODING_XTYPE_FIRST_RESERVED) {
 		    a->format >= AUDIO_CODING_XTYPE_FIRST_RESERVED) {
 			snd_printd(KERN_INFO
 			snd_printd(KERN_INFO
-				"audio coding xtype %d not expected in ELD\n",
+				"HDMI: audio coding xtype %d not expected\n",
 				a->format);
 				a->format);
 			a->format = 0;
 			a->format = 0;
 		} else
 		} else
@@ -276,7 +276,8 @@ static int hdmi_update_eld(struct hdmi_eld *e,
 	e->eld_ver = GRAB_BITS(buf, 0, 3, 5);
 	e->eld_ver = GRAB_BITS(buf, 0, 3, 5);
 	if (e->eld_ver != ELD_VER_CEA_861D &&
 	if (e->eld_ver != ELD_VER_CEA_861D &&
 	    e->eld_ver != ELD_VER_PARTIAL) {
 	    e->eld_ver != ELD_VER_PARTIAL) {
-		snd_printd(KERN_INFO "Unknown ELD version %d\n", e->eld_ver);
+		snd_printd(KERN_INFO "HDMI: Unknown ELD version %d\n",
+								e->eld_ver);
 		goto out_fail;
 		goto out_fail;
 	}
 	}
 
 
@@ -300,17 +301,17 @@ static int hdmi_update_eld(struct hdmi_eld *e,
 	e->product_id	  = get_unaligned_le16(buf + 18);
 	e->product_id	  = get_unaligned_le16(buf + 18);
 
 
 	if (mnl > ELD_MAX_MNL) {
 	if (mnl > ELD_MAX_MNL) {
-		snd_printd(KERN_INFO "MNL is reserved value %d\n", mnl);
+		snd_printd(KERN_INFO "HDMI: MNL is reserved value %d\n", mnl);
 		goto out_fail;
 		goto out_fail;
 	} else if (ELD_FIXED_BYTES + mnl > size) {
 	} else if (ELD_FIXED_BYTES + mnl > size) {
-		snd_printd(KERN_INFO "out of range MNL %d\n", mnl);
+		snd_printd(KERN_INFO "HDMI: out of range MNL %d\n", mnl);
 		goto out_fail;
 		goto out_fail;
 	} else
 	} else
 		strlcpy(e->monitor_name, buf + ELD_FIXED_BYTES, mnl);
 		strlcpy(e->monitor_name, buf + ELD_FIXED_BYTES, mnl);
 
 
 	for (i = 0; i < e->sad_count; i++) {
 	for (i = 0; i < e->sad_count; i++) {
 		if (ELD_FIXED_BYTES + mnl + 3 * (i + 1) > size) {
 		if (ELD_FIXED_BYTES + mnl + 3 * (i + 1) > size) {
-			snd_printd(KERN_INFO "out of range SAD %d\n", i);
+			snd_printd(KERN_INFO "HDMI: out of range SAD %d\n", i);
 			goto out_fail;
 			goto out_fail;
 		}
 		}
 		hdmi_update_short_audio_desc(e->sad + i,
 		hdmi_update_short_audio_desc(e->sad + i,
@@ -339,7 +340,8 @@ static int hdmi_eld_valid(struct hda_codec *codec, hda_nid_t nid)
 	present = (present & AC_PINSENSE_PRESENCE);
 	present = (present & AC_PINSENSE_PRESENCE);
 
 
 #ifdef CONFIG_SND_DEBUG_VERBOSE
 #ifdef CONFIG_SND_DEBUG_VERBOSE
-	printk(KERN_INFO "pinp = %d, eldv = %d\n", !!present, !!eldv);
+	printk(KERN_INFO "HDMI: sink_present = %d, eld_valid = %d\n",
+			!!present, !!eldv);
 #endif
 #endif
 
 
 	return eldv && present;
 	return eldv && present;
@@ -365,11 +367,11 @@ int snd_hdmi_get_eld(struct hdmi_eld *eld,
 	size = snd_hdmi_get_eld_size(codec, nid);
 	size = snd_hdmi_get_eld_size(codec, nid);
 	if (size == 0) {
 	if (size == 0) {
 		/* wfg: workaround for ASUS P5E-VM HDMI board */
 		/* wfg: workaround for ASUS P5E-VM HDMI board */
-		snd_printd(KERN_INFO "ELD buf size is 0, force 128\n");
+		snd_printd(KERN_INFO "HDMI: ELD buf size is 0, force 128\n");
 		size = 128;
 		size = 128;
 	}
 	}
 	if (size < ELD_FIXED_BYTES || size > PAGE_SIZE) {
 	if (size < ELD_FIXED_BYTES || size > PAGE_SIZE) {
-		snd_printd(KERN_INFO "Invalid ELD buf size %d\n", size);
+		snd_printd(KERN_INFO "HDMI: invalid ELD buf size %d\n", size);
 		return -ERANGE;
 		return -ERANGE;
 	}
 	}
 
 
@@ -404,7 +406,7 @@ static void hdmi_show_short_audio_desc(struct cea_sad *a)
 	else
 	else
 		buf2[0] = '\0';
 		buf2[0] = '\0';
 
 
-	printk(KERN_INFO "supports coding type %s:"
+	printk(KERN_INFO "HDMI: supports coding type %s:"
 			" channels = %d, rates =%s%s\n",
 			" channels = %d, rates =%s%s\n",
 			cea_audio_coding_type_names[a->format],
 			cea_audio_coding_type_names[a->format],
 			a->channels,
 			a->channels,
@@ -428,14 +430,14 @@ void snd_hdmi_show_eld(struct hdmi_eld *e)
 {
 {
 	int i;
 	int i;
 
 
-	printk(KERN_INFO "detected monitor %s at connection type %s\n",
+	printk(KERN_INFO "HDMI: detected monitor %s at connection type %s\n",
 			e->monitor_name,
 			e->monitor_name,
 			eld_connection_type_names[e->conn_type]);
 			eld_connection_type_names[e->conn_type]);
 
 
 	if (e->spk_alloc) {
 	if (e->spk_alloc) {
 		char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
 		char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
 		snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf));
 		snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf));
-		printk(KERN_INFO "available speakers:%s\n", buf);
+		printk(KERN_INFO "HDMI: available speakers:%s\n", buf);
 	}
 	}
 
 
 	for (i = 0; i < e->sad_count; i++)
 	for (i = 0; i < e->sad_count; i++)

+ 16 - 16
sound/pci/hda/patch_intelhdmi.c

@@ -286,7 +286,7 @@ static void hdmi_set_channel_count(struct hda_codec *codec, int chs)
 					AC_VERB_SET_CVT_CHAN_COUNT, chs - 1);
 					AC_VERB_SET_CVT_CHAN_COUNT, chs - 1);
 
 
 	if (chs != hdmi_get_channel_count(codec))
 	if (chs != hdmi_get_channel_count(codec))
-		snd_printd(KERN_INFO "Channel count expect=%d, real=%d\n",
+		snd_printd(KERN_INFO "HDMI channel count: expect %d, get %d\n",
 					chs, hdmi_get_channel_count(codec));
 					chs, hdmi_get_channel_count(codec));
 }
 }
 
 
@@ -299,7 +299,7 @@ static void hdmi_debug_channel_mapping(struct hda_codec *codec)
 	for (i = 0; i < 8; i++) {
 	for (i = 0; i < 8; i++) {
 		slot = snd_hda_codec_read(codec, CVT_NID, 0,
 		slot = snd_hda_codec_read(codec, CVT_NID, 0,
 						AC_VERB_GET_HDMI_CHAN_SLOT, i);
 						AC_VERB_GET_HDMI_CHAN_SLOT, i);
-		printk(KERN_DEBUG "ASP channel %d => slot %d\n",
+		printk(KERN_DEBUG "HDMI: ASP channel %d => slot %d\n",
 						slot >> 4, slot & 0x7);
 						slot >> 4, slot & 0x7);
 	}
 	}
 #endif
 #endif
@@ -326,12 +326,12 @@ static void hdmi_debug_dip_size(struct hda_codec *codec)
 	int size;
 	int size;
 
 
 	size = snd_hdmi_get_eld_size(codec, PIN_NID);
 	size = snd_hdmi_get_eld_size(codec, PIN_NID);
-	printk(KERN_DEBUG "ELD buf size is %d\n", size);
+	printk(KERN_DEBUG "HDMI: ELD buf size is %d\n", size);
 
 
 	for (i = 0; i < 8; i++) {
 	for (i = 0; i < 8; i++) {
 		size = snd_hda_codec_read(codec, PIN_NID, 0,
 		size = snd_hda_codec_read(codec, PIN_NID, 0,
 						AC_VERB_GET_HDMI_DIP_SIZE, i);
 						AC_VERB_GET_HDMI_DIP_SIZE, i);
-		printk(KERN_DEBUG "DIP GP[%d] buf size is %d\n", i, size);
+		printk(KERN_DEBUG "HDMI: DIP GP[%d] buf size is %d\n", i, size);
 	}
 	}
 #endif
 #endif
 }
 }
@@ -359,8 +359,8 @@ static void hdmi_clear_dip_buffers(struct hda_codec *codec)
 				break;
 				break;
 		}
 		}
 		snd_printd(KERN_INFO
 		snd_printd(KERN_INFO
-				"DIP GP[%d] buf reported size=%d, written=%d\n",
-				i, size, j);
+			"HDMI: DIP GP[%d] buf reported size=%d, written=%d\n",
+			i, size, j);
 	}
 	}
 #endif
 #endif
 }
 }
@@ -498,7 +498,9 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res)
 	int pind = !!(res & AC_UNSOL_RES_PD);
 	int pind = !!(res & AC_UNSOL_RES_PD);
 	int eldv = !!(res & AC_UNSOL_RES_ELDV);
 	int eldv = !!(res & AC_UNSOL_RES_ELDV);
 
 
-	printk(KERN_INFO "HDMI intrinsic event: PD=%d ELDV=%d\n", pind, eldv);
+	printk(KERN_INFO
+		"HDMI hot plug event: Presence_Detect=%d ELD_Valid=%d\n",
+		pind, eldv);
 
 
 	if (pind && eldv) {
 	if (pind && eldv) {
 		hdmi_parse_eld(codec);
 		hdmi_parse_eld(codec);
@@ -512,13 +514,13 @@ static void hdmi_non_intrinsic_event(struct hda_codec *codec, unsigned int res)
 	int cp_state = !!(res & AC_UNSOL_RES_CP_STATE);
 	int cp_state = !!(res & AC_UNSOL_RES_CP_STATE);
 	int cp_ready = !!(res & AC_UNSOL_RES_CP_READY);
 	int cp_ready = !!(res & AC_UNSOL_RES_CP_READY);
 
 
-	printk(KERN_INFO "HDMI non-intrinsic event: "
-			"SUBTAG=0x%x CP_STATE=%d CP_READY=%d\n",
-			subtag,
-			cp_state,
-			cp_ready);
+	printk(KERN_INFO
+		"HDMI content protection event: SUBTAG=0x%x CP_STATE=%d CP_READY=%d\n",
+		subtag,
+		cp_state,
+		cp_ready);
 
 
-	/* who cares? */
+	/* TODO */
 	if (cp_state)
 	if (cp_state)
 		;
 		;
 	if (cp_ready)
 	if (cp_ready)
@@ -532,9 +534,7 @@ static void intel_hdmi_unsol_event(struct hda_codec *codec, unsigned int res)
 	int subtag = (res & AC_UNSOL_RES_SUBTAG) >> AC_UNSOL_RES_SUBTAG_SHIFT;
 	int subtag = (res & AC_UNSOL_RES_SUBTAG) >> AC_UNSOL_RES_SUBTAG_SHIFT;
 
 
 	if (tag != INTEL_HDMI_EVENT_TAG) {
 	if (tag != INTEL_HDMI_EVENT_TAG) {
-		snd_printd(KERN_INFO
-				"Unexpected HDMI unsolicited event tag 0x%x\n",
-				tag);
+		snd_printd(KERN_INFO "Unexpected HDMI event tag 0x%x\n", tag);
 		return;
 		return;
 	}
 	}