Hi,
On Thu, Jun 24, 2010 at 5:49 PM, Liam Girdwood lrg@slimlogic.co.uk wrote:
On Thu, 2010-06-24 at 17:38 +0400, Vladimir Zapolskiy wrote:
This change wipes out a hardcoded macro, which enables codec bias level control. Now is_powered_on_standby value shall be used instead.
Signed-off-by: Vladimir Zapolskiy vzapolskiy@gmail.com
include/sound/uda134x.h | 12 ++++++++++++ sound/soc/codecs/uda134x.c | 21 +++++---------------- 2 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/include/sound/uda134x.h b/include/sound/uda134x.h index 509efb0..e475659 100644 --- a/include/sound/uda134x.h +++ b/include/sound/uda134x.h @@ -18,6 +18,18 @@ struct uda134x_platform_data { struct l3_pins l3; void (*power) (int); int model;
- /*
- ALSA SOC usually puts the device in standby mode when it's not used
- for sometime. If you unset is_powered_on_standby the driver will
- turn off the ADC/DAC when this callback is invoked and turn it back
- on when needed. Unfortunately this will result in a very light bump
- (it can be audible only with good earphones). If this bothers you
- set is_powered_on_standby, you will have slightly higher power
- consumption. Please note that sending the L3 command for ADC is
- enough to make the bump, so it doesn't make difference if you
- completely take off power from the codec.
- */
- int is_powered_on_standby;
#define UDA134X_UDA1340 1 #define UDA134X_UDA1341 2 #define UDA134X_UDA1344 3 diff --git a/sound/soc/codecs/uda134x.c b/sound/soc/codecs/uda134x.c index e8066b6..5c7b054 100644 --- a/sound/soc/codecs/uda134x.c +++ b/sound/soc/codecs/uda134x.c @@ -27,19 +27,6 @@ #include "uda134x.h"
-#define POWER_OFF_ON_STANDBY 1 -/*
- ALSA SOC usually puts the device in standby mode when it's not used
- for sometime. If you define POWER_OFF_ON_STANDBY the driver will
- turn off the ADC/DAC when this callback is invoked and turn it back
- on when needed. Unfortunately this will result in a very light bump
- (it can be audible only with good earphones). If this bothers you
- just comment this line, you will have slightly higher power
- consumption . Please note that sending the L3 command for ADC is
- enough to make the bump, so it doesn't make difference if you
- completely take off power from the codec.
- */
#define UDA134X_RATES SNDRV_PCM_RATE_8000_48000 #define UDA134X_FORMATS (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE | \ SNDRV_PCM_FMTBIT_S18_3LE | SNDRV_PCM_FMTBIT_S20_3LE) @@ -559,9 +546,11 @@ static int uda134x_soc_probe(struct platform_device *pdev) codec->num_dai = 1; codec->read = uda134x_read_reg_cache; codec->write = uda134x_write; -#ifdef POWER_OFF_ON_STANDBY
- codec->set_bias_level = uda134x_set_bias_level;
-#endif
- if (!pd->is_powered_on_standby) {
- codec->set_bias_level = uda134x_set_bias_level;
The codec ops pointers have moved in multi-component. Can you put this check in your uda134x_set_bias_level() instead.
Not sure I understand the problem, and I do not see a simple solution for actual bugfix in patch 2/2, if this check is placed in uda134x_set_bias_level(). Please could you provide me with a hint or link to some codec source file?
Thank you, Vladimir