summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sound/q6asm-v2.h1
-rw-r--r--include/uapi/sound/compress_params.h3
-rw-r--r--sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c12
-rw-r--r--sound/soc/msm/qdsp6v2/q6asm.c3
4 files changed, 18 insertions, 1 deletions
diff --git a/include/sound/q6asm-v2.h b/include/sound/q6asm-v2.h
index 8af49bb6a9fa..d2d639ec462f 100644
--- a/include/sound/q6asm-v2.h
+++ b/include/sound/q6asm-v2.h
@@ -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
diff --git a/include/uapi/sound/compress_params.h b/include/uapi/sound/compress_params.h
index f4028e805cc7..6f57d4f60ce0 100644
--- a/include/uapi/sound/compress_params.h
+++ b/include/uapi/sound/compress_params.h
@@ -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
diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
index b2aa6bd3f504..edbd6b485dac 100644
--- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
+++ b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c
@@ -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;
diff --git a/sound/soc/msm/qdsp6v2/q6asm.c b/sound/soc/msm/qdsp6v2/q6asm.c
index b7f85c504f7a..f6194eade877 100644
--- a/sound/soc/msm/qdsp6v2/q6asm.c
+++ b/sound/soc/msm/qdsp6v2/q6asm.c
@@ -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;