hdmi: hdmiv1:
authorZheng Yang <zhengyang@rock-chips.com>
Sat, 14 Feb 2015 01:14:18 +0000 (09:14 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Fri, 27 Feb 2015 09:36:57 +0000 (17:36 +0800)
For nlpcm bitstream mode, we need to set audio
channel status nlpcm bit to 1.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.c
drivers/video/rockchip/hdmi/rockchip-hdmiv1/rockchip_hdmiv1_hw.h

index 9e0c721ac5381adf0573312682350a7cfad69b3a..50889c7aa67cf0b81f3fb11af74031c614c64966 100644 (file)
@@ -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;
index 0b442d3030482ab69d31aabc1b5ad64a9d3db837..e9d085d767b8f015a4ab7c7082a0986ebf71a27d 100644 (file)
@@ -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