as3514: fix bug in volume management on AS3543 targets which are not AS3525v2

Some old code made the assumption that CONFIG_CPU == AS3525v2 if and only if
HAVE_AS3543, which is not true on targets like the Samsung YP-R0. This fixes
several issues on such targets like a huge volume gap between -39dB and -40dB
and a volume artificially capped at -72dB instead of -82dB.

Change-Id: Ib1c883ac593c0c3ce5e2bf4eb408924ce5f5ad93
This commit is contained in:
Amaury Pouly 2016-02-08 23:58:32 +00:00
parent 7619031307
commit 6f54a86360
2 changed files with 6 additions and 6 deletions

View file

@ -34,7 +34,7 @@
#include "i2s.h"
#include "ascodec.h"
#if CONFIG_CPU == AS3525v2
#ifdef HAVE_AS3543
/* Headphone volume goes from -81.0 ... +6dB */
#define VOLUME_MIN -820
#define VOLUME_MAX 60
@ -48,7 +48,7 @@
* This drivers supports:
* as3514 , as used in the PP targets
* as3515 , as used in the as3525 targets
* as3543 , as used in the as3525v2 targets
* as3543 , as used in the as3525v2 and other as3543 targets
*/
#if CONFIG_CPU == AS3525
@ -278,7 +278,7 @@ void audiohw_set_volume(int vol_l, int vol_r)
/*AS3543 mixer can go a little louder then the as3514, although
* it might be possible to go louder on the as3514 as well */
#if CONFIG_CPU == AS3525v2
#ifdef HAVE_AS3543
#define MIXER_MAX_VOLUME 0x1b
#else /* lets leave the AS3514 alone until its better tested*/
#define MIXER_MAX_VOLUME 0x16

View file

@ -31,11 +31,11 @@
#define AUDIOHW_CAPS (LIN_GAIN_CAP | MIC_GAIN_CAP)
/*different volume ranges for different AMS chips*/
#if CONFIG_CPU == AS3525v2
#ifdef HAVE_AS3543
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -82, 6, -25)
#else /* AS3525v1 */
#else /* !HAVE_AS3543 */
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -74, 6, -25)
#endif /* CONFIG_CPU == AS3525v2 */
#endif /* HAVE_AS3543 */
#ifdef HAVE_RECORDING
AUDIOHW_SETTING(MIC_GAIN, "dB", 1, 1, 0, 39, 23, (val - 23) * 15)