From: Zheng Yang Date: Sat, 14 Feb 2015 01:14:18 +0000 (+0800) Subject: hdmi: hdmiv1: X-Git-Tag: firefly_0821_release~4158^2~437 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=faf8120fc884b907c967898a7d3a102783d07428;p=firefly-linux-kernel-4.4.55.git hdmi: hdmiv1: For nlpcm bitstream mode, we need to set audio channel status nlpcm bit to 1. Signed-off-by: Zheng Yang --- diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.c b/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.c index 9e0c721ac538..50889c7aa67c 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.c +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.c @@ -796,6 +796,15 @@ static int rockchip_hdmiv1_config_audio(struct hdmi *hdmi_drv, hdmi_writel(hdmi_dev, AUDIO_N_H, (N >> 16) & 0x0F); hdmi_writel(hdmi_dev, AUDIO_N_M, (N >> 8) & 0xFF); hdmi_writel(hdmi_dev, AUDIO_N_L, N & 0xFF); + + /*Set hdmi nlpcm mode to support hdmi bitstream*/ + if (audio->type == HDMI_AUDIO_NLPCM) + hdmi_writel(hdmi_dev, AUDIO_CHANNEL_STATUS, + v_AUDIO_STATUS_NLPCM(1)); + else + hdmi_writel(hdmi_dev, AUDIO_CHANNEL_STATUS, + v_AUDIO_STATUS_NLPCM(0)); + rockchip_hdmiv1_config_aai(hdmi_drv); return 0; diff --git a/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.h b/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.h index 0b442d303048..e9d085d767b8 100644 --- a/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.h +++ b/drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.h @@ -235,6 +235,14 @@ enum { #define N_96K 0x3000 #define N_192K 0x6000 +#define AUDIO_CHANNEL_STATUS 0x3e + #define m_AUDIO_STATUS_NLPCM (1 << 7) + #define m_AUDIO_STATUS_USE (1 << 6) + #define m_AUDIO_STATUS_COPYRIGHT (1 << 5) + #define m_AUDIO_STATUS_ADDITION (3 << 2) + #define m_AUDIO_STATUS_CLK_ACCURACY (2 << 0) + + #define v_AUDIO_STATUS_NLPCM(n) ((n & 1) << 7) #define AUDIO_N_H 0x3f #define AUDIO_N_M 0x40 #define AUDIO_N_L 0x41