From 011d7a01fa8c4ce4a972f3a878dc576922eec008 Mon Sep 17 00:00:00 2001 From: ObyeBoss Date: Sun, 10 Jun 2018 23:52:52 +0300 Subject: [PATCH] Tomtom extended Formats/Fmtbits & 16bit uhqa --- sound/soc/codecs/wcd9330.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/sound/soc/codecs/wcd9330.c b/sound/soc/codecs/wcd9330.c index 230110e94a47..85aa9cba77d2 100644 --- a/sound/soc/codecs/wcd9330.c +++ b/sound/soc/codecs/wcd9330.c @@ -337,8 +337,9 @@ static struct afe_param_id_clip_bank_sel clip_bank_sel = { }; #define WCD9330_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ - SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ - SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000) + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\ + SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |\ + SNDRV_PCM_RATE_192000) #define NUM_DECIMATORS 10 #define NUM_INTERPOLATORS 8 @@ -355,11 +356,13 @@ static struct afe_param_id_clip_bank_sel clip_bank_sel = { #define TOMTOM_MCLK_CLK_12P288MHZ 12288000 #define TOMTOM_MCLK_CLK_9P6MHZ 9600000 -#define TOMTOM_FORMATS_S16_S24_LE (SNDRV_PCM_FMTBIT_S16_LE | \ - SNDRV_PCM_FORMAT_S24_LE | \ - SNDRV_PCM_FMTBIT_S24_3LE) +#define TOMTOM_FORMATS_S16_S24_LE (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S16_LE |\ + SNDRV_PCM_FORMAT_S24_LE | SNDRV_PCM_FMTBIT_S24_LE |\ + SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FORMAT_S24_LE) -#define TOMTOM_FORMATS (SNDRV_PCM_FMTBIT_S16_LE) +#define TOMTOM_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S16_LE |\ + SNDRV_PCM_FORMAT_S24_LE | SNDRV_PCM_FMTBIT_S24_LE |\ + SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FORMAT_S24_LE) #define TOMTOM_SLIM_PGD_PORT_INT_TX_EN0 (TOMTOM_SLIM_PGD_PORT_INT_EN0 + 2) #define TOMTOM_ZDET_BOX_CAR_AVG_LOOP_COUNT 1 @@ -583,6 +586,7 @@ struct tomtom_priv { unsigned long status_mask; + }; static const u32 comp_shift[] = { @@ -711,8 +715,8 @@ static int tomtom_update_uhqa_mode(struct snd_soc_codec *codec, int path) if (((tomtom_get_sample_rate(codec, path) & 0xE0) == 0xA0) && (tomtom_compare_bit_format(codec, 24))) { tomtom_p->uhqa_mode = 1; - } else { - tomtom_p->uhqa_mode = 0; + } else if ((tomtom_compare_bit_format(codec, 16))) { + tomtom_p->uhqa_mode = 1; } dev_dbg(codec->dev, "%s: uhqa_mode=%d", __func__, tomtom_p->uhqa_mode); return ret;