ASoC: msm: qdsp6v2: Update calibration driver and voice driver

Update calibration driver and voice driver for per vocoder cal.
Update the voice-related cal types. Add new enumerate.

Change-Id: I10c60724c2f1e44f948d6d2ee8b19cd32c2adc40
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
This commit is contained in:
Walter Yang 2014-07-14 14:36:04 -07:00 committed by Gerrit - the friendly Code Review server
parent 956fe03ae3
commit 4c353a4209
4 changed files with 50 additions and 37 deletions

View File

@ -97,4 +97,6 @@ struct cal_block_data *cal_utils_get_only_cal_block(
size_t get_cal_info_size(int32_t cal_type);
size_t get_user_cal_type_size(int32_t cal_type);
/* Version of the cal type*/
int32_t cal_utils_get_cal_type_version(void *cal_type_data);
#endif

View File

@ -47,13 +47,13 @@
enum {
CVP_VOC_RX_TOPOLOGY_CAL_TYPE = 0,
CVP_VOC_TX_TOPOLOGY_CAL_TYPE,
CVP_VOCPROC_CAL_TYPE,
CVP_VOCVOL_CAL_TYPE,
CVS_VOCSTRM_CAL_TYPE,
CVP_VOCPROC_STATIC_CAL_TYPE,
CVP_VOCPROC_DYNAMIC_CAL_TYPE,
CVS_VOCSTRM_STATIC_CAL_TYPE,
CVP_VOCDEV_CFG_CAL_TYPE,
CVP_VOCPROC_COL_CAL_TYPE,
CVP_VOCVOL_COL_CAL_TYPE,
CVS_VOCSTRM_COL_CAL_TYPE,
CVP_VOCPROC_STATIC_COL_CAL_TYPE,
CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE,
CVS_VOCSTRM_STATIC_COL_CAL_TYPE,
ADM_TOPOLOGY_CAL_TYPE,
ADM_CUST_TOPOLOGY_CAL_TYPE,
@ -93,6 +93,10 @@ enum {
VERSION_0_0,
};
enum {
PER_VOCODER_CAL_BIT_MASK = 0x10000,
};
#define MAX_IOCTL_CMD_SIZE 512
/* common structures */
@ -324,6 +328,8 @@ struct audio_cal_col_data {
struct audio_cal_info_voc_col {
int32_t table_id;
int32_t tx_acdb_id;
int32_t rx_acdb_id;
struct audio_cal_col_data data;
};

View File

@ -30,25 +30,25 @@ size_t get_cal_info_size(int32_t cal_type)
case CVP_VOC_TX_TOPOLOGY_CAL_TYPE:
size = sizeof(struct audio_cal_info_voc_top);
break;
case CVP_VOCPROC_CAL_TYPE:
case CVP_VOCPROC_STATIC_CAL_TYPE:
size = sizeof(struct audio_cal_info_vocproc);
break;
case CVP_VOCVOL_CAL_TYPE:
case CVP_VOCPROC_DYNAMIC_CAL_TYPE:
size = sizeof(struct audio_cal_info_vocvol);
break;
case CVS_VOCSTRM_CAL_TYPE:
case CVS_VOCSTRM_STATIC_CAL_TYPE:
size = 0;
break;
case CVP_VOCDEV_CFG_CAL_TYPE:
size = sizeof(struct audio_cal_info_vocdev_cfg);
break;
case CVP_VOCPROC_COL_CAL_TYPE:
case CVP_VOCPROC_STATIC_COL_CAL_TYPE:
size = sizeof(struct audio_cal_info_voc_col);
break;
case CVP_VOCVOL_COL_CAL_TYPE:
case CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE:
size = sizeof(struct audio_cal_info_voc_col);
break;
case CVS_VOCSTRM_COL_CAL_TYPE:
case CVS_VOCSTRM_STATIC_COL_CAL_TYPE:
size = sizeof(struct audio_cal_info_voc_col);
break;
case ADM_TOPOLOGY_CAL_TYPE:
@ -141,25 +141,21 @@ size_t get_user_cal_type_size(int32_t cal_type)
case CVP_VOC_TX_TOPOLOGY_CAL_TYPE:
size = sizeof(struct audio_cal_type_voc_top);
break;
case CVP_VOCPROC_CAL_TYPE:
case CVP_VOCPROC_STATIC_CAL_TYPE:
size = sizeof(struct audio_cal_type_vocproc);
break;
case CVP_VOCVOL_CAL_TYPE:
case CVP_VOCPROC_DYNAMIC_CAL_TYPE:
size = sizeof(struct audio_cal_type_vocvol);
break;
case CVS_VOCSTRM_CAL_TYPE:
case CVS_VOCSTRM_STATIC_CAL_TYPE:
size = sizeof(struct audio_cal_type_basic);
break;
case CVP_VOCDEV_CFG_CAL_TYPE:
size = sizeof(struct audio_cal_type_vocdev_cfg);
break;
case CVP_VOCPROC_COL_CAL_TYPE:
size = sizeof(struct audio_cal_type_voc_col);
break;
case CVP_VOCVOL_COL_CAL_TYPE:
size = sizeof(struct audio_cal_type_voc_col);
break;
case CVS_VOCSTRM_COL_CAL_TYPE:
case CVP_VOCPROC_STATIC_COL_CAL_TYPE:
case CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE:
case CVS_VOCSTRM_STATIC_COL_CAL_TYPE:
size = sizeof(struct audio_cal_type_voc_col);
break;
case ADM_TOPOLOGY_CAL_TYPE:
@ -241,6 +237,15 @@ size_t get_user_cal_type_size(int32_t cal_type)
return size;
}
int32_t cal_utils_get_cal_type_version(void *cal_type_data)
{
struct audio_cal_type_basic *data = NULL;
data = (struct audio_cal_type_basic *)cal_type_data;
return data->cal_hdr.version;
}
static struct cal_type_data *create_cal_type_data(
struct cal_type_info *info)
{

View File

@ -2946,13 +2946,13 @@ static int voice_unmap_cal_memory(int32_t cal_type,
result = result2;
}
if (cal_type == CVP_VOCVOL_CAL_TYPE)
if (cal_type == CVP_VOCPROC_DYNAMIC_CAL_TYPE)
voice_send_cvp_deregister_vol_cal_cmd(v);
else if (cal_type == CVP_VOCPROC_CAL_TYPE)
else if (cal_type == CVP_VOCPROC_STATIC_CAL_TYPE)
voice_send_cvp_deregister_cal_cmd(v);
else if (cal_type == CVP_VOCDEV_CFG_CAL_TYPE)
voice_send_cvp_deregister_dev_cfg_cmd(v);
else if (cal_type == CVS_VOCSTRM_CAL_TYPE)
else if (cal_type == CVS_VOCSTRM_STATIC_CAL_TYPE)
voice_send_cvs_deregister_cal_cmd(v);
else
pr_err("%s: Invalid cal type %d!\n",
@ -6525,25 +6525,25 @@ static int get_cal_type_index(int32_t cal_type)
case CVP_VOC_TX_TOPOLOGY_CAL_TYPE:
ret = CVP_VOC_TX_TOPOLOGY_CAL;
break;
case CVP_VOCPROC_CAL_TYPE:
case CVP_VOCPROC_STATIC_CAL_TYPE:
ret = CVP_VOCPROC_CAL;
break;
case CVP_VOCVOL_CAL_TYPE:
case CVP_VOCPROC_DYNAMIC_CAL_TYPE:
ret = CVP_VOCVOL_CAL;
break;
case CVS_VOCSTRM_CAL_TYPE:
case CVS_VOCSTRM_STATIC_CAL_TYPE:
ret = CVS_VOCSTRM_CAL;
break;
case CVP_VOCDEV_CFG_CAL_TYPE:
ret = CVP_VOCDEV_CFG_CAL;
break;
case CVP_VOCPROC_COL_CAL_TYPE:
case CVP_VOCPROC_STATIC_COL_CAL_TYPE:
ret = CVP_VOCPROC_COL_CAL;
break;
case CVP_VOCVOL_COL_CAL_TYPE:
case CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE:
ret = CVP_VOCVOL_COL_CAL;
break;
case CVS_VOCSTRM_COL_CAL_TYPE:
case CVS_VOCSTRM_STATIC_COL_CAL_TYPE:
ret = CVS_VOCSTRM_COL_CAL;
break;
case VOICE_RTAC_INFO_CAL_TYPE:
@ -6676,13 +6676,13 @@ static int voice_init_cal_data(void)
{NULL, NULL, NULL, voice_set_cal, NULL, NULL} },
{NULL, NULL, cal_utils_match_buf_num} },
{{CVP_VOCPROC_CAL_TYPE,
{{CVP_VOCPROC_STATIC_CAL_TYPE,
{voice_alloc_cal, voice_dealloc_cal, NULL,
voice_set_cal, NULL, NULL} },
{NULL, voice_unmap_cal_memory,
cal_utils_match_buf_num} },
{{CVP_VOCVOL_CAL_TYPE,
{{CVP_VOCPROC_DYNAMIC_CAL_TYPE,
{voice_alloc_cal, voice_dealloc_cal,
voice_prepare_volume_boost,
voice_set_cal, NULL,
@ -6696,21 +6696,21 @@ static int voice_init_cal_data(void)
{NULL, voice_unmap_cal_memory,
cal_utils_match_buf_num} },
{{CVP_VOCPROC_COL_CAL_TYPE,
{{CVP_VOCPROC_STATIC_COL_CAL_TYPE,
{NULL, NULL, NULL, voice_set_cal, NULL, NULL} },
{NULL, NULL, cal_utils_match_buf_num} },
{{CVP_VOCVOL_COL_CAL_TYPE,
{{CVP_VOCPROC_DYNAMIC_COL_CAL_TYPE,
{NULL, NULL, NULL, voice_set_cal, NULL, NULL} },
{NULL, NULL, cal_utils_match_buf_num} },
{{CVS_VOCSTRM_CAL_TYPE,
{{CVS_VOCSTRM_STATIC_CAL_TYPE,
{voice_alloc_cal, voice_dealloc_cal, NULL,
voice_set_cal, NULL, NULL} },
{NULL, voice_unmap_cal_memory,
cal_utils_match_buf_num} },
{{CVS_VOCSTRM_COL_CAL_TYPE,
{{CVS_VOCSTRM_STATIC_COL_CAL_TYPE,
{NULL, NULL, NULL, voice_set_cal, NULL, NULL} },
{NULL, NULL, cal_utils_match_buf_num} },