[alsa-devel] ALSA patch Nvidia 8 channel hdmi audio

Takashi Iwai tiwai at suse.de
Thu Jun 4 01:38:32 CEST 2009


At Thu, 4 Jun 2009 01:28:24 +0200,
Alan Alan wrote:
> 
> Hello Takashi !
> 
> I tried to apply the patch that removes restrictions to 16bits 48khz format.
> Well now we have the following:
> 16bit 48khz                                     works
> 32bit 48khz                                     works
> 32bit 44khz, 96khz, 192khz              don't work
> 24bit 44khz, 48khz, 96khz, 192khz   don't work
> 16bit 44khz, 96khz, 192khz              don't work
> 
> I only get
> Sample format not available for playback:
> Setting of hwparams failed:

As you can find in alsa-info output, it seems that the codec supports
only 48kHz and 88.2kHz, strangely.  I don't know whether it's a
(hardware) bug or not.


Takashi

> 
> I enclosed to pastebin my alsainfo script output.
> 
> http://pastebin.com/m77dcfb3f
> 
> Thanks for the help !
> 
> 2009/6/3 Takashi Iwai <tiwai at suse.de>
> 
>     At Wed, 3 Jun 2009 11:34:00 +0200,
>     Alan Alan wrote:
>     >
>     > Hello Takashi !
>     >
>     > What should this patch do ?
>    
>     The patch removes the restriction patch_nvhdmi.c sets.  Instead,
>     the driver tries to detect the supported format, rate, etc from the
>     codec widget information.
>    
>     > Is it a cure for the 96, 192khz or 24bit sample playback problem ?
>    
>     Possibly.
>    
>     > If so, will it resample or natievly pass the stream to the amplifier ?
>    
>     It just enables the native support, possibly.
>    
>     And, don't forget to give back the alsa-info.sh output (run with
>     --no-upload option).
> 
>     Takashi
>    
>     >
>     > Thank you
>     >
>     > Alan
>     >
>     > 2009/6/3 Takashi Iwai <tiwai at suse.de>
>     >
>     >     At Wed, 3 Jun 2009 10:00:24 +0200,
>     >     Alan Alan wrote:
>     >     >
>     >     > Hello Wei !
>     >     >
>     >     > Thanks for replying.
>     >     > I tested it with speaker-test and xbmc babylon. Both had problems
>     with
>     >     > channel mapping.
>     >     > I used this command:
>     >     >
>     >     > speaker-test -Dhdmi -c6
>     >     > or
>     >     > speaker-test -Dhdmi -c8
>     >     >
>     >     > alternatively you could try
>     >     >
>     >     > speaker-test -Dhw:0,3 -c6
>     >     >
>     >     >
>     >     > I had to rund Xorg first and have the command from an xterm,
>     becasue
>     >     from a
>     >     > normal terminal it would not work.
>     >     > I think that is normal as a limitation of hdmi.
>     >     >
>     >     > What about the support for 24bits 192khz sound ?
>     >     >
>     >     > speaker-test -Dhdmi -c6  -r192000 does not work.
>     >
>     >     How about the patch below?
>     >
>     >     Also, could you give alsa-info.sh output?
>     >
>     >     Takashi
>     >
>     >     ---
>     >     diff --git a/sound/pci/hda/patch_nvhdmi.c b/sound/pci/hda/
>     patch_nvhdmi.c
>     >     index f5792e2..48443de 100644
>     >     --- a/sound/pci/hda/patch_nvhdmi.c
>     >     +++ b/sound/pci/hda/patch_nvhdmi.c
>     >     @@ -258,9 +258,11 @@ static struct hda_pcm_stream
>     >     nvhdmi_pcm_digital_playback_8ch = {
>     >            .channels_min = 2,
>     >            .channels_max = 8,
>     >            .nid = Nv_Master_Convert_nid,
>     >     +#if 0
>     >            .rates = SNDRV_PCM_RATE_48000,
>     >            .maxbps = 16,
>     >            .formats = SNDRV_PCM_FMTBIT_S16_LE,
>     >     +#endif
>     >            .ops = {
>     >                    .open = nvhdmi_dig_playback_pcm_open,
>     >                    .close = nvhdmi_dig_playback_pcm_close_8ch,
>     >     @@ -273,9 +275,11 @@ static struct hda_pcm_stream
>     >     nvhdmi_pcm_digital_playback_2ch = {
>     >            .channels_min = 2,
>     >            .channels_max = 2,
>     >            .nid = Nv_Master_Convert_nid,
>     >     +#if 0
>     >            .rates = SNDRV_PCM_RATE_48000,
>     >            .maxbps = 16,
>     >            .formats = SNDRV_PCM_FMTBIT_S16_LE,
>     >     +#endif
>     >            .ops = {
>     >                    .open = nvhdmi_dig_playback_pcm_open,
>     >                    .close = nvhdmi_dig_playback_pcm_close_2ch,
>     >
>     >
> 
> 


More information about the Alsa-devel mailing list