Skip to content

Commit

Permalink
Merge branch 'for-2.6.37' into HEAD
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark Brown committed Nov 5, 2010
2 parents 11e16eb + 6424dca commit a8ea54d
Show file tree
Hide file tree
Showing 9 changed files with 173 additions and 165 deletions.
36 changes: 26 additions & 10 deletions sound/soc/codecs/tlv320dac33.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
(1000000000 / ((rate * 1000) / samples))

#define US_TO_SAMPLES(rate, us) \
(rate / (1000000 / us))
(rate / (1000000 / (us < 1000000 ? us : 1000000)))

#define UTHR_FROM_PERIOD_SIZE(samples, playrate, burstrate) \
((samples * 5000) / ((burstrate * 5000) / (burstrate - playrate)))
Expand Down Expand Up @@ -200,7 +200,7 @@ static int dac33_read(struct snd_soc_codec *codec, unsigned int reg,
u8 *value)
{
struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
int val;
int val, ret = 0;

*value = reg & 0xff;

Expand All @@ -210,6 +210,7 @@ static int dac33_read(struct snd_soc_codec *codec, unsigned int reg,
if (val < 0) {
dev_err(codec->dev, "Read failed (%d)\n", val);
value[0] = dac33_read_reg_cache(codec, reg);
ret = val;
} else {
value[0] = val;
dac33_write_reg_cache(codec, reg, val);
Expand All @@ -218,7 +219,7 @@ static int dac33_read(struct snd_soc_codec *codec, unsigned int reg,
value[0] = dac33_read_reg_cache(codec, reg);
}

return 0;
return ret;
}

static int dac33_write(struct snd_soc_codec *codec, unsigned int reg,
Expand Down Expand Up @@ -329,13 +330,18 @@ static void dac33_init_chip(struct snd_soc_codec *codec)
dac33_read_reg_cache(codec, DAC33_LINER_TO_RLO_VOL));
}

static inline void dac33_read_id(struct snd_soc_codec *codec)
static inline int dac33_read_id(struct snd_soc_codec *codec)
{
int i, ret = 0;
u8 reg;

dac33_read(codec, DAC33_DEVICE_ID_MSB, &reg);
dac33_read(codec, DAC33_DEVICE_ID_LSB, &reg);
dac33_read(codec, DAC33_DEVICE_REV_ID, &reg);
for (i = 0; i < 3; i++) {
ret = dac33_read(codec, DAC33_DEVICE_ID_MSB + i, &reg);
if (ret < 0)
break;
}

return ret;
}

static inline void dac33_soft_power(struct snd_soc_codec *codec, int power)
Expand Down Expand Up @@ -1076,6 +1082,9 @@ static void dac33_calculate_times(struct snd_pcm_substream *substream)
/* Number of samples under i2c latency */
dac33->alarm_threshold = US_TO_SAMPLES(rate,
dac33->mode1_latency);
nsample_limit = DAC33_BUFFER_SIZE_SAMPLES -
dac33->alarm_threshold;

if (dac33->auto_fifo_config) {
if (period_size <= dac33->alarm_threshold)
/*
Expand All @@ -1086,6 +1095,8 @@ static void dac33_calculate_times(struct snd_pcm_substream *substream)
((dac33->alarm_threshold / period_size) +
(dac33->alarm_threshold % period_size ?
1 : 0));
else if (period_size > nsample_limit)
dac33->nsample = nsample_limit;
else
dac33->nsample = period_size;
} else {
Expand All @@ -1097,8 +1108,7 @@ static void dac33_calculate_times(struct snd_pcm_substream *substream)
*/
dac33->nsample_max = substream->runtime->buffer_size -
period_size;
nsample_limit = DAC33_BUFFER_SIZE_SAMPLES -
dac33->alarm_threshold;

if (dac33->nsample_max > nsample_limit)
dac33->nsample_max = nsample_limit;

Expand Down Expand Up @@ -1414,9 +1424,15 @@ static int dac33_soc_probe(struct snd_soc_codec *codec)
dev_err(codec->dev, "Failed to power up codec: %d\n", ret);
goto err_power;
}
dac33_read_id(codec);
ret = dac33_read_id(codec);
dac33_hard_power(codec, 0);

if (ret < 0) {
dev_err(codec->dev, "Failed to read chip ID: %d\n", ret);
ret = -ENODEV;
goto err_power;
}

/* Check if the IRQ number is valid and request it */
if (dac33->irq >= 0) {
ret = request_irq(dac33->irq, dac33_interrupt_handler,
Expand Down
6 changes: 3 additions & 3 deletions sound/soc/codecs/tpa6130a2.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,13 +119,13 @@ static int tpa6130a2_power(int power)
{
struct tpa6130a2_data *data;
u8 val;
int ret;
int ret = 0;

BUG_ON(tpa6130a2_client == NULL);
data = i2c_get_clientdata(tpa6130a2_client);

mutex_lock(&data->mutex);
if (power) {
if (power && !data->power_state) {
/* Power on */
if (data->power_gpio >= 0)
gpio_set_value(data->power_gpio, 1);
Expand Down Expand Up @@ -153,7 +153,7 @@ static int tpa6130a2_power(int power)
val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
val &= ~TPA6130A2_SWS;
tpa6130a2_i2c_write(TPA6130A2_REG_CONTROL, val);
} else {
} else if (!power && data->power_state) {
/* set SWS */
val = tpa6130a2_read(TPA6130A2_REG_CONTROL);
val |= TPA6130A2_SWS;
Expand Down
5 changes: 4 additions & 1 deletion sound/soc/codecs/wm8962.c
Original file line number Diff line number Diff line change
Expand Up @@ -3502,8 +3502,11 @@ static ssize_t wm8962_beep_set(struct device *dev,
{
struct wm8962_priv *wm8962 = dev_get_drvdata(dev);
long int time;
int ret;

strict_strtol(buf, 10, &time);
ret = strict_strtol(buf, 10, &time);
if (ret != 0)
return ret;

input_event(wm8962->beep, EV_SND, SND_TONE, time);

Expand Down
8 changes: 4 additions & 4 deletions sound/soc/imx/eukrea-tlv320.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ static int eukrea_tlv320_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
{
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
struct snd_soc_dai *codec_dai = rtd->codec_dai;
struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
int ret;

ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
Expand Down Expand Up @@ -79,10 +79,10 @@ static struct snd_soc_ops eukrea_tlv320_snd_ops = {
static struct snd_soc_dai_link eukrea_tlv320_dai = {
.name = "tlv320aic23",
.stream_name = "TLV320AIC23",
.codec_dai = "tlv320aic23-hifi",
.codec_dai_name = "tlv320aic23-hifi",
.platform_name = "imx-pcm-audio.0",
.codec_name = "tlv320aic23-codec.0-001a",
.cpu_dai = "imx-ssi.0",
.cpu_dai_name = "imx-ssi.0",
.ops = &eukrea_tlv320_snd_ops,
};

Expand Down
Loading

0 comments on commit a8ea54d

Please sign in to comment.