At Mon, 13 Aug 2012 09:51:33 +0200, Takashi Iwai wrote:
At Mon, 13 Aug 2012 07:37:12 +0000, Wang, Xingchao wrote:
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Monday, August 13, 2012 3:32 PM To: Wang, Xingchao Cc: alsa-devel@alsa-project.org Subject: Re: [PATCH 3/3] ALSA: hda - Disable DigEn bit before stream-id change
At Mon, 13 Aug 2012 14:11:11 +0800, Wang Xingchao wrote:
Follow the protection way in nvhdmi_8ch_7x_pcm_prepare().
Could you clarify why this is needed?
I don't mean an objection, but just need to know if there is any other devices that need this fix. If there really is, better to put a bit more details in changelog or comment.
No, it's not really a fix for the issue. I just found the change when to investigate HDMI HBR issue and it does NOT help fix the issue. However I thought it's a fix to some other bug(seen from comments), so I think it's also needed as a common solution. Please correct me if I am wrong.
I guess this was copied from setup_dig_out_stream() in hda_codec.c. This was a workaround for SPDIF output on some old non-HDMI codecs. But most of recent codecs shouldn't need it. You see that it's protected by codec->spdif_status_reset check.
BTW, you might have forgotten to set codec->spdif_status_reset = 1 during your test? Otherwise the code there isn't activated.
Though, this doesn't explain why it worked for nvidia and not for Intel. The IEC958 status temporary toggle code isn't active even for Nvidia, too.
Takashi