summaryrefslogtreecommitdiff
path: root/sound/pci/hda/patch_nvhdmi.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-10-13 21:10:18 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-10-13 21:10:18 +0400
commitae445b9134126314844ad9e84010bae5e6684103 (patch)
tree2c862165aab203cea956309bc131cbb7c5b1bd90 /sound/pci/hda/patch_nvhdmi.c
parent54753fdb943ecd28a0666ee4ef105224407a5044 (diff)
parentfb66ebd88471cd2cc1205536dfc781b2f4c1d6b5 (diff)
downloadlinux-ae445b9134126314844ad9e84010bae5e6684103.tar.xz
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Allow all formats as default for Nvidia HDMI ALSA: aaci: ARM1176 aaci-pl041 AC97 register read timeout ALSA: hda - Fix volume-knob setup for Dell laptops with STAC9228 ALSA: hda - Fix mute sound with STAC9227/9228 codecs ALSA: bt87x - Add a whitelist for Pinnacle PCTV (11bd:0012) ALSA: hda - Fix overflow of spec->init_verbs in patch_realtek.c ALSA: ice1724 - Make call to set hw params succeed on ESI Juli@ ALSA: ice1724: Fix surround on Chaintech AV-710 ALSA: hda - Add full rates/formats support for Nvidia HDMI
Diffstat (limited to 'sound/pci/hda/patch_nvhdmi.c')
-rw-r--r--sound/pci/hda/patch_nvhdmi.c31
1 files changed, 25 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_nvhdmi.c b/sound/pci/hda/patch_nvhdmi.c
index c8435c9a97f9..9fb60276f5c9 100644
--- a/sound/pci/hda/patch_nvhdmi.c
+++ b/sound/pci/hda/patch_nvhdmi.c
@@ -29,6 +29,9 @@
#include "hda_codec.h"
#include "hda_local.h"
+/* define below to restrict the supported rates and formats */
+/* #define LIMITED_RATE_FMT_SUPPORT */
+
struct nvhdmi_spec {
struct hda_multi_out multiout;
@@ -60,6 +63,22 @@ static struct hda_verb nvhdmi_basic_init[] = {
{} /* terminator */
};
+#ifdef LIMITED_RATE_FMT_SUPPORT
+/* support only the safe format and rate */
+#define SUPPORTED_RATES SNDRV_PCM_RATE_48000
+#define SUPPORTED_MAXBPS 16
+#define SUPPORTED_FORMATS SNDRV_PCM_FMTBIT_S16_LE
+#else
+/* support all rates and formats */
+#define SUPPORTED_RATES \
+ (SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |\
+ SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |\
+ SNDRV_PCM_RATE_192000)
+#define SUPPORTED_MAXBPS 24
+#define SUPPORTED_FORMATS \
+ (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE)
+#endif
+
/*
* Controls
*/
@@ -258,9 +277,9 @@ static struct hda_pcm_stream nvhdmi_pcm_digital_playback_8ch = {
.channels_min = 2,
.channels_max = 8,
.nid = Nv_Master_Convert_nid,
- .rates = SNDRV_PCM_RATE_48000,
- .maxbps = 16,
- .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ .rates = SUPPORTED_RATES,
+ .maxbps = SUPPORTED_MAXBPS,
+ .formats = SUPPORTED_FORMATS,
.ops = {
.open = nvhdmi_dig_playback_pcm_open,
.close = nvhdmi_dig_playback_pcm_close_8ch,
@@ -273,9 +292,9 @@ static struct hda_pcm_stream nvhdmi_pcm_digital_playback_2ch = {
.channels_min = 2,
.channels_max = 2,
.nid = Nv_Master_Convert_nid,
- .rates = SNDRV_PCM_RATE_48000,
- .maxbps = 16,
- .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ .rates = SUPPORTED_RATES,
+ .maxbps = SUPPORTED_MAXBPS,
+ .formats = SUPPORTED_FORMATS,
.ops = {
.open = nvhdmi_dig_playback_pcm_open,
.close = nvhdmi_dig_playback_pcm_close_2ch,