msm: ASoC: enable aptX HD decoder

Enable decoder for media format aptX HD

Change-Id: I5892dcdcf233f2c8c79b4f2c08d2d9014e05ed26
Signed-off-by: Han Lu <hanlu@codeaurora.org>
This commit is contained in:
Han Lu 2018-11-01 16:26:37 +08:00 committed by Gerrit - the friendly Code Review server
parent e46bc1b058
commit fe22467084
4 changed files with 18 additions and 1 deletions

View file

@ -57,6 +57,7 @@
#define FORMAT_GEN_COMPR 0x001f
#define FORMAT_TRUEHD 0x0020
#define FORMAT_IEC61937 0x0021
#define FORMAT_APTXHD 0x0022
#define ENCDEC_SBCBITRATE 0x0001
#define ENCDEC_IMMEDIATE_DECODE 0x0002

View file

@ -105,7 +105,8 @@
#define SND_AUDIOCODEC_DSD ((__u32) 0x00000021)
#define SND_AUDIOCODEC_APTX ((__u32) 0x00000022)
#define SND_AUDIOCODEC_TRUEHD ((__u32) 0x00000023)
#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_TRUEHD
#define SND_AUDIOCODEC_APTXHD ((__u32) 0x00000024)
#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_APTXHD
/*
* Profile and modes are listed with bit masks. This allows for a
* more compact representation of fields that will not evolve

View file

@ -946,6 +946,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd)
prtd->compr_cap.codecs[14] = SND_AUDIOCODEC_APTX;
prtd->compr_cap.codecs[15] = SND_AUDIOCODEC_TRUEHD;
prtd->compr_cap.codecs[16] = SND_AUDIOCODEC_IEC61937;
prtd->compr_cap.codecs[17] = SND_AUDIOCODEC_APTXHD;
}
static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream,
@ -1213,6 +1214,8 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream,
pr_err("%s: CMD IEC61937 Format block failed ret %d\n",
__func__, ret);
break;
case FORMAT_APTXHD:
pr_debug("SND_AUDIOCODEC_APTXHD\n");
case FORMAT_APTX:
pr_debug("SND_AUDIOCODEC_APTX\n");
memset(&aptx_cfg, 0x0, sizeof(struct aptx_dec_bt_addr_cfg));
@ -2106,6 +2109,12 @@ static int msm_compr_set_params(struct snd_compr_stream *cstream,
break;
}
case SND_AUDIOCODEC_APTXHD: {
pr_debug("%s: SND_AUDIOCODEC_APTXHD\n", __func__);
prtd->codec = FORMAT_APTXHD;
break;
}
default:
pr_err("codec not supported, id =%d\n", params->codec.id);
return -EINVAL;
@ -2974,6 +2983,7 @@ static int msm_compr_get_codec_caps(struct snd_compr_stream *cstream,
case SND_AUDIOCODEC_TRUEHD:
case SND_AUDIOCODEC_IEC61937:
case SND_AUDIOCODEC_APTX:
case SND_AUDIOCODEC_APTXHD:
break;
default:
pr_err("%s: Unsupported audio codec %d\n",
@ -3412,6 +3422,7 @@ static int msm_compr_send_dec_params(struct snd_compr_stream *cstream,
case FORMAT_TRUEHD:
case FORMAT_IEC61937:
case FORMAT_APTX:
case FORMAT_APTXHD:
pr_debug("%s: no runtime parameters for codec: %d\n", __func__,
prtd->codec);
break;
@ -3481,6 +3492,7 @@ static int msm_compr_dec_params_put(struct snd_kcontrol *kcontrol,
case FORMAT_TRUEHD:
case FORMAT_IEC61937:
case FORMAT_APTX:
case FORMAT_APTXHD:
pr_debug("%s: no runtime parameters for codec: %d\n", __func__,
prtd->codec);
break;

View file

@ -3245,6 +3245,9 @@ static int __q6asm_open_write(struct audio_client *ac, uint32_t format,
case FORMAT_APTX:
open.dec_fmt_id = ASM_MEDIA_FMT_APTX;
break;
case FORMAT_APTXHD:
open.dec_fmt_id = ASM_MEDIA_FMT_APTX_HD;
break;
case FORMAT_GEN_COMPR:
open.dec_fmt_id = ASM_MEDIA_FMT_GENERIC_COMPRESSED;
break;