mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
54 lines
2.0 KiB
Diff
54 lines
2.0 KiB
Diff
|
From ab79274c7bab8e16822077ae0850e6cf9b2ec1b4 Mon Sep 17 00:00:00 2001
|
||
|
From: Sia Jee Heng <jee.heng.sia@intel.com>
|
||
|
Date: Thu, 4 Feb 2021 09:42:55 +0800
|
||
|
Subject: [PATCH] ASoC: codec: hdmi-codec: Support IEC958 encoded PCM
|
||
|
format
|
||
|
|
||
|
Existing hdmi-codec driver only support standard pcm format.
|
||
|
Support of IEC958 encoded format pass from ALSA IEC958 plugin is needed
|
||
|
so that the IEC958 encoded data can be streamed to the HDMI chip.
|
||
|
|
||
|
Signed-off-by: Sia Jee Heng <jee.heng.sia@intel.com>
|
||
|
Link: https://lore.kernel.org/r/20210204014258.10197-2-jee.heng.sia@intel.com
|
||
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
||
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||
|
---
|
||
|
include/sound/hdmi-codec.h | 5 +++++
|
||
|
sound/soc/codecs/hdmi-codec.c | 4 +++-
|
||
|
2 files changed, 8 insertions(+), 1 deletion(-)
|
||
|
|
||
|
--- a/include/sound/hdmi-codec.h
|
||
|
+++ b/include/sound/hdmi-codec.h
|
||
|
@@ -34,6 +34,11 @@ struct hdmi_codec_daifmt {
|
||
|
unsigned int frame_clk_inv:1;
|
||
|
unsigned int bit_clk_master:1;
|
||
|
unsigned int frame_clk_master:1;
|
||
|
+ /* bit_fmt could be standard PCM format or
|
||
|
+ * IEC958 encoded format. ALSA IEC958 plugin will pass
|
||
|
+ * IEC958_SUBFRAME format to the underneath driver.
|
||
|
+ */
|
||
|
+ snd_pcm_format_t bit_fmt;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
--- a/sound/soc/codecs/hdmi-codec.c
|
||
|
+++ b/sound/soc/codecs/hdmi-codec.c
|
||
|
@@ -487,6 +487,7 @@ static int hdmi_codec_hw_params(struct s
|
||
|
hp.sample_rate = params_rate(params);
|
||
|
hp.channels = params_channels(params);
|
||
|
|
||
|
+ cf->bit_fmt = params_format(params);
|
||
|
return hcp->hcd.ops->hw_params(dai->dev->parent, hcp->hcd.data,
|
||
|
cf, &hp);
|
||
|
}
|
||
|
@@ -615,7 +616,8 @@ static const struct snd_soc_dai_ops hdmi
|
||
|
SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S20_3BE |\
|
||
|
SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_3BE |\
|
||
|
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_BE |\
|
||
|
- SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE)
|
||
|
+ SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S32_BE |\
|
||
|
+ SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
|
||
|
|
||
|
static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
|
||
|
struct snd_soc_dai *dai)
|