aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen_pcm.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2008-01-25 02:39:26 -0500
committerJaroslav Kysela <perex@perex.cz>2008-01-31 11:30:15 -0500
commitb78e3dbb04ab4cbe3b94ef5426bcd5b167b6fc75 (patch)
treee234f43f207365b6dc2578a725de38ad16ad668d /sound/pci/oxygen/oxygen_pcm.c
parent976cd62700ae378df330ec82112da3d17e33a0fe (diff)
[ALSA] oxygen: more initialization
Initialize more registers of the controller and the second AC97 codec. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci/oxygen/oxygen_pcm.c')
-rw-r--r--sound/pci/oxygen/oxygen_pcm.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/sound/pci/oxygen/oxygen_pcm.c b/sound/pci/oxygen/oxygen_pcm.c
index df1d0cae1dad..5b89c727601e 100644
--- a/sound/pci/oxygen/oxygen_pcm.c
+++ b/sound/pci/oxygen/oxygen_pcm.c
@@ -253,8 +253,10 @@ static unsigned int oxygen_rate(struct snd_pcm_hw_params *hw_params)
253 253
254static unsigned int oxygen_i2s_mclk(struct snd_pcm_hw_params *hw_params) 254static unsigned int oxygen_i2s_mclk(struct snd_pcm_hw_params *hw_params)
255{ 255{
256 return params_rate(hw_params) <= 96000 256 if (params_rate(hw_params) <= 96000)
257 ? OXYGEN_I2S_MCLK_256 : OXYGEN_I2S_MCLK_128; 257 return OXYGEN_I2S_MCLK_256;
258 else
259 return OXYGEN_I2S_MCLK_128;
258} 260}
259 261
260static unsigned int oxygen_i2s_bits(struct snd_pcm_hw_params *hw_params) 262static unsigned int oxygen_i2s_bits(struct snd_pcm_hw_params *hw_params)
@@ -339,9 +341,6 @@ static int oxygen_rec_a_hw_params(struct snd_pcm_substream *substream,
339 OXYGEN_I2S_FORMAT_MASK | 341 OXYGEN_I2S_FORMAT_MASK |
340 OXYGEN_I2S_MCLK_MASK | 342 OXYGEN_I2S_MCLK_MASK |
341 OXYGEN_I2S_BITS_MASK); 343 OXYGEN_I2S_BITS_MASK);
342 oxygen_write8_masked(chip, OXYGEN_REC_ROUTING,
343 OXYGEN_REC_A_ROUTE_I2S_ADC_1,
344 OXYGEN_REC_A_ROUTE_MASK);
345 spin_unlock_irq(&chip->reg_lock); 344 spin_unlock_irq(&chip->reg_lock);
346 345
347 mutex_lock(&chip->mutex); 346 mutex_lock(&chip->mutex);
@@ -373,9 +372,6 @@ static int oxygen_rec_b_hw_params(struct snd_pcm_substream *substream,
373 OXYGEN_I2S_FORMAT_MASK | 372 OXYGEN_I2S_FORMAT_MASK |
374 OXYGEN_I2S_MCLK_MASK | 373 OXYGEN_I2S_MCLK_MASK |
375 OXYGEN_I2S_BITS_MASK); 374 OXYGEN_I2S_BITS_MASK);
376 oxygen_write8_masked(chip, OXYGEN_REC_ROUTING,
377 OXYGEN_REC_B_ROUTE_I2S_ADC_2,
378 OXYGEN_REC_B_ROUTE_MASK);
379 spin_unlock_irq(&chip->reg_lock); 375 spin_unlock_irq(&chip->reg_lock);
380 376
381 mutex_lock(&chip->mutex); 377 mutex_lock(&chip->mutex);
@@ -398,9 +394,6 @@ static int oxygen_rec_c_hw_params(struct snd_pcm_substream *substream,
398 oxygen_write8_masked(chip, OXYGEN_REC_FORMAT, 394 oxygen_write8_masked(chip, OXYGEN_REC_FORMAT,
399 oxygen_format(hw_params) << OXYGEN_REC_FORMAT_C_SHIFT, 395 oxygen_format(hw_params) << OXYGEN_REC_FORMAT_C_SHIFT,
400 OXYGEN_REC_FORMAT_C_MASK); 396 OXYGEN_REC_FORMAT_C_MASK);
401 oxygen_write8_masked(chip, OXYGEN_REC_ROUTING,
402 OXYGEN_REC_C_ROUTE_SPDIF,
403 OXYGEN_REC_C_ROUTE_MASK);
404 spin_unlock_irq(&chip->reg_lock); 397 spin_unlock_irq(&chip->reg_lock);
405 return 0; 398 return 0;
406} 399}
@@ -453,11 +446,6 @@ static int oxygen_multich_hw_params(struct snd_pcm_substream *substream,
453 OXYGEN_I2S_RATE_MASK | 446 OXYGEN_I2S_RATE_MASK |
454 OXYGEN_I2S_FORMAT_MASK | 447 OXYGEN_I2S_FORMAT_MASK |
455 OXYGEN_I2S_BITS_MASK); 448 OXYGEN_I2S_BITS_MASK);
456 oxygen_write16_masked(chip, OXYGEN_PLAY_ROUTING,
457 OXYGEN_PLAY_MULTICH_I2S_DAC,
458 OXYGEN_PLAY_MUTE01 | OXYGEN_PLAY_MUTE23 |
459 OXYGEN_PLAY_MUTE45 | OXYGEN_PLAY_MUTE67 |
460 OXYGEN_PLAY_MULTICH_MASK);
461 oxygen_update_dac_routing(chip); 449 oxygen_update_dac_routing(chip);
462 oxygen_update_spdif_source(chip); 450 oxygen_update_spdif_source(chip);
463 spin_unlock_irq(&chip->reg_lock); 451 spin_unlock_irq(&chip->reg_lock);