From 9dc4b00df1a997e8b9223c040c27392d1d2151e3 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Wed, 21 Sep 2016 00:00:22 +0100 Subject: imx233: fix recording gain For some reason, there was a mismatch between the setting (decibel) and the audiohw code (centicel). This resulted in a gain divided by 10. This may explain why some people experienced low volume with the mic on the fuze+. Change-Id: I138ac18dd93c36f43a7dfce735efc826405c598c --- firmware/drivers/audio/imx233-codec.c | 7 ++++--- firmware/target/arm/imx233/audioout-imx233.c | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/drivers/audio/imx233-codec.c b/firmware/drivers/audio/imx233-codec.c index b2dcaa3d23..357aa33bb5 100644 --- a/firmware/drivers/audio/imx233-codec.c +++ b/firmware/drivers/audio/imx233-codec.c @@ -49,6 +49,7 @@ void audiohw_close(void) /* volume in centibels */ void audiohw_set_volume(int vol_l, int vol_r) { + /* convert to half-dB */ imx233_audioout_set_hp_vol(vol_l / 5, vol_r / 5); } @@ -72,11 +73,11 @@ void audiohw_disable_recording(void) imx233_audioin_close(); } -/* volume in centibels */ +/* volume in decibels */ void audiohw_set_recvol(int left, int right, int type) { - left /= 5; - right /= 5; + left *= 2; /* convert to half-dB */ + right *= 2; if(type == AUDIO_GAIN_LINEIN) { imx233_audioin_set_vol(false, left, AUDIOIN_SELECT_LINE1); diff --git a/firmware/target/arm/imx233/audioout-imx233.c b/firmware/target/arm/imx233/audioout-imx233.c index 6ebeb8a469..6c2c579536 100644 --- a/firmware/target/arm/imx233/audioout-imx233.c +++ b/firmware/target/arm/imx233/audioout-imx233.c @@ -54,7 +54,6 @@ static int hp_unmute_cb(struct timeout *tmo) void imx233_audioout_preinit(void) { - /* Enable AUDIOOUT block */ imx233_reset_block(&HW_AUDIOOUT_CTRL); /* Enable digital filter clock */ -- cgit v1.2.3