aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2008-03-19 03:21:32 -0400
committerTakashi Iwai <tiwai@suse.de>2008-04-24 06:00:28 -0400
commit43dd89c7e7cde6b42edac88ca852ec61af610863 (patch)
treed34df9ea82a320d4940c295b4bf66b1edab5406f /sound/pci/oxygen
parentdb12b8e301455cf18644aa3b765ae10869eb947c (diff)
[ALSA] oxygen: disable clock of unused I2S inputs
Disable the master clock outputs of any unused I2S inputs. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/oxygen')
-rw-r--r--sound/pci/oxygen/oxygen_lib.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c
index 87df2b81c573..858e6d4c9194 100644
--- a/sound/pci/oxygen/oxygen_lib.c
+++ b/sound/pci/oxygen/oxygen_lib.c
@@ -272,18 +272,25 @@ static void oxygen_init(struct oxygen *chip)
272 OXYGEN_RATE_48000 | chip->model->dac_i2s_format | 272 OXYGEN_RATE_48000 | chip->model->dac_i2s_format |
273 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 | 273 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
274 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64); 274 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
275 oxygen_write16(chip, OXYGEN_I2S_A_FORMAT, 275 if (chip->model->pcm_dev_cfg & CAPTURE_0_FROM_I2S_1)
276 OXYGEN_RATE_48000 | chip->model->adc_i2s_format | 276 oxygen_write16(chip, OXYGEN_I2S_A_FORMAT,
277 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 | 277 OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
278 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64); 278 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
279 oxygen_write16(chip, OXYGEN_I2S_B_FORMAT, 279 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
280 OXYGEN_RATE_48000 | chip->model->adc_i2s_format | 280 else
281 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 | 281 oxygen_write16(chip, OXYGEN_I2S_A_FORMAT,
282 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64); 282 OXYGEN_I2S_MASTER | OXYGEN_I2S_MUTE_MCLK);
283 if (chip->model->pcm_dev_cfg & (CAPTURE_0_FROM_I2S_2 |
284 CAPTURE_2_FROM_I2S_2))
285 oxygen_write16(chip, OXYGEN_I2S_B_FORMAT,
286 OXYGEN_RATE_48000 | chip->model->adc_i2s_format |
287 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
288 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
289 else
290 oxygen_write16(chip, OXYGEN_I2S_B_FORMAT,
291 OXYGEN_I2S_MASTER | OXYGEN_I2S_MUTE_MCLK);
283 oxygen_write16(chip, OXYGEN_I2S_C_FORMAT, 292 oxygen_write16(chip, OXYGEN_I2S_C_FORMAT,
284 OXYGEN_RATE_48000 | chip->model->adc_i2s_format | 293 OXYGEN_I2S_MASTER | OXYGEN_I2S_MUTE_MCLK);
285 OXYGEN_I2S_MCLK_256 | OXYGEN_I2S_BITS_16 |
286 OXYGEN_I2S_MASTER | OXYGEN_I2S_BCLK_64);
287 oxygen_write32_masked(chip, OXYGEN_SPDIF_CONTROL, 294 oxygen_write32_masked(chip, OXYGEN_SPDIF_CONTROL,
288 OXYGEN_SPDIF_SENSE_MASK | 295 OXYGEN_SPDIF_SENSE_MASK |
289 OXYGEN_SPDIF_LOCK_MASK | 296 OXYGEN_SPDIF_LOCK_MASK |