diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-05 13:16:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-05 13:16:42 -0400 |
commit | 50f7ad2500b27ce5c42be3a6936f143b158f7bc3 (patch) | |
tree | e4833dd274f60d75df0f22bb1ae4ae84d630543c | |
parent | 82af7aca56c67061420d618cc5a30f0fd4106b80 (diff) | |
parent | 2c36eecfb6471c457994647771d1405502ad5fde (diff) |
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] soc - fix S3C2410 i2s programming error
[ALSA] soc - fix s3c2410 PCM breakage
[ALSA] ac97 - Add a workaround for broken quirk for VT1617A codec
[ALSA] Revert migration to alc_set_pin_output() in alc861_auto_set_output_and_unmute()
[ALSA] fm801 - Fix kconfig dependency mess of fm801-tea575x
[ALSA] hda - Support IDT 92HD206 codec
[ALSA] pcsp: Fix build with CONFIG_PM=n
-rw-r--r-- | sound/drivers/pcsp/pcsp.c | 4 | ||||
-rw-r--r-- | sound/pci/Kconfig | 5 | ||||
-rw-r--r-- | sound/pci/ac97/ac97_patch.c | 9 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 5 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 2 | ||||
-rw-r--r-- | sound/soc/s3c24xx/s3c24xx-i2s.c | 2 | ||||
-rw-r--r-- | sound/soc/s3c24xx/s3c24xx-pcm.c | 2 |
7 files changed, 22 insertions, 7 deletions
diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c index 59203511e77d..54a1f9036c66 100644 --- a/sound/drivers/pcsp/pcsp.c +++ b/sound/drivers/pcsp/pcsp.c | |||
@@ -194,6 +194,7 @@ static void pcsp_stop_beep(struct snd_pcsp *chip) | |||
194 | spin_unlock_irq(&chip->substream_lock); | 194 | spin_unlock_irq(&chip->substream_lock); |
195 | } | 195 | } |
196 | 196 | ||
197 | #ifdef CONFIG_PM | ||
197 | static int pcsp_suspend(struct platform_device *dev, pm_message_t state) | 198 | static int pcsp_suspend(struct platform_device *dev, pm_message_t state) |
198 | { | 199 | { |
199 | struct snd_pcsp *chip = platform_get_drvdata(dev); | 200 | struct snd_pcsp *chip = platform_get_drvdata(dev); |
@@ -201,6 +202,9 @@ static int pcsp_suspend(struct platform_device *dev, pm_message_t state) | |||
201 | snd_pcm_suspend_all(chip->pcm); | 202 | snd_pcm_suspend_all(chip->pcm); |
202 | return 0; | 203 | return 0; |
203 | } | 204 | } |
205 | #else | ||
206 | #define pcsp_suspend NULL | ||
207 | #endif /* CONFIG_PM */ | ||
204 | 208 | ||
205 | static void pcsp_shutdown(struct platform_device *dev) | 209 | static void pcsp_shutdown(struct platform_device *dev) |
206 | { | 210 | { |
diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig index 581debf37dcb..7e4742109572 100644 --- a/sound/pci/Kconfig +++ b/sound/pci/Kconfig | |||
@@ -515,19 +515,16 @@ config SND_FM801 | |||
515 | config SND_FM801_TEA575X_BOOL | 515 | config SND_FM801_TEA575X_BOOL |
516 | bool "ForteMedia FM801 + TEA5757 tuner" | 516 | bool "ForteMedia FM801 + TEA5757 tuner" |
517 | depends on SND_FM801 | 517 | depends on SND_FM801 |
518 | depends on VIDEO_V4L1=y || VIDEO_V4L1=SND_FM801 | ||
518 | help | 519 | help |
519 | Say Y here to include support for soundcards based on the ForteMedia | 520 | Say Y here to include support for soundcards based on the ForteMedia |
520 | FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media | 521 | FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media |
521 | Forte SF256-PCS-02) into the snd-fm801 driver. | 522 | Forte SF256-PCS-02) into the snd-fm801 driver. |
522 | 523 | ||
523 | This will enable support for the old V4L1 API. | ||
524 | |||
525 | config SND_FM801_TEA575X | 524 | config SND_FM801_TEA575X |
526 | tristate | 525 | tristate |
527 | depends on SND_FM801_TEA575X_BOOL | 526 | depends on SND_FM801_TEA575X_BOOL |
528 | default SND_FM801 | 527 | default SND_FM801 |
529 | select VIDEO_V4L1 | ||
530 | select VIDEO_DEV | ||
531 | 528 | ||
532 | config SND_HDA_INTEL | 529 | config SND_HDA_INTEL |
533 | tristate "Intel HD Audio" | 530 | tristate "Intel HD Audio" |
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index 39198e505b12..2da89810ca10 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c | |||
@@ -3446,6 +3446,7 @@ static const struct snd_kcontrol_new snd_ac97_controls_vt1617a[] = { | |||
3446 | int patch_vt1617a(struct snd_ac97 * ac97) | 3446 | int patch_vt1617a(struct snd_ac97 * ac97) |
3447 | { | 3447 | { |
3448 | int err = 0; | 3448 | int err = 0; |
3449 | int val; | ||
3449 | 3450 | ||
3450 | /* we choose to not fail out at this point, but we tell the | 3451 | /* we choose to not fail out at this point, but we tell the |
3451 | caller when we return */ | 3452 | caller when we return */ |
@@ -3456,7 +3457,13 @@ int patch_vt1617a(struct snd_ac97 * ac97) | |||
3456 | /* bring analog power consumption to normal by turning off the | 3457 | /* bring analog power consumption to normal by turning off the |
3457 | * headphone amplifier, like WinXP driver for EPIA SP | 3458 | * headphone amplifier, like WinXP driver for EPIA SP |
3458 | */ | 3459 | */ |
3459 | snd_ac97_write_cache(ac97, 0x5c, 0x20); | 3460 | /* We need to check the bit before writing it. |
3461 | * On some (many?) hardwares, setting bit actually clears it! | ||
3462 | */ | ||
3463 | val = snd_ac97_read(ac97, 0x5c); | ||
3464 | if (!(val & 0x20)) | ||
3465 | snd_ac97_write_cache(ac97, 0x5c, 0x20); | ||
3466 | |||
3460 | ac97->ext_id |= AC97_EI_SPDIF; /* force the detection of spdif */ | 3467 | ac97->ext_id |= AC97_EI_SPDIF; /* force the detection of spdif */ |
3461 | ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000; | 3468 | ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000; |
3462 | ac97->build_ops = &patch_vt1616_ops; | 3469 | ac97->build_ops = &patch_vt1616_ops; |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d9783a4263e0..6d4df45e81e0 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -11902,7 +11902,10 @@ static void alc861_auto_set_output_and_unmute(struct hda_codec *codec, | |||
11902 | hda_nid_t nid, | 11902 | hda_nid_t nid, |
11903 | int pin_type, int dac_idx) | 11903 | int pin_type, int dac_idx) |
11904 | { | 11904 | { |
11905 | alc_set_pin_output(codec, nid, pin_type); | 11905 | snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, |
11906 | pin_type); | ||
11907 | snd_hda_codec_write(codec, dac_idx, 0, AC_VERB_SET_AMP_GAIN_MUTE, | ||
11908 | AMP_OUT_UNMUTE); | ||
11906 | } | 11909 | } |
11907 | 11910 | ||
11908 | static void alc861_auto_init_multi_out(struct hda_codec *codec) | 11911 | static void alc861_auto_init_multi_out(struct hda_codec *codec) |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index b3a15d616873..393f7fd2b1be 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4289,6 +4289,8 @@ struct hda_codec_preset snd_hda_preset_sigmatel[] = { | |||
4289 | { .id = 0x83847635, .name = "STAC9250D", .patch = patch_stac925x }, | 4289 | { .id = 0x83847635, .name = "STAC9250D", .patch = patch_stac925x }, |
4290 | { .id = 0x83847636, .name = "STAC9251", .patch = patch_stac925x }, | 4290 | { .id = 0x83847636, .name = "STAC9251", .patch = patch_stac925x }, |
4291 | { .id = 0x83847637, .name = "STAC9250D", .patch = patch_stac925x }, | 4291 | { .id = 0x83847637, .name = "STAC9250D", .patch = patch_stac925x }, |
4292 | { .id = 0x83847645, .name = "92HD206X", .patch = patch_stac927x }, | ||
4293 | { .id = 0x83847646, .name = "92HD206D", .patch = patch_stac927x }, | ||
4292 | /* The following does not take into account .id=0x83847661 when subsys = | 4294 | /* The following does not take into account .id=0x83847661 when subsys = |
4293 | * 104D0C00 which is STAC9225s. Because of this, some SZ Notebooks are | 4295 | * 104D0C00 which is STAC9225s. Because of this, some SZ Notebooks are |
4294 | * currently not fully supported. | 4296 | * currently not fully supported. |
diff --git a/sound/soc/s3c24xx/s3c24xx-i2s.c b/sound/soc/s3c24xx/s3c24xx-i2s.c index 4ebcd6a8bf28..1ed6afd45459 100644 --- a/sound/soc/s3c24xx/s3c24xx-i2s.c +++ b/sound/soc/s3c24xx/s3c24xx-i2s.c | |||
@@ -224,6 +224,7 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_cpu_dai *cpu_dai, | |||
224 | iismod |= S3C2410_IISMOD_SLAVE; | 224 | iismod |= S3C2410_IISMOD_SLAVE; |
225 | break; | 225 | break; |
226 | case SND_SOC_DAIFMT_CBS_CFS: | 226 | case SND_SOC_DAIFMT_CBS_CFS: |
227 | iismod &= ~S3C2410_IISMOD_SLAVE; | ||
227 | break; | 228 | break; |
228 | default: | 229 | default: |
229 | return -EINVAL; | 230 | return -EINVAL; |
@@ -234,6 +235,7 @@ static int s3c24xx_i2s_set_fmt(struct snd_soc_cpu_dai *cpu_dai, | |||
234 | iismod |= S3C2410_IISMOD_MSB; | 235 | iismod |= S3C2410_IISMOD_MSB; |
235 | break; | 236 | break; |
236 | case SND_SOC_DAIFMT_I2S: | 237 | case SND_SOC_DAIFMT_I2S: |
238 | iismod &= ~S3C2410_IISMOD_MSB; | ||
237 | break; | 239 | break; |
238 | default: | 240 | default: |
239 | return -EINVAL; | 241 | return -EINVAL; |
diff --git a/sound/soc/s3c24xx/s3c24xx-pcm.c b/sound/soc/s3c24xx/s3c24xx-pcm.c index 6c70a81c730c..7806ae614617 100644 --- a/sound/soc/s3c24xx/s3c24xx-pcm.c +++ b/sound/soc/s3c24xx/s3c24xx-pcm.c | |||
@@ -171,7 +171,7 @@ static int s3c24xx_pcm_hw_params(struct snd_pcm_substream *substream, | |||
171 | ret = s3c2410_dma_request(prtd->params->channel, | 171 | ret = s3c2410_dma_request(prtd->params->channel, |
172 | prtd->params->client, NULL); | 172 | prtd->params->client, NULL); |
173 | 173 | ||
174 | if (ret) { | 174 | if (ret < 0) { |
175 | DBG(KERN_ERR "failed to get dma channel\n"); | 175 | DBG(KERN_ERR "failed to get dma channel\n"); |
176 | return ret; | 176 | return ret; |
177 | } | 177 | } |