[d-kernel] [PATCH 24/35] dw-hdmi: add flag SNDRV_PCM_INFO_BATCH for audio via hdmi on Baikal-M
Daniil Gnusarev
gnusarevda на basealt.ru
Пт Фев 27 13:32:25 MSK 2026
There is an unstable sound output via HDMI with the dw-hdmi-ahb-audiо
driver when working on Baikal-M. Additional setting of
the SNDRV_PCM_INFO_BATCH flag solves this problem. Let's use it.
Signed-off-by: Daniil Gnusarev <gnusarevda на basealt.ru>
Do-not-upstream: this is a feature of Baikal-M
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 2 ++
drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h | 1 +
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 +++-
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
index e0215e635473c3..9afa3ee2b0ee8c 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c
@@ -356,6 +356,8 @@ static int dw_hdmi_open(struct snd_pcm_substream *substream)
int ret;
runtime->hw = dw_hdmi_hw;
+ if (dw->data.batch_mode)
+ runtime->hw.info |= SNDRV_PCM_INFO_BATCH;
eld = dw->data.get_eld(dw->data.hdmi);
if (eld) {
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
index 3250588d39ff03..aa9f470fcd03a6 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-audio.h
@@ -11,6 +11,7 @@ struct dw_hdmi_audio_data {
struct dw_hdmi *hdmi;
u8 *(*get_eld)(struct dw_hdmi *hdmi);
unsigned regshift;
+ bool batch_mode;
};
struct dw_hdmi_i2s_audio_data {
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 87d03939ed1c10..d1911b94650ece 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -3531,7 +3531,9 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
audio.regshift = 2;
dev_info(dev, "setting audio.regshift=%d for BE-M1000 SoC\n",
audio.regshift);
- }
+ audio.batch_mode = true;
+ } else
+ audio.batch_mode = false;
hdmi->enable_audio = dw_hdmi_ahb_audio_enable;
hdmi->disable_audio = dw_hdmi_ahb_audio_disable;
--
2.42.2
Подробная информация о списке рассылки devel-kernel