hdmirx: update eARC port and 5V high or low status to audio [1/1]

PD#SWPL-12446

Problem:
Need update eARC port and 5V high or low status to audio

Solution:
update eARC port and 5V high or low status to audio

Verify:
TM2

Change-Id: Ie9891e045010e2020aa9ec64922f2810f6a0cb18
Signed-off-by: yicheng shen <yicheng.shen@amlogic.com>
This commit is contained in:
yicheng shen
2019-08-08 03:27:13 -04:00
committed by Jianxin Pan
parent b77519dcee
commit 934eeae795
4 changed files with 24 additions and 4 deletions

View File

@@ -34,7 +34,7 @@
#include "hdmi_rx_edid.h"
#define RX_VER0 "ver.2019-06-14"
#define RX_VER0 "ver.2019-08-08"
/*
*
*
@@ -453,6 +453,7 @@ struct rx_s {
struct emp_buff empbuff;
uint32_t arc_port;
enum edid_ver_e edid_ver;
bool arc_5vsts;
};
struct _hdcp_ksv {

View File

@@ -35,6 +35,7 @@
#include <linux/delay.h>
#include <linux/of_gpio.h>
#include <linux/amlogic/media/frame_provider/tvin/tvin.h>
#include <linux/amlogic/media/sound/hdmi_earc.h>
/* Local include */
#include "hdmi_rx_repeater.h"
@@ -1962,6 +1963,7 @@ static void rx_cable_clk_monitor(void)
pre_sts = sts;
}
}
/* ---------------------------------------------------------- */
/* func: port A,B,C,D hdmitx-5v monitor & HPD control */
/* note: G9TV portD no used */
@@ -1970,6 +1972,7 @@ void rx_5v_monitor(void)
{
static uint8_t check_cnt;
uint8_t tmp_5v = rx_get_hdmi5v_sts();
bool tmp_arc_5v;
if (auto_switch_off)
tmp_5v = 0x0f;
@@ -1997,6 +2000,13 @@ void rx_5v_monitor(void)
else
hdcp_mode_sel = false;
}
if (rx.chip_id == CHIP_ID_TM2) {
tmp_arc_5v = (pwr_sts >> rx.arc_port) & 1;
if (rx.arc_5vsts != tmp_arc_5v) {
rx.arc_5vsts = tmp_arc_5v;
earc_hdmirx_hpdst(rx.arc_port, rx.arc_5vsts);
}
}
}
/*

View File

@@ -18,9 +18,8 @@
#ifndef __HDMI_EARC_H__
#define __HDMI_EARC_H__
extern void earc_hdmirx_hpdst(int port, bool st);
extern void earc_hdmitx_hpdst(bool st);
void earc_hdmitx_hpdst(bool st)
{
};
#endif

View File

@@ -65,6 +65,16 @@ struct earc {
int sysclk_freq;
};
#include <linux/amlogic/media/sound/hdmi_earc.h>
void earc_hdmirx_hpdst(int earc_port, bool st)
{
};
void earc_hdmitx_hpdst(bool st)
{
};
#define PREALLOC_BUFFER_MAX (256 * 1024)
#define EARC_RATES (SNDRV_PCM_RATE_8000_192000)