diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2008-03-19 03:21:32 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-04-24 06:00:28 -0400 |
commit | 43dd89c7e7cde6b42edac88ca852ec61af610863 (patch) | |
tree | d34df9ea82a320d4940c295b4bf66b1edab5406f /sound/pci/oxygen | |
parent | db12b8e301455cf18644aa3b765ae10869eb947c (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.c | 29 |
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 | |