diff options
Diffstat (limited to 'sound/soc/mediatek/common')
-rw-r--r-- | sound/soc/mediatek/common/Makefile | 2 | ||||
-rw-r--r-- | sound/soc/mediatek/common/mtk-afe-fe-dai.c | 6 | ||||
-rw-r--r-- | sound/soc/mediatek/common/mtk-base-afe.h | 2 | ||||
-rw-r--r-- | sound/soc/mediatek/common/mtk-btcvsd.c | 22 |
4 files changed, 20 insertions, 12 deletions
diff --git a/sound/soc/mediatek/common/Makefile b/sound/soc/mediatek/common/Makefile index 9ab90433a8d7..acbe01e9e928 100644 --- a/sound/soc/mediatek/common/Makefile +++ b/sound/soc/mediatek/common/Makefile @@ -3,4 +3,4 @@ snd-soc-mtk-common-objs := mtk-afe-platform-driver.o mtk-afe-fe-dai.o obj-$(CONFIG_SND_SOC_MEDIATEK) += snd-soc-mtk-common.o -obj-$(CONFIG_SND_SOC_MTK_BTCVSD) += mtk-btcvsd.o
\ No newline at end of file +obj-$(CONFIG_SND_SOC_MTK_BTCVSD) += mtk-btcvsd.o diff --git a/sound/soc/mediatek/common/mtk-afe-fe-dai.c b/sound/soc/mediatek/common/mtk-afe-fe-dai.c index fded11d14cde..d16563408465 100644 --- a/sound/soc/mediatek/common/mtk-afe-fe-dai.c +++ b/sound/soc/mediatek/common/mtk-afe-fe-dai.c @@ -241,6 +241,7 @@ int mtk_afe_fe_prepare(struct snd_pcm_substream *substream, struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai); struct mtk_base_afe_memif *memif = &afe->memif[rtd->cpu_dai->id]; int hd_audio = 0; + int hd_align = 1; /* set hd mode */ switch (substream->runtime->format) { @@ -249,9 +250,11 @@ int mtk_afe_fe_prepare(struct snd_pcm_substream *substream, break; case SNDRV_PCM_FORMAT_S32_LE: hd_audio = 1; + hd_align = 1; break; case SNDRV_PCM_FORMAT_S24_LE: hd_audio = 1; + hd_align = 0; break; default: dev_err(afe->dev, "%s() error: unsupported format %d\n", @@ -262,6 +265,9 @@ int mtk_afe_fe_prepare(struct snd_pcm_substream *substream, mtk_regmap_update_bits(afe->regmap, memif->data->hd_reg, 1, hd_audio, memif->data->hd_shift); + mtk_regmap_update_bits(afe->regmap, memif->data->hd_align_reg, + 1, hd_align, memif->data->hd_align_mshift); + return 0; } EXPORT_SYMBOL_GPL(mtk_afe_fe_prepare); diff --git a/sound/soc/mediatek/common/mtk-base-afe.h b/sound/soc/mediatek/common/mtk-base-afe.h index bd8d5e0c6843..60cb609a9790 100644 --- a/sound/soc/mediatek/common/mtk-base-afe.h +++ b/sound/soc/mediatek/common/mtk-base-afe.h @@ -24,7 +24,9 @@ struct mtk_base_memif_data { int enable_reg; int enable_shift; int hd_reg; + int hd_align_reg; int hd_shift; + int hd_align_mshift; int msb_reg; int msb_shift; int agent_disable_reg; diff --git a/sound/soc/mediatek/common/mtk-btcvsd.c b/sound/soc/mediatek/common/mtk-btcvsd.c index bd55c546e790..c7a81c4be068 100644 --- a/sound/soc/mediatek/common/mtk-btcvsd.c +++ b/sound/soc/mediatek/common/mtk-btcvsd.c @@ -407,11 +407,11 @@ static int mtk_btcvsd_read_from_bt(struct mtk_btcvsd_snd *bt, return 0; } -int mtk_btcvsd_write_to_bt(struct mtk_btcvsd_snd *bt, - enum bt_sco_packet_len packet_type, - unsigned int packet_length, - unsigned int packet_num, - unsigned int blk_size) +static int mtk_btcvsd_write_to_bt(struct mtk_btcvsd_snd *bt, + enum bt_sco_packet_len packet_type, + unsigned int packet_length, + unsigned int packet_num, + unsigned int blk_size) { unsigned int i; unsigned long flags; @@ -695,9 +695,9 @@ static int wait_for_bt_irq(struct mtk_btcvsd_snd *bt, return 0; } -ssize_t mtk_btcvsd_snd_read(struct mtk_btcvsd_snd *bt, - char __user *buf, - size_t count) +static ssize_t mtk_btcvsd_snd_read(struct mtk_btcvsd_snd *bt, + char __user *buf, + size_t count) { ssize_t read_size = 0, read_count = 0, cur_read_idx, cont; unsigned int cur_buf_ofs = 0; @@ -776,9 +776,9 @@ ssize_t mtk_btcvsd_snd_read(struct mtk_btcvsd_snd *bt, return read_count; } -ssize_t mtk_btcvsd_snd_write(struct mtk_btcvsd_snd *bt, - char __user *buf, - size_t count) +static ssize_t mtk_btcvsd_snd_write(struct mtk_btcvsd_snd *bt, + char __user *buf, + size_t count) { int written_size = count, avail = 0, cur_write_idx, write_size, cont; unsigned int cur_buf_ofs = 0; |