[alsa-devel] Intel G45 8-Channel LPCM over HDMI
Hi,
I'm planning to build a linux-based, small sized PC for hearing aid acousticians. It would be highly unfavorable, if the connection between Receiver and PC was analog, because of the lower quality and the high number of cables. I searched for a appropriate mainboard, and found the DG45FC, which fits my needs perfectly, apart from the missing audio over HDMI support. Is there any plan to support multichannel LPCM output over HDMI on the Intel G45 platform? If not, is there anyone willing to implement HDMI support for the G45 chipset if I donate the needed hardware (permanently)? But if there's no chance to implement it in the near future, has anyone experience with an onboard chipset with multichannel LPCM over HDMI and ALSA support?
Thanks,
Alexander Werner
I'm pretty confident it doesn't work yet, but it's being developed as we speak. Look at threads: * Intel dg45id motherboard - ICH10 HD audio issues --> mATX, but very similar board * [ANNOUNCE] patch for INTEL HDMI codec --> unfortunately, I don't believe it was checked in yet
BTW, those G45 boards are sweet :) But way overpriced IMHO :(
2008/11/2 Alexander Werner alexander.werner@lambda-audiosystems.de:
Hi,
I'm planning to build a linux-based, small sized PC for hearing aid acousticians. It would be highly unfavorable, if the connection between Receiver and PC was analog, because of the lower quality and the high number of cables. I searched for a appropriate mainboard, and found the DG45FC, which fits my needs perfectly, apart from the missing audio over HDMI support. Is there any plan to support multichannel LPCM output over HDMI on the Intel G45 platform? If not, is there anyone willing to implement HDMI support for the G45 chipset if I donate the needed hardware (permanently)? But if there's no chance to implement it in the near future, has anyone experience with an onboard chipset with multichannel LPCM over HDMI and ALSA support?
Thanks,
Alexander Werner
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
I'm pretty confident it doesn't work yet, but it's being developed as we speak. Look at threads:
- Intel dg45id motherboard - ICH10 HD audio issues --> mATX, but very
similar board
- [ANNOUNCE] patch for INTEL HDMI codec --> unfortunately, I don't
believe it was checked in yet
Oops, i missed these threads completely. Looks great, though :) I'll try to test the patch as soon as I can, what may take some time, as I bricked my board today and have to wait for a replacement :(
BTW, those G45 boards are sweet :) But way overpriced IMHO :(
Jepp, they are sweet and overpriced, but the alternative solution needs an external soundcard and/or graphics card. This would consume more space and money.
How about GeForce 8200 and nVIDIA HDMI as an alternative? (Perhaps even new 9300 or something for Intel. Don't know much about that, sorry.) There is even one ITX (made by Jetway), and lots of mATX. Much cheaper than G45, and I believe that it supports 8ch LPCM. Not sure if it supports that on Linux, but there was a lot of work on that topic recently.
2008/11/2 Alexander Werner alexander.werner@lambda-audiosystems.de:
I'm pretty confident it doesn't work yet, but it's being developed as we speak. Look at threads:
- Intel dg45id motherboard - ICH10 HD audio issues --> mATX, but very
similar board
- [ANNOUNCE] patch for INTEL HDMI codec --> unfortunately, I don't
believe it was checked in yet
Oops, i missed these threads completely. Looks great, though :) I'll try to test the patch as soon as I can, what may take some time, as I bricked my board today and have to wait for a replacement :(
BTW, those G45 boards are sweet :) But way overpriced IMHO :(
Jepp, they are sweet and overpriced, but the alternative solution needs an external soundcard and/or graphics card. This would consume more space and money.
Vedran Miletić <rivanvx <at> gmail.com> writes:
How about GeForce 8200 and nVIDIA HDMI as an alternative? (Perhaps even new 9300 or something for Intel. Don't know much about that, sorry.) There is even one ITX (made by Jetway), and lots of mATX. Much cheaper than G45, and I believe that it supports 8ch LPCM. Not sure if it supports that on Linux, but there was a lot of work on that topic recently.
What is the current status on multichannel LPCM over HDMI on the G45? With my DG45FC I can only manage to send the L/R channels to my Onkyo 707.
On Wed, Nov 18, 2009 at 12:41:46PM +0000, adelias wrote:
Vedran Miletić <rivanvx <at> gmail.com> writes:
How about GeForce 8200 and nVIDIA HDMI as an alternative? (Perhaps even new 9300 or something for Intel. Don't know much about that, sorry.) There is even one ITX (made by Jetway), and lots of mATX. Much cheaper than G45, and I believe that it supports 8ch LPCM. Not sure if it supports that on Linux, but there was a lot of work on that topic recently.
What is the current status on multichannel LPCM over HDMI on the G45? With my DG45FC I can only manage to send the L/R channels to my Onkyo 707.
That's interesting - it should work. How about testing 8-channel audio with speaker-test -t wav -c8
? What's your kernel version and dmesg?
Thanks, Fengguang
At Sun, 2 Nov 2008 15:16:49 +0100, Alexander Werner wrote:
Hi,
I'm planning to build a linux-based, small sized PC for hearing aid acousticians. It would be highly unfavorable, if the connection between Receiver and PC was analog, because of the lower quality and the high number of cables. I searched for a appropriate mainboard, and found the DG45FC, which fits my needs perfectly, apart from the missing audio over HDMI support. Is there any plan to support multichannel LPCM output over HDMI on the Intel G45 platform?
Yes. Now waiting for the updated patch from Intel guys, hopefully it'll be available soon later.
Takashi
On Mon, Nov 03, 2008 at 08:05:54AM +0100, Takashi Iwai wrote:
At Sun, 2 Nov 2008 15:16:49 +0100, Alexander Werner wrote:
Hi,
I'm planning to build a linux-based, small sized PC for hearing aid acousticians. It would be highly unfavorable, if the connection between Receiver and PC was analog, because of the lower quality and the high number of cables. I searched for a appropriate mainboard, and found the DG45FC, which fits my needs perfectly, apart from the missing audio over HDMI support. Is there any plan to support multichannel LPCM output over HDMI on the Intel G45 platform?
Yes. Now waiting for the updated patch from Intel guys, hopefully it'll be available soon later.
It's ready now!
We did a lot of code refactor, testing and bug fixes in the last ten days, and now it's ready for release :-)
Note that X.org intel video patches are also necessary for HDMI sound output.
However our 3 HDMI monitors have only 2-channel audio support, so 8-channel LPCM audio may not work for now.
Thank you, Fengguang
It's ready now!
We did a lot of code refactor, testing and bug fixes in the last ten days, and now it's ready for release :-)
Note that X.org intel video patches are also necessary for HDMI sound output.
However our 3 HDMI monitors have only 2-channel audio support, so 8-channel LPCM audio may not work for now.
Thank you, Fengguang
That's great news! I'll test the patch as soon as my replacement board arrives.
Thanks, Alexander
On Tue, Nov 04, 2008 at 10:36:35PM +0800, Alexander Werner wrote:
It's ready now!
We did a lot of code refactor, testing and bug fixes in the last ten days, and now it's ready for release :-)
Note that X.org intel video patches are also necessary for HDMI sound output.
However our 3 HDMI monitors have only 2-channel audio support, so 8-channel LPCM audio may not work for now.
Thank you, Fengguang
That's great news! I'll test the patch as soon as my replacement board arrives.
Thank you. The G45 HDMI audio can be enabled by the submitted ALSA kernel patch together with this X.org intel driver patch:
Cheers, Fengguang ---
[PATCH] enable HDMI audio output
Set the SDVO_AUDIO_ENABLE bit to enable audio output for - integrated HDMI (e.g. G45) - SDVO HDMI (e.g. G35)
Signed-off-by: Wu Fengguang wfg@linux.intel.com Signed-off-by: Ma Ling ling.ma@intel.com --- src/i810_reg.h | 1 + src/i830_hdmi.c | 1 + src/i830_sdvo.c | 10 ++++++---- 3 files changed, 8 insertions(+), 4 deletions(-)
--- xf86-video-intel.orig/src/i810_reg.h +++ xf86-video-intel/src/i810_reg.h @@ -1281,6 +1281,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN /** Requird for HDMI operation */ #define SDVO_NULL_PACKETS_DURING_VSYNC (1 << 9) #define SDVO_BORDER_ENABLE (1 << 7) +#define SDVO_AUDIO_ENABLE (1 << 6) /** New with 965, default is to be set */ #define SDVO_VSYNC_ACTIVE_HIGH (1 << 4) /** New with 965, default is to be set */ --- xf86-video-intel.orig/src/i830_hdmi.c +++ xf86-video-intel/src/i830_hdmi.c @@ -75,6 +75,7 @@ i830_hdmi_mode_set(xf86OutputPtr output, uint32_t sdvox;
sdvox = SDVO_ENCODING_HDMI | + SDVO_AUDIO_ENABLE | SDVO_BORDER_ENABLE | SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH; --- xf86-video-intel.orig/src/i830_sdvo.c +++ xf86-video-intel/src/i830_sdvo.c @@ -1017,7 +1017,7 @@ i830_sdvo_mode_set(xf86OutputPtr output, struct i830_sdvo_priv *dev_priv = intel_output->dev_priv; xf86CrtcPtr crtc = output->crtc; I830CrtcPrivatePtr intel_crtc = crtc->driver_private; - uint32_t sdvox; + uint32_t sdvox = 0; int sdvo_pixel_multiply; struct i830_sdvo_in_out_map in_out; struct i830_sdvo_dtd input_dtd; @@ -1039,8 +1039,10 @@ i830_sdvo_mode_set(xf86OutputPtr output, &in_out, sizeof(in_out)); status = i830_sdvo_read_response(output, NULL, 0);
- if (dev_priv->is_hdmi) + if (dev_priv->is_hdmi){ i830_sdvo_set_avi_infoframe(output, mode); + sdvox |= SDVO_AUDIO_ENABLE; + }
i830_sdvo_get_dtd_from_mode(&input_dtd, mode);
@@ -1088,11 +1090,11 @@ i830_sdvo_mode_set(xf86OutputPtr output,
/* Set the SDVO control regs. */ if (IS_I965G(pI830)) { - sdvox = SDVO_BORDER_ENABLE | + sdvox |= SDVO_BORDER_ENABLE | SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH; } else { - sdvox = INREG(dev_priv->output_device); + sdvox |= INREG(dev_priv->output_device); switch (dev_priv->output_device) { case SDVOB: sdvox &= SDVOB_PRESERVE_MASK;
On 2008.11.05 12:46:25 +0800, Wu, Fengguang wrote:
On Tue, Nov 04, 2008 at 10:36:35PM +0800, Alexander Werner wrote:
It's ready now!
We did a lot of code refactor, testing and bug fixes in the last ten days, and now it's ready for release :-)
Note that X.org intel video patches are also necessary for HDMI sound output.
However our 3 HDMI monitors have only 2-channel audio support, so 8-channel LPCM audio may not work for now.
Thank you, Fengguang
That's great news! I'll test the patch as soon as my replacement board arrives.
Thank you. The G45 HDMI audio can be enabled by the submitted ALSA kernel patch together with this X.org intel driver patch:
Looks mostly fine to me. But we can only enable HDMI audio to one port at one time, so should we handle that case in two HDMI ports case? And note that as DVI is compatible with HDMI, we've seen many boards that using HDMI port for DVI output. So we might also check in that case to not enable audio (recent added xserver xf86MonitorIsHDMI() API might help here).
[PATCH] enable HDMI audio output
Set the SDVO_AUDIO_ENABLE bit to enable audio output for - integrated HDMI (e.g. G45) - SDVO HDMI (e.g. G35)
Signed-off-by: Wu Fengguang wfg@linux.intel.com Signed-off-by: Ma Ling ling.ma@intel.com
src/i810_reg.h | 1 + src/i830_hdmi.c | 1 + src/i830_sdvo.c | 10 ++++++---- 3 files changed, 8 insertions(+), 4 deletions(-)
--- xf86-video-intel.orig/src/i810_reg.h +++ xf86-video-intel/src/i810_reg.h @@ -1281,6 +1281,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN /** Requird for HDMI operation */ #define SDVO_NULL_PACKETS_DURING_VSYNC (1 << 9) #define SDVO_BORDER_ENABLE (1 << 7) +#define SDVO_AUDIO_ENABLE (1 << 6) /** New with 965, default is to be set */ #define SDVO_VSYNC_ACTIVE_HIGH (1 << 4) /** New with 965, default is to be set */ --- xf86-video-intel.orig/src/i830_hdmi.c +++ xf86-video-intel/src/i830_hdmi.c @@ -75,6 +75,7 @@ i830_hdmi_mode_set(xf86OutputPtr output, uint32_t sdvox;
sdvox = SDVO_ENCODING_HDMI |
- SDVO_AUDIO_ENABLE | SDVO_BORDER_ENABLE | SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH;
--- xf86-video-intel.orig/src/i830_sdvo.c +++ xf86-video-intel/src/i830_sdvo.c @@ -1017,7 +1017,7 @@ i830_sdvo_mode_set(xf86OutputPtr output, struct i830_sdvo_priv *dev_priv = intel_output->dev_priv; xf86CrtcPtr crtc = output->crtc; I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
- uint32_t sdvox;
- uint32_t sdvox = 0; int sdvo_pixel_multiply; struct i830_sdvo_in_out_map in_out; struct i830_sdvo_dtd input_dtd;
@@ -1039,8 +1039,10 @@ i830_sdvo_mode_set(xf86OutputPtr output, &in_out, sizeof(in_out)); status = i830_sdvo_read_response(output, NULL, 0);
- if (dev_priv->is_hdmi)
if (dev_priv->is_hdmi){ i830_sdvo_set_avi_infoframe(output, mode);
sdvox |= SDVO_AUDIO_ENABLE;
}
i830_sdvo_get_dtd_from_mode(&input_dtd, mode);
@@ -1088,11 +1090,11 @@ i830_sdvo_mode_set(xf86OutputPtr output,
/* Set the SDVO control regs. */ if (IS_I965G(pI830)) {
- sdvox = SDVO_BORDER_ENABLE |
- sdvox |= SDVO_BORDER_ENABLE | SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH; } else {
- sdvox = INREG(dev_priv->output_device);
- sdvox |= INREG(dev_priv->output_device); switch (dev_priv->output_device) { case SDVOB: sdvox &= SDVOB_PRESERVE_MASK;
participants (7)
-
adelias
-
Alexander Werner
-
Takashi Iwai
-
Vedran Miletić
-
Wang, Zhenyu Z
-
Wu Fengguang
-
Wu, Fengguang