aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/oxygen/xonar_pcm179x.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/pci/oxygen/xonar_pcm179x.c b/sound/pci/oxygen/xonar_pcm179x.c
index 49898d39f875..5ec164a70cf2 100644
--- a/sound/pci/oxygen/xonar_pcm179x.c
+++ b/sound/pci/oxygen/xonar_pcm179x.c
@@ -303,6 +303,7 @@ static void pcm1796_registers_init(struct oxygen *chip)
303 unsigned int i; 303 unsigned int i;
304 s8 gain_offset; 304 s8 gain_offset;
305 305
306 msleep(1);
306 gain_offset = data->hp_active ? data->hp_gain_offset : 0; 307 gain_offset = data->hp_active ? data->hp_gain_offset : 0;
307 for (i = 0; i < data->dacs; ++i) { 308 for (i = 0; i < data->dacs; ++i) {
308 /* set ATLD before ATL/ATR */ 309 /* set ATLD before ATL/ATR */
@@ -451,6 +452,7 @@ static void cs2000_registers_init(struct oxygen *chip)
451 data->cs2000_regs[CS2000_FUN_CFG_1]); 452 data->cs2000_regs[CS2000_FUN_CFG_1]);
452 cs2000_write(chip, CS2000_FUN_CFG_2, 0); 453 cs2000_write(chip, CS2000_FUN_CFG_2, 0);
453 cs2000_write(chip, CS2000_GLOBAL_CFG, CS2000_EN_DEV_CFG_2); 454 cs2000_write(chip, CS2000_GLOBAL_CFG, CS2000_EN_DEV_CFG_2);
455 msleep(3); /* PLL lock delay */
454} 456}
455 457
456static void xonar_st_init(struct oxygen *chip) 458static void xonar_st_init(struct oxygen *chip)
@@ -592,6 +594,7 @@ static void set_pcm1796_params(struct oxygen *chip,
592{ 594{
593 struct xonar_pcm179x *data = chip->model_data; 595 struct xonar_pcm179x *data = chip->model_data;
594 596
597 msleep(1);
595 data->current_rate = params_rate(params); 598 data->current_rate = params_rate(params);
596 update_pcm1796_oversampling(chip); 599 update_pcm1796_oversampling(chip);
597} 600}
@@ -669,6 +672,7 @@ static void update_cs2000_rate(struct oxygen *chip, unsigned int rate)
669 else 672 else
670 reg = CS2000_REF_CLK_DIV_2; 673 reg = CS2000_REF_CLK_DIV_2;
671 cs2000_write_cached(chip, CS2000_FUN_CFG_1, reg); 674 cs2000_write_cached(chip, CS2000_FUN_CFG_1, reg);
675 msleep(3); /* PLL lock delay */
672} 676}
673 677
674static void set_st_params(struct oxygen *chip, 678static void set_st_params(struct oxygen *chip,
@@ -796,6 +800,7 @@ static int os_128_put(struct snd_kcontrol *ctl,
796 oxygen_write16_masked(chip, OXYGEN_I2S_MULTICH_FORMAT, 800 oxygen_write16_masked(chip, OXYGEN_I2S_MULTICH_FORMAT,
797 mclk_from_rate(chip, data->current_rate), 801 mclk_from_rate(chip, data->current_rate),
798 OXYGEN_I2S_MCLK_MASK); 802 OXYGEN_I2S_MCLK_MASK);
803 msleep(1);
799 update_pcm1796_oversampling(chip); 804 update_pcm1796_oversampling(chip);
800 } 805 }
801 mutex_unlock(&chip->mutex); 806 mutex_unlock(&chip->mutex);