diff options
-rw-r--r-- | sound/pci/oxygen/xonar_pcm179x.c | 5 |
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 | ||
456 | static void xonar_st_init(struct oxygen *chip) | 458 | static 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 | ||
674 | static void set_st_params(struct oxygen *chip, | 678 | static 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); |