diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2008-01-25 02:39:26 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2008-01-31 11:30:15 -0500 |
commit | b78e3dbb04ab4cbe3b94ef5426bcd5b167b6fc75 (patch) | |
tree | e234f43f207365b6dc2578a725de38ad16ad668d /sound/pci/oxygen/oxygen_pcm.c | |
parent | 976cd62700ae378df330ec82112da3d17e33a0fe (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.c | 20 |
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 | ||
254 | static unsigned int oxygen_i2s_mclk(struct snd_pcm_hw_params *hw_params) | 254 | static 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 | ||
260 | static unsigned int oxygen_i2s_bits(struct snd_pcm_hw_params *hw_params) | 262 | static 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); |