aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-05-05 13:16:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-05 13:16:42 -0400
commit50f7ad2500b27ce5c42be3a6936f143b158f7bc3 (patch)
treee4833dd274f60d75df0f22bb1ae4ae84d630543c
parent82af7aca56c67061420d618cc5a30f0fd4106b80 (diff)
parent2c36eecfb6471c457994647771d1405502ad5fde (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.c4
-rw-r--r--sound/pci/Kconfig5
-rw-r--r--sound/pci/ac97/ac97_patch.c9
-rw-r--r--sound/pci/hda/patch_realtek.c5
-rw-r--r--sound/pci/hda/patch_sigmatel.c2
-rw-r--r--sound/soc/s3c24xx/s3c24xx-i2s.c2
-rw-r--r--sound/soc/s3c24xx/s3c24xx-pcm.c2
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
197static int pcsp_suspend(struct platform_device *dev, pm_message_t state) 198static 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
205static void pcsp_shutdown(struct platform_device *dev) 209static 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
515config SND_FM801_TEA575X_BOOL 515config 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
525config SND_FM801_TEA575X 524config 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
532config SND_HDA_INTEL 529config 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[] = {
3446int patch_vt1617a(struct snd_ac97 * ac97) 3446int 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
11908static void alc861_auto_init_multi_out(struct hda_codec *codec) 11911static 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 }