audio-hal: 64 bit hal porting changes
-Use long for mixer control with integer type to match with
kernel snd_ctl_elem_value definition.
-Use packed structure for mixer controls with byte type
Change-Id: I9fbb1d10c5ee212348b58fc4b27a3d74403d8bda
diff --git a/hal/audio_extn/audio_defs.h b/hal/audio_extn/audio_defs.h
index 7abc89b..2a81ba1 100644
--- a/hal/audio_extn/audio_defs.h
+++ b/hal/audio_extn/audio_defs.h
@@ -122,13 +122,13 @@
uint16_t doa_speech;
uint16_t doa_noise[3];
uint8_t polar_activity[360];
-};
+} __attribute__((packed));
struct sound_focus_param {
uint16_t start_angle[MAX_SECTORS];
uint8_t enable[MAX_SECTORS];
uint16_t gain_step;
-};
+} __attribute__((packed));
struct aptx_dec_bt_addr {
uint32_t nap;
@@ -162,7 +162,7 @@
* timer in microseconds.
*/
uint32_t ref_timer_abs_ts_msw;
-};
+} __attribute__((packed));
/*use these for setting infine window.i.e free run mode */
#define AUDIO_MAX_RENDER_START_WINDOW 0x8000000000000000
diff --git a/hal/audio_extn/audio_extn.c b/hal/audio_extn/audio_extn.c
index c1c4460..c598990 100644
--- a/hal/audio_extn/audio_extn.c
+++ b/hal/audio_extn/audio_extn.c
@@ -611,7 +611,7 @@
{
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Playback Device Channel Map";
- int set_values[8] = {0};
+ long set_values[8] = {0};
int ret;
ALOGV("%s channel_count:%d",__func__, channel_count);
@@ -650,7 +650,7 @@
__func__, mixer_ctl_name);
return -EINVAL;
}
- ALOGV("AFE: set mapping(%d %d %d %d %d %d %d %d) for channel:%d",
+ ALOGV("AFE: set mapping(%ld %ld %ld %ld %ld %ld %ld %ld) for channel:%d",
set_values[0], set_values[1], set_values[2], set_values[3], set_values[4],
set_values[5], set_values[6], set_values[7], channel_count);
ret = mixer_ctl_set_array(ctl, set_values, channel_count);
diff --git a/hal/audio_extn/dolby.c b/hal/audio_extn/dolby.c
index fda9a1a..ffd256f 100644
--- a/hal/audio_extn/dolby.c
+++ b/hal/audio_extn/dolby.c
@@ -196,7 +196,7 @@
bool set_cache __unused)
{
int idx, i;
- int ddp_endp_params_data[2*DDP_ENDP_NUM_PARAMS + 1];
+ long ddp_endp_params_data[2*DDP_ENDP_NUM_PARAMS + 1];
int length = 0;
for(idx=0; idx<DDP_ENDP_NUM_DEVICES; idx++) {
if(ddp_endp_params[idx].device & device) {
diff --git a/hal/audio_extn/hfp.c b/hal/audio_extn/hfp.c
index 748562a..db51122 100644
--- a/hal/audio_extn/hfp.c
+++ b/hal/audio_extn/hfp.c
@@ -312,7 +312,7 @@
{
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "HFP TX Mute";
- uint32_t set_values[ ] = {0};
+ long set_values[ ] = {0};
ALOGI("%s: enter, state=%d", __func__, state);
diff --git a/hal/audio_extn/keep_alive.c b/hal/audio_extn/keep_alive.c
index 3e9a91c..0f46744 100644
--- a/hal/audio_extn/keep_alive.c
+++ b/hal/audio_extn/keep_alive.c
@@ -194,7 +194,8 @@
{
struct audio_device * adev = (struct audio_device *)ka.userdata;
char mixer_ctl_name[MAX_LENGTH_MIXER_CONTROL_IN_INT];
- int app_type_cfg[MAX_LENGTH_MIXER_CONTROL_IN_INT], len = 0, rc;
+ long app_type_cfg[MAX_LENGTH_MIXER_CONTROL_IN_INT];
+ int len = 0, rc;
struct mixer_ctl *ctl;
int acdb_dev_id, snd_device;
struct listnode *node;
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 9f99a94..3f0fc9d 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -188,13 +188,18 @@
/* payload structure avt_device drift query */
struct audio_avt_device_drift_stats {
uint32_t minor_version;
+
/* Indicates the device interface direction as either
* source (Tx) or sink (Rx).
*/
uint16_t device_direction;
- /*params exposed to client */
+
+ /* Reference timer for drift accumulation and time stamp information.
+ * currently it only support AFE_REF_TIMER_TYPE_AVTIMER
+ */
+ uint16_t reference_timer;
struct audio_avt_device_drift_param drift_param;
-};
+} __attribute__((packed));
static char bTable[BASE_TABLE_SIZE] = {
'A','B','C','D','E','F','G','H','I','J','K','L',
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 3ba3f77..bbbc1d6 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -4037,7 +4037,7 @@
float right)
{
struct stream_out *out = (struct stream_out *)stream;
- int volume[2];
+ long volume[2];
char mixer_ctl_name[128];
struct audio_device *adev = out->dev;
struct mixer_ctl *ctl;
@@ -4068,7 +4068,7 @@
char mixer_ctl_name[] = "App Type Gain";
struct audio_device *adev = out->dev;
struct mixer_ctl *ctl;
- uint32_t set_values[4];
+ long set_values[4];
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
if (!ctl) {
@@ -4079,8 +4079,8 @@
set_values[0] = 0; //0: Rx Session 1:Tx Session
set_values[1] = out->app_type_cfg.app_type;
- set_values[2] = (int)(left * VOIP_PLAYBACK_VOLUME_MAX);
- set_values[3] = (int)(right * VOIP_PLAYBACK_VOLUME_MAX);
+ set_values[2] = (long)(left * VOIP_PLAYBACK_VOLUME_MAX);
+ set_values[3] = (long)(right * VOIP_PLAYBACK_VOLUME_MAX);
mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
return 0;
@@ -4115,8 +4115,8 @@
__func__, mixer_ctl_name);
return -EINVAL;
}
- volume[0] = (int)(AmpToDb(left));
- volume[1] = (int)(AmpToDb(right));
+ volume[0] = (long)(AmpToDb(left));
+ volume[1] = (long)(AmpToDb(right));
mixer_ctl_set_array(ctl, volume, sizeof(volume)/sizeof(volume[0]));
return 0;
} else {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 45b02e3..9f68c3c 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -3520,9 +3520,9 @@
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voice Rx Gain";
int vol_index = 0, ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID,
- DEFAULT_VOLUME_RAMP_DURATION_MS};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID,
+ DEFAULT_VOLUME_RAMP_DURATION_MS};
// Voice volume levels are mapped to adsp volume levels as follows.
// 100 -> 5, 80 -> 4, 60 -> 3, 40 -> 2, 20 -> 1 0 -> 0
@@ -3536,7 +3536,7 @@
__func__, mixer_ctl_name);
ret = -EINVAL;
} else {
- ALOGV("%s Setting voice volume index: %d",__func__, set_values[0]);
+ ALOGV("%s Setting voice volume index: %ld",__func__, set_values[0]);
mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
}
@@ -3557,9 +3557,9 @@
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voice Tx Mute";
int ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID,
- DEFAULT_MUTE_RAMP_DURATION_MS};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID,
+ DEFAULT_MUTE_RAMP_DURATION_MS};
set_values[0] = state;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
@@ -3589,9 +3589,9 @@
struct mixer_ctl *ctl;
char *mixer_ctl_name = NULL;
int ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID,
- 0};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID,
+ 0};
if(dir == NULL) {
ALOGE("%s: Invalid direction:%s", __func__, dir);
return -EINVAL;
@@ -4639,8 +4639,8 @@
struct audio_device *adev = my_data->adev;
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Slowtalk Enable";
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID};
set_values[0] = state;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
@@ -4670,8 +4670,8 @@
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "HD Voice Enable";
int ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID};
set_values[0] = state;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
@@ -6829,7 +6829,7 @@
char mixer_ctl_name[44] = {0}; // max length of name is 44 as defined
int ret;
unsigned int i;
- int set_values[FCC_8] = {0};
+ long set_values[FCC_8] = {0};
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
ALOGV("%s channel_count:%d",__func__, ch_count);
@@ -6860,7 +6860,7 @@
set_values[i] = ch_map[i];
}
- ALOGD("%s: set mapping(%d %d %d %d %d %d %d %d) for channel:%d", __func__,
+ ALOGD("%s: set mapping(%ld %ld %ld %ld %ld %ld %ld %d) for channel:%d", __func__,
set_values[0], set_values[1], set_values[2], set_values[3], set_values[4],
set_values[5], set_values[6], set_values[7], ch_count);
@@ -7131,7 +7131,7 @@
struct mixer_ctl *ctl;
char *mixer_ctl_name = "Device PP Params";
int ret = 0;
- uint32_t set_values[] = {0,0};
+ long set_values[] = {0,0};
set_values[0] = param;
set_values[1] = value;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 64dde86..a9ae7e3 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -3278,9 +3278,9 @@
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voice Rx Gain";
int vol_index = 0, ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID,
- DEFAULT_VOLUME_RAMP_DURATION_MS};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID,
+ DEFAULT_VOLUME_RAMP_DURATION_MS};
// Voice volume levels are mapped to adsp volume levels as follows.
// 100 -> 5, 80 -> 4, 60 -> 3, 40 -> 2, 20 -> 1 0 -> 0
@@ -3294,7 +3294,7 @@
__func__, mixer_ctl_name);
ret = -EINVAL;
} else {
- ALOGV("%s: Setting voice volume index: %d", __func__, set_values[0]);
+ ALOGV("%s: Setting voice volume index: %ld", __func__, set_values[0]);
mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
}
@@ -3315,9 +3315,9 @@
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voice Tx Mute";
int ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID,
- DEFAULT_MUTE_RAMP_DURATION_MS};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID,
+ DEFAULT_MUTE_RAMP_DURATION_MS};
set_values[0] = state;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
@@ -3347,9 +3347,9 @@
struct mixer_ctl *ctl;
char *mixer_ctl_name = NULL;
int ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID,
- 0};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID,
+ 0};
if(dir == NULL) {
ALOGE("%s: Invalid direction:%s", __func__, dir);
return -EINVAL;
@@ -4390,8 +4390,8 @@
struct audio_device *adev = my_data->adev;
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Slowtalk Enable";
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID};
set_values[0] = state;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
@@ -4421,8 +4421,8 @@
struct mixer_ctl *ctl;
char *mixer_ctl_name = "HD Voice Enable";
int ret = 0;
- uint32_t set_values[ ] = {0,
- ALL_SESSION_VSID};
+ long set_values[ ] = {0,
+ ALL_SESSION_VSID};
set_values[0] = state;
ctl = mixer_get_ctl_by_name(adev->mixer, mixer_ctl_name);
@@ -6624,7 +6624,7 @@
char mixer_ctl_name[44] = {0}; // max length of name is 44 as defined
int ret;
unsigned int i;
- int set_values[FCC_8] = {0};
+ long set_values[FCC_8] = {0};
struct platform_data *my_data = (struct platform_data *)platform;
struct audio_device *adev = my_data->adev;
ALOGV("%s channel_count:%d",__func__, ch_count);
@@ -6655,7 +6655,7 @@
set_values[i] = ch_map[i];
}
- ALOGD("%s: set mapping(%d %d %d %d %d %d %d %d) for channel:%d", __func__,
+ ALOGD("%s: set mapping(%ld %ld %ld %ld %ld %ld %ld %ld) for channel:%d", __func__,
set_values[0], set_values[1], set_values[2], set_values[3], set_values[4],
set_values[5], set_values[6], set_values[7], ch_count);
@@ -6967,7 +6967,7 @@
struct mixer_ctl *ctl;
char *mixer_ctl_name = "Device PP Params";
int ret = 0;
- uint32_t set_values[] = {0,0};
+ long set_values[] = {0,0};
set_values[0] = param;
set_values[1] = value;
diff --git a/hal/voice_extn/compress_voip.c b/hal/voice_extn/compress_voip.c
index 1ec5fbc..2736d68 100644
--- a/hal/voice_extn/compress_voip.c
+++ b/hal/voice_extn/compress_voip.c
@@ -134,8 +134,8 @@
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voip Rx Gain";
int vol_index = 0;
- uint32_t set_values[ ] = {0,
- DEFAULT_VOLUME_RAMP_DURATION_MS};
+ long set_values[ ] = {0,
+ DEFAULT_VOLUME_RAMP_DURATION_MS};
ALOGV("%s: enter", __func__);
@@ -152,7 +152,7 @@
__func__, mixer_ctl_name);
return -EINVAL;
}
- ALOGV("%s: Setting voip volume index: %d", __func__, set_values[0]);
+ ALOGV("%s: Setting voip volume index: %ld", __func__, set_values[0]);
mixer_ctl_set_array(ctl, set_values, ARRAY_SIZE(set_values));
ALOGV("%s: exit", __func__);
@@ -163,8 +163,8 @@
{
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voip Tx Mute";
- uint32_t set_values[ ] = {0,
- DEFAULT_VOLUME_RAMP_DURATION_MS};
+ long set_values[ ] = {0,
+ DEFAULT_VOLUME_RAMP_DURATION_MS};
ALOGV("%s: enter, state=%d", __func__, state);
@@ -187,7 +187,7 @@
{
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voip Mode Config";
- uint32_t set_values[ ] = {0};
+ long set_values[ ] = {0};
int mode;
ALOGD("%s: enter, format=%d", __func__, format);
@@ -212,7 +212,7 @@
{
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voip Rate Config";
- uint32_t set_values[ ] = {0};
+ long set_values[ ] = {0};
ALOGD("%s: enter, rate=%d", __func__, rate);
@@ -233,7 +233,7 @@
{
struct mixer_ctl *ctl;
const char *mixer_ctl_name = "Voip Dtx Mode";
- uint32_t set_values[ ] = {0};
+ long set_values[ ] = {0};
ALOGD("%s: enter, enable=%d", __func__, enable);
diff --git a/post_proc/asphere.c b/post_proc/asphere.c
index 885e85b..3ec2818 100644
--- a/post_proc/asphere.c
+++ b/post_proc/asphere.c
@@ -101,7 +101,8 @@
static int asphere_get_values_from_mixer(void)
{
- int ret = 0, val[2] = {-1, -1};
+ int ret = 0;
+ long val[2] = {-1, -1};
struct mixer_ctl *ctl = NULL;
struct mixer *mixer = mixer_open(MIXER_CARD);
if (mixer)
@@ -124,7 +125,8 @@
static int asphere_set_values_to_mixer(void)
{
- int ret = 0, val[2] = {-1, -1};
+ int ret = 0;
+ long val[2] = {-1, -1};
struct mixer_ctl *ctl = NULL;
struct mixer *mixer = mixer_open(MIXER_CARD);
if (mixer)
diff --git a/post_proc/effect_api.c b/post_proc/effect_api.c
index ab8576f..b01acc5 100644
--- a/post_proc/effect_api.c
+++ b/post_proc/effect_api.c
@@ -177,8 +177,8 @@
struct bass_boost_params *bassboost,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
ALOGV("%s: flags 0x%x", __func__, param_send_flags);
*p_param_values++ = BASS_BOOST_MODULE;
@@ -260,8 +260,9 @@
struct pbe_params *pbe,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int i, *p_param_values = param_values, *cfg = NULL;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
+ int i, *cfg = NULL;
ALOGV("%s: enabled=%d", __func__, pbe->enable_flag);
*p_param_values++ = PBE_MODULE;
@@ -366,8 +367,8 @@
struct virtualizer_params *virtualizer,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
ALOGV("%s: flags 0x%x", __func__, param_send_flags);
*p_param_values++ = VIRTUALIZER_MODULE;
@@ -486,8 +487,8 @@
static int eq_send_params(eff_mode_t mode, void *ctl, struct eq_params *eq,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
uint32_t i;
ALOGV("%s: flags 0x%x", __func__, param_send_flags);
@@ -675,8 +676,8 @@
struct reverb_params *reverb,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
ALOGV("%s: flags 0x%x", __func__, param_send_flags);
*p_param_values++ = REVERB_MODULE;
@@ -855,8 +856,8 @@
struct soft_volume_params vol,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
uint32_t i;
ALOGV("%s", __func__);
@@ -921,8 +922,8 @@
struct soft_volume_params vol,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
uint32_t i;
ALOGV("%s", __func__);
@@ -964,8 +965,8 @@
static int hpx_send_params(eff_mode_t mode, void *ctl,
unsigned param_send_flags)
{
- int param_values[128] = {0};
- int *p_param_values = param_values;
+ long param_values[128] = {0};
+ long *p_param_values = param_values;
uint32_t i;
ALOGV("%s", __func__);
diff --git a/qahw_api/inc/qahw_defs.h b/qahw_api/inc/qahw_defs.h
index a301bf9..a33caf6 100644
--- a/qahw_api/inc/qahw_defs.h
+++ b/qahw_api/inc/qahw_defs.h
@@ -251,13 +251,13 @@
uint16_t doa_speech;
uint16_t doa_noise[3];
uint8_t polar_activity[360];
-};
+} __attribute__((packed));
struct qahw_sound_focus_param {
uint16_t start_angle[MAX_SECTORS];
uint8_t enable[MAX_SECTORS];
uint16_t gain_step;
-};
+} __attribute__((packed));
struct aptx_dec_bt_addr {
uint32_t nap;