From 90a32ccad61c506fb021feb0e983e9c2aade8876 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Sun, 21 Aug 2016 20:28:13 +0100 Subject: [PATCH] wm8751: document and fix audiohw settings Document 3D depth range. Fix mismatch in recording volume: the displayed volume is completely off the chart Change-Id: I4c363f369e5d72f332391a6f96457b4e450404f9 --- firmware/drivers/audio/wm8751.c | 4 +++- firmware/export/wm8751.h | 13 ++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/firmware/drivers/audio/wm8751.c b/firmware/drivers/audio/wm8751.c index 7b6a2712e5..1b4af3eca8 100644 --- a/firmware/drivers/audio/wm8751.c +++ b/firmware/drivers/audio/wm8751.c @@ -385,7 +385,8 @@ void audiohw_set_frequency(int fsel) #ifdef HAVE_WM8750 #ifdef AUDIOHW_HAVE_DEPTH_3D -/* Set the depth of the 3D effect */ +/* Set the depth of the 3D effect + * value in 0 .. 15, corresponds to 0% .. 100% in 6.66% steps */ void audiohw_set_depth_3d(int val) { if (val > 0) @@ -631,6 +632,7 @@ static int pga_gain2hw(int value) return ((4 * value) / 300) + 23; } +/* volume in hundredth of dB in -1725 .. 6000 */ void audiohw_set_recvol(int vol_l, int vol_r, int type) { int d_vol_l = 0; diff --git a/firmware/export/wm8751.h b/firmware/export/wm8751.h index 214643c64d..9b66981129 100644 --- a/firmware/export/wm8751.h +++ b/firmware/export/wm8751.h @@ -25,18 +25,21 @@ #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP | \ BASS_CUTOFF_CAP | TREBLE_CUTOFF_CAP | \ DEPTH_3D_CAP | LIN_GAIN_CAP | MIC_GAIN_CAP) - +/* Percentage from 0% to 100% in steps of 6.66%: + * Values: 0, 1, 2, ... 14, 15 + * => 0%, 6%, 14%, ..., 93%, 100% + */ AUDIOHW_SETTING(DEPTH_3D, "%", 0, 1, 0, 15, 0, (100 * val + 8) / 15) #ifdef HAVE_RECORDING /* PGA -17.25dB to 30.0dB in 0.75dB increments 64 steps * digital gain 0dB to 30.0dB in 0.5dB increments * we use 0.75dB fake steps through whole range * - * This combined gives -17.25 to 60.0dB + * This combined gives -17.25 to 60.0dB */ -AUDIOHW_SETTING(LEFT_GAIN, "dB", 2, 75,-1725, 6000, 0, val * 5) -AUDIOHW_SETTING(RIGHT_GAIN, "dB", 2, 75,-1725, 6000, 0, val * 5) -AUDIOHW_SETTING(MIC_GAIN, "dB", 2, 75,-1725, 6000, 3000, val * 5) +AUDIOHW_SETTING(LEFT_GAIN, "dB", 2, 75,-1725, 6000, 0) +AUDIOHW_SETTING(RIGHT_GAIN, "dB", 2, 75,-1725, 6000, 0) +AUDIOHW_SETTING(MIC_GAIN, "dB", 2, 75,-1725, 6000, 3000) void audiohw_set_recsrc(int source, bool recording); #endif /* HAVE_RECORDING */