summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMisael Lopez Cruz <misael.lopez@ti.com>2015-04-22 15:22:57 +0200
committerTomi Valkeinen <tomi.valkeinen@ti.com>2015-06-03 13:33:54 +0200
commit7877039f67abad68c01583c413667889f0d25584 (patch)
tree901c14f1a5fce04c2079956b4372f33b71a7704e /drivers
parentfbdev: omap2: improve usage of gpiod API (diff)
downloadlinux-7877039f67abad68c01583c413667889f0d25584.tar.xz
linux-7877039f67abad68c01583c413667889f0d25584.zip
OMAPDSS: HDMI4: Set correct CC for 8-channels layout
OMAP4 HDMI IP uses the 8-channel layout with 8-channel speaker allocation mask when transmitting more than two channels. But the channel count field (CC) of the Audio InfoFrame's DB1 is not updated for 8-channels. As per HDMI Compliance Test 7.31 "Audio InfoFrame", CC = 7 is required for 8-channels CA masks (0x13 and 0x1F). Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com> Signed-off-by: Jyri Sarha <jsarha@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi4_core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/video/fbdev/omap2/dss/hdmi4_core.c b/drivers/video/fbdev/omap2/dss/hdmi4_core.c
index 7eafea5b8e19..2b8bd220fde6 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi4_core.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi4_core.c
@@ -795,7 +795,9 @@ int hdmi4_audio_config(struct hdmi_core_data *core, struct hdmi_wp_data *wp,
/*
* the HDMI IP needs to enable four stereo channels when transmitting
- * more than 2 audio channels
+ * more than 2 audio channels. Similarly, the channel count in the
+ * Audio InfoFrame has to match the sample_present bits (some channels
+ * are padded with zeroes)
*/
if (channel_count == 2) {
audio_format.stereo_channels = HDMI_AUDIO_STEREO_ONECHANNEL;
@@ -807,6 +809,7 @@ int hdmi4_audio_config(struct hdmi_core_data *core, struct hdmi_wp_data *wp,
HDMI_AUDIO_I2S_SD1_EN | HDMI_AUDIO_I2S_SD2_EN |
HDMI_AUDIO_I2S_SD3_EN;
acore.layout = HDMI_AUDIO_LAYOUT_8CH;
+ audio->cea->db1_ct_cc = 7;
}
acore.en_spdif = false;