ASoC: codec: tlv320aic325x: Remove run time error
Ravindra Lokhande [Thu, 25 Jul 2013 09:11:39 +0000 (14:11 +0530)]
remove run time wait bits timedout error

Bug 1305129

Change-Id: I214f32874311d31dd732a5aaa0fa1fe0ff4bd25e
Signed-off-by: Ravindra Lokhande <rlokhande@nvidia.com>
Reviewed-on: http://git-master/r/253319
(cherry picked from commit 2cbb323bff442c5292c84117bac0521b63e68dbf)
Reviewed-on: http://git-master/r/269584
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sumit Bhattacharya <sumitb@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>

include/linux/mfd/tlv320aic3256-registers.h
sound/soc/codecs/tlv320aic325x.c

index 22622c5..492a03e 100644 (file)
 #define AIC3256_DAC_MUTE_MASK                  0x0C
 #define AIC3256_ADC_MUTE_MASK                  0x88
 #define AIC3256_CODEC_RESET_MASK               0x01
+#define AIC3256_DAC_SOFT_STEPPING_MASK         0x02
+#define AIC3256_ADC_SOFT_STEPPING_MASK         0x02
 
 #define AIC3256_TIME_DELAY                     5
 #define AIC3256_DELAY_COUNTER                  100
index 9fc3d9d..d9c6263 100644 (file)
@@ -1143,6 +1143,10 @@ static int aic3256_ops_restore(struct snd_soc_codec *codec, int run_state)
                aic3256_restart_dsps_sync(codec, run_state);
        else
                aic3256_dsp_pwrup(codec, run_state);
+       aic325x_set_bits(codec->control_data, AIC3256_DAC_DATAPATH_SETUP,
+                               AIC3256_DAC_SOFT_STEPPING_MASK, 0x02);
+       aic325x_set_bits(codec->control_data, AIC3256_ADC_DATAPATH_SETUP,
+                               AIC3256_ADC_SOFT_STEPPING_MASK, 0x02);
 
        return 0;
 }