summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rwxr-xr-xaudio/audio_hw.c17
-rw-r--r--audio/audio_hw.h10
2 files changed, 19 insertions, 8 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index a8bedf2..b17ff1f 100755
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -88,8 +88,9 @@ struct m0_audio_device {
struct m0_dev_cfg *dev_cfgs;
int num_dev_cfgs;
struct mixer *mixer;
+ struct mixer_ctls mixer_ctls;
audio_mode_t mode;
- int active_devices;
+ int active_devices;
int devices;
struct pcm *pcm_modem_dl;
struct pcm *pcm_modem_ul;
@@ -378,13 +379,15 @@ err_open_dl:
static void end_call(struct m0_audio_device *adev)
{
ALOGE("Closing modem PCMs");
-
pcm_stop(adev->pcm_modem_dl);
pcm_stop(adev->pcm_modem_ul);
pcm_close(adev->pcm_modem_dl);
pcm_close(adev->pcm_modem_ul);
adev->pcm_modem_dl = NULL;
adev->pcm_modem_ul = NULL;
+
+ /* re-enable +30db boost on mic */
+ mixer_ctl_set_value(adev->mixer_ctls.mixinl_in1l_volume, 0, 1);
}
static void set_eq_filter(struct m0_audio_device *adev)
@@ -564,7 +567,7 @@ static void select_output_device(struct m0_audio_device *adev)
select_devices(adev);
- set_eq_filter(adev);
+ set_eq_filter(adev);
if (adev->mode == AUDIO_MODE_IN_CALL) {
if (!bt_on) {
@@ -2979,9 +2982,11 @@ static int adev_open(const hw_module_t* module, const char* name,
return -EINVAL;
}
- ret = adev_config_parse(adev);
- if (ret != 0)
- goto err_mixer;
+ adev->mixer_ctls.mixinl_in1l_volume = mixer_get_ctl_by_name(adev->mixer, "MIXINL IN1L Volume");
+
+ ret = adev_config_parse(adev);
+ if (ret != 0)
+ goto err_mixer;
/* Set the default route before the PCM stream is opened */
pthread_mutex_lock(&adev->lock);
diff --git a/audio/audio_hw.h b/audio/audio_hw.h
index c395d9f..213d850 100644
--- a/audio/audio_hw.h
+++ b/audio/audio_hw.h
@@ -104,6 +104,11 @@ enum tty_modes {
TTY_MODE_FULL
};
+struct mixer_ctls
+{
+ struct mixer_ctl *mixinl_in1l_volume;
+};
+
struct route_setting
{
char *ctl_name;
@@ -139,7 +144,9 @@ struct route_setting voicecall_default_disable[] = {
struct route_setting default_input[] = {
{ .ctl_name = "Main Mic Switch", .intval = 1, },
+ { .ctl_name = "IN1L Volume", .intval = 30, },
{ .ctl_name = "MIXINL IN1L Switch", .intval = 1, },
+ { .ctl_name = "MIXINL IN1L Volume", .intval = 0, },
{ .ctl_name = "AIF1ADC1 HPF Mode", .intval = 0, },
{ .ctl_name = "AIF1ADC1 HPF Switch", .intval = 1, },
{ .ctl_name = NULL, },
@@ -147,8 +154,8 @@ struct route_setting default_input[] = {
struct route_setting default_input_disable[] = {
{ .ctl_name = "Main Mic Switch", .intval = 0, },
+ { .ctl_name = "IN1L Volume", .intval = 22, },
{ .ctl_name = "MIXINL IN1L Switch", .intval = 0, },
- { .ctl_name = "AIF1ADC1 HPF Mode", .intval = 0, },
{ .ctl_name = "AIF1ADC1 HPF Switch", .intval = 0, },
{ .ctl_name = NULL, },
};
@@ -187,7 +194,6 @@ struct route_setting bt_output[] = {
{ .ctl_name = "DAC2 Volume", .intval = 96, },
{ .ctl_name = "AIF2ADC Volume", .intval = 96, },
{ .ctl_name = "Speaker Mixer Volume", .intval = 1, },
- { .ctl_name = "Speaker Volume", .intval = 0, },
{ .ctl_name = "MIXINL IN2L Volume", .intval = 1, },
{ .ctl_name = "IN1L Volume", .intval = 25, },
{ .ctl_name = "IN1R Volume", .intval = 25, },