mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
hdmitx: sync HDR/VSIF from A [1/1]
PD#SWPL-13206 Problem: Need to sync HDR/HLG/DV callback Solution: Sync HDR/HLG/DV callback Verify: G12/U212 Change-Id: Ibe93c3e538ad2f3cbb254c4ce731473b6ac1562b Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
This commit is contained in:
@@ -227,12 +227,12 @@ int hdmitx_set_audio(struct hdmitx_dev *hdmitx_device,
|
||||
AUD_DB[i] = 0;
|
||||
for (i = 0; i < (24*2); i++)
|
||||
CHAN_STAT_BUF[i] = 0;
|
||||
if (hdmitx_device->HWOp.SetAudMode(hdmitx_device,
|
||||
audio_param) >= 0) {
|
||||
if (hdmitx_device->hwop.setaudmode(hdmitx_device,
|
||||
audio_param) >= 0) {
|
||||
hdmi_tx_construct_aud_packet(audio_param, AUD_DB,
|
||||
CHAN_STAT_BUF, hdmi_ch);
|
||||
|
||||
hdmitx_device->HWOp.SetAudioInfoFrame(AUD_DB, CHAN_STAT_BUF);
|
||||
hdmitx_device->hwop.setaudioinfoframe(AUD_DB, CHAN_STAT_BUF);
|
||||
ret = 0;
|
||||
}
|
||||
return ret;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -59,8 +59,7 @@ unsigned int hdcp_get_downstream_ver(void)
|
||||
struct hdmitx_dev *hdev = get_hdmitx_device();
|
||||
|
||||
/* if TX don't have HDCP22 key, skip RX hdcp22 ver */
|
||||
if (hdev->HWOp.CntlDDC(hdev,
|
||||
DDC_HDCP_22_LSTORE, 0) == 0)
|
||||
if (hdev->hwop.cntlddc(hdev, DDC_HDCP_22_LSTORE, 0) == 0)
|
||||
if (hdcp_rd_hdcp22_ver())
|
||||
ret = 22;
|
||||
else
|
||||
@@ -95,10 +94,10 @@ static void _hdcp_do_work(struct work_struct *work)
|
||||
container_of(work, struct hdmitx_dev, work_do_hdcp.work);
|
||||
|
||||
if (hdev->hdcp_mode == 2) {
|
||||
/* hdev->HWOp.CntlMisc(hdev, MISC_HDCP_CLKDIS, 1); */
|
||||
/* hdev->hwop.cntlmisc(hdev, MISC_HDCP_CLKDIS, 1); */
|
||||
/* schedule_delayed_work(&hdev->work_do_hdcp, HZ / 50); */
|
||||
} else
|
||||
hdev->HWOp.CntlMisc(hdev, MISC_HDCP_CLKDIS, 0);
|
||||
hdev->hwop.cntlmisc(hdev, MISC_HDCP_CLKDIS, 0);
|
||||
}
|
||||
|
||||
void hdmitx_hdcp_do_work(struct hdmitx_dev *hdev)
|
||||
@@ -112,7 +111,7 @@ static int hdmitx_hdcp_task(void *data)
|
||||
|
||||
INIT_DELAYED_WORK(&hdev->work_do_hdcp, _hdcp_do_work);
|
||||
while (hdev->hpd_event != 0xff) {
|
||||
hdmi_authenticated = hdev->HWOp.CntlDDC(hdev,
|
||||
hdmi_authenticated = hdev->hwop.cntlddc(hdev,
|
||||
DDC_HDCP_GET_AUTH, 0);
|
||||
hdmitx_hdcp_status(hdmi_authenticated);
|
||||
msleep_interruptible(200);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -874,9 +874,9 @@ static void hdmi_tx_construct_avi_packet(
|
||||
* HDMI Identifier = HDMI_IEEEOUI 0x000c03
|
||||
* If not, treated as a DVI Device
|
||||
*/
|
||||
static int is_dvi_device(struct rx_cap *pRXCap)
|
||||
static int is_dvi_device(struct rx_cap *prxcap)
|
||||
{
|
||||
if (pRXCap->ieeeoui != HDMI_IEEEOUI)
|
||||
if (prxcap->ieeeoui != HDMI_IEEEOUI)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
@@ -896,7 +896,7 @@ int hdmitx_set_display(struct hdmitx_dev *hdev, enum hdmi_vic VideoCode)
|
||||
for (i = 0; i < 32; i++)
|
||||
AVI_DB[i] = 0;
|
||||
|
||||
vic = hdev->HWOp.GetState(hdev, STAT_VIDEO_VIC, 0);
|
||||
vic = hdev->hwop.getstate(hdev, STAT_VIDEO_VIC, 0);
|
||||
pr_info(VID "already init VIC = %d Now VIC = %d\n",
|
||||
vic, VideoCode);
|
||||
if ((vic != HDMI_Unknown) && (vic == VideoCode))
|
||||
@@ -909,7 +909,7 @@ int hdmitx_set_display(struct hdmitx_dev *hdev, enum hdmi_vic VideoCode)
|
||||
/* HDMI CT 7-24 Pixel Encoding
|
||||
* YCbCr to YCbCr Sink
|
||||
*/
|
||||
switch (hdev->RXCap.native_Mode & 0x30) {
|
||||
switch (hdev->rxcap.native_Mode & 0x30) {
|
||||
case 0x20:/*bit5==1, then support YCBCR444 + RGB*/
|
||||
case 0x30:
|
||||
param->color = COLORSPACE_YUV444;
|
||||
@@ -943,19 +943,19 @@ int hdmitx_set_display(struct hdmitx_dev *hdev, enum hdmi_vic VideoCode)
|
||||
pr_info("hdmitx: VESA only support RGB format\n");
|
||||
}
|
||||
|
||||
if (hdev->HWOp.SetDispMode(hdev) >= 0) {
|
||||
if (hdev->hwop.setdispmode(hdev) >= 0) {
|
||||
/* HDMI CT 7-33 DVI Sink, no HDMI VSDB nor any
|
||||
* other VSDB, No GB or DI expected
|
||||
* TMDS_MODE[hdmi_config]
|
||||
* 0: DVI Mode 1: HDMI Mode
|
||||
*/
|
||||
if (is_dvi_device(&hdev->RXCap)) {
|
||||
if (is_dvi_device(&hdev->rxcap)) {
|
||||
pr_info(VID "Sink is DVI device\n");
|
||||
hdev->HWOp.CntlConfig(hdev,
|
||||
hdev->hwop.cntlconfig(hdev,
|
||||
CONF_HDMI_DVI_MODE, DVI_MODE);
|
||||
} else {
|
||||
pr_info(VID "Sink is HDMI device\n");
|
||||
hdev->HWOp.CntlConfig(hdev,
|
||||
hdev->hwop.cntlconfig(hdev,
|
||||
CONF_HDMI_DVI_MODE, HDMI_MODE);
|
||||
}
|
||||
hdmi_tx_construct_avi_packet(param, (char *)AVI_DB);
|
||||
@@ -971,22 +971,22 @@ int hdmitx_set_display(struct hdmitx_dev *hdev, enum hdmi_vic VideoCode)
|
||||
else
|
||||
;
|
||||
|
||||
switch (hdev->RXCap.allm ? hdev->allm_mode : 0) {
|
||||
switch (hdev->rxcap.allm ? hdev->allm_mode : 0) {
|
||||
case 1: /* game */
|
||||
hdmitx_construct_vsif(hdev, VT_ALLM, 1, NULL);
|
||||
hdev->HWOp.CntlConfig(hdev, CONF_ALLM_MODE,
|
||||
hdev->hwop.cntlconfig(hdev, CONF_ALLM_MODE,
|
||||
SET_ALLM_GAME);
|
||||
break;
|
||||
case 2: /* graphics */
|
||||
hdev->HWOp.CntlConfig(hdev, CONF_ALLM_MODE,
|
||||
hdev->hwop.cntlconfig(hdev, CONF_ALLM_MODE,
|
||||
SET_ALLM_GRAPHICS);
|
||||
break;
|
||||
case 3: /* photo */
|
||||
hdev->HWOp.CntlConfig(hdev, CONF_ALLM_MODE,
|
||||
hdev->hwop.cntlconfig(hdev, CONF_ALLM_MODE,
|
||||
SET_ALLM_PHOTO);
|
||||
break;
|
||||
case 4: /* cinema */
|
||||
hdev->HWOp.CntlConfig(hdev, CONF_ALLM_MODE,
|
||||
hdev->hwop.cntlconfig(hdev, CONF_ALLM_MODE,
|
||||
SET_ALLM_CINEMA);
|
||||
break;
|
||||
default:
|
||||
@@ -1013,12 +1013,12 @@ static void hdmi_set_vend_spec_infofram(struct hdmitx_dev *hdev,
|
||||
VEN_HB[2] = 0x5;
|
||||
|
||||
if (VideoCode == 0) { /* For non-4kx2k mode setting */
|
||||
hdev->HWOp.SetPacket(HDMI_PACKET_VEND, NULL, VEN_HB);
|
||||
hdev->hwop.setpacket(HDMI_PACKET_VEND, NULL, VEN_HB);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((hdev->RXCap.dv_info.block_flag == CORRECT) ||
|
||||
(hdev->dv_src_feature == 1)) { /* For dolby */
|
||||
if ((hdev->rxcap.dv_info.block_flag == CORRECT) ||
|
||||
(hdev->dv_src_feature == 1)) { /* For dolby */
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1043,7 +1043,7 @@ static void hdmi_set_vend_spec_infofram(struct hdmitx_dev *hdev,
|
||||
VEN_DB[4] = 0x4;
|
||||
} else
|
||||
;
|
||||
hdev->HWOp.SetPacket(HDMI_PACKET_VEND, VEN_DB, VEN_HB);
|
||||
hdev->hwop.setpacket(HDMI_PACKET_VEND, VEN_DB, VEN_HB);
|
||||
}
|
||||
|
||||
int hdmi_set_3d(struct hdmitx_dev *hdev, int type, unsigned int param)
|
||||
@@ -1056,7 +1056,7 @@ int hdmi_set_3d(struct hdmitx_dev *hdev, int type, unsigned int param)
|
||||
VEN_HB[1] = 0x01;
|
||||
VEN_HB[2] = 0x6;
|
||||
if (type == T3D_DISABLE)
|
||||
hdev->HWOp.SetPacket(HDMI_PACKET_VEND, NULL, VEN_HB);
|
||||
hdev->hwop.setpacket(HDMI_PACKET_VEND, NULL, VEN_HB);
|
||||
else {
|
||||
for (i = 0; i < 0x6; i++)
|
||||
VEN_DB[i] = 0;
|
||||
@@ -1066,7 +1066,7 @@ int hdmi_set_3d(struct hdmitx_dev *hdev, int type, unsigned int param)
|
||||
VEN_DB[3] = 0x40;
|
||||
VEN_DB[4] = type<<4;
|
||||
VEN_DB[5] = param<<4;
|
||||
hdev->HWOp.SetPacket(HDMI_PACKET_VEND, VEN_DB, VEN_HB);
|
||||
hdev->hwop.setpacket(HDMI_PACKET_VEND, VEN_DB, VEN_HB);
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -1098,7 +1098,7 @@ static void hdmitx_set_spd_info(struct hdmitx_dev *hdev)
|
||||
(len > 16) ? 16 : len);
|
||||
}
|
||||
SPD_DB[24] = 0x1;
|
||||
hdev->HWOp.SetPacket(HDMI_SOURCE_DESCRIPTION, SPD_DB, SPD_HB);
|
||||
hdev->hwop.setpacket(HDMI_SOURCE_DESCRIPTION, SPD_DB, SPD_HB);
|
||||
}
|
||||
|
||||
static void fill_hdmi4k_vsif_data(enum hdmi_vic vic, unsigned char *DB,
|
||||
@@ -1168,6 +1168,6 @@ int hdmitx_construct_vsif(struct hdmitx_dev *hdev, enum vsif_type type,
|
||||
DB[1] = GET_OUI_BYTE1(ieeeoui);
|
||||
DB[2] = GET_OUI_BYTE2(ieeeoui);
|
||||
|
||||
hdev->HWOp.SetDataPacket(HDMI_PACKET_VEND, DB, HB);
|
||||
hdev->hwop.setdatapacket(HDMI_PACKET_VEND, DB, HB);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -624,24 +624,24 @@ static void hdmi_hwi_init(struct hdmitx_dev *hdev)
|
||||
|
||||
void HDMITX_Meson_Init(struct hdmitx_dev *hdev)
|
||||
{
|
||||
hdev->HWOp.SetPacket = hdmitx_set_packet;
|
||||
hdev->HWOp.SetDataPacket = hdmitx_set_datapacket;
|
||||
hdev->HWOp.SetAudioInfoFrame = hdmitx_setaudioinfoframe;
|
||||
hdev->HWOp.SetDispMode = hdmitx_set_dispmode;
|
||||
hdev->HWOp.SetAudMode = hdmitx_set_audmode;
|
||||
hdev->HWOp.SetupIRQ = hdmitx_setupirq;
|
||||
hdev->HWOp.DebugFun = hdmitx_debug;
|
||||
hdev->HWOp.UnInit = hdmitx_uninit;
|
||||
hdev->HWOp.Cntl = hdmitx_cntl; /* todo */
|
||||
hdev->HWOp.CntlDDC = hdmitx_cntl_ddc;
|
||||
hdev->HWOp.GetState = hdmitx_get_state;
|
||||
hdev->HWOp.CntlPacket = hdmitx_cntl;
|
||||
hdev->HWOp.CntlConfig = hdmitx_cntl_config;
|
||||
hdev->HWOp.CntlMisc = hdmitx_cntl_misc;
|
||||
hdev->hwop.setpacket = hdmitx_set_packet;
|
||||
hdev->hwop.setdatapacket = hdmitx_set_datapacket;
|
||||
hdev->hwop.setaudioinfoframe = hdmitx_setaudioinfoframe;
|
||||
hdev->hwop.setdispmode = hdmitx_set_dispmode;
|
||||
hdev->hwop.setaudmode = hdmitx_set_audmode;
|
||||
hdev->hwop.setupirq = hdmitx_setupirq;
|
||||
hdev->hwop.debugfun = hdmitx_debug;
|
||||
hdev->hwop.uninit = hdmitx_uninit;
|
||||
hdev->hwop.cntl = hdmitx_cntl; /* todo */
|
||||
hdev->hwop.cntlddc = hdmitx_cntl_ddc;
|
||||
hdev->hwop.getstate = hdmitx_get_state;
|
||||
hdev->hwop.cntlpacket = hdmitx_cntl;
|
||||
hdev->hwop.cntlconfig = hdmitx_cntl_config;
|
||||
hdev->hwop.cntlmisc = hdmitx_cntl_misc;
|
||||
init_reg_map(hdev->chip_type);
|
||||
hdmi_hwp_init(hdev);
|
||||
hdmi_hwi_init(hdev);
|
||||
hdev->HWOp.CntlMisc(hdev, MISC_AVMUTE_OP, CLR_AVMUTE);
|
||||
hdev->hwop.cntlmisc(hdev, MISC_AVMUTE_OP, CLR_AVMUTE);
|
||||
}
|
||||
|
||||
static void hdmitx_phy_bandgap_en(struct hdmitx_dev *hdev)
|
||||
@@ -4172,8 +4172,8 @@ static void hdmitx_debug(struct hdmitx_dev *hdev, const char *buf)
|
||||
set_vmode_clk(hdev);
|
||||
return;
|
||||
} else if (strncmp(tmpbuf, "testedid", 8) == 0) {
|
||||
hdev->HWOp.CntlDDC(hdev, DDC_RESET_EDID, 0);
|
||||
hdev->HWOp.CntlDDC(hdev, DDC_EDID_READ_DATA, 0);
|
||||
hdev->hwop.cntlddc(hdev, DDC_RESET_EDID, 0);
|
||||
hdev->hwop.cntlddc(hdev, DDC_EDID_READ_DATA, 0);
|
||||
return;
|
||||
} else if (strncmp(tmpbuf, "bist", 4) == 0) {
|
||||
if (strncmp(tmpbuf + 4, "off", 3) == 0) {
|
||||
@@ -4221,7 +4221,7 @@ static void hdmitx_debug(struct hdmitx_dev *hdev, const char *buf)
|
||||
if (i == 2)
|
||||
pr_info("hdcp rslt = %d", hdmitx_hdcp_opr(2));
|
||||
if (i == 1)
|
||||
hdev->HWOp.CntlDDC(hdev, DDC_HDCP_OP, HDCP14_ON);
|
||||
hdev->hwop.cntlddc(hdev, DDC_HDCP_OP, HDCP14_ON);
|
||||
return;
|
||||
} else if (strncmp(tmpbuf, "chkfmt", 6) == 0) {
|
||||
check_detail_fmt();
|
||||
@@ -5161,7 +5161,7 @@ static int hdmitx_tmds_rxsense(void)
|
||||
hd_write_reg(P_HHI_HDMI_PHY_CNTL0, 0);
|
||||
break;
|
||||
}
|
||||
if (!(hdev->HWOp.CntlMisc(hdev, MISC_HPD_GPI_ST, 0)))
|
||||
if (!(hdev->hwop.cntlmisc(hdev, MISC_HPD_GPI_ST, 0)))
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
@@ -5812,7 +5812,7 @@ static void config_hdmi20_tx(enum hdmi_vic vic,
|
||||
|
||||
hdmitx_set_avi_colorimetry(para);
|
||||
if (hdev->hdr_color_feature == C_BT2020)
|
||||
hdev->HWOp.CntlConfig(hdev, CONF_AVI_BT2020, SET_AVI_BT2020);
|
||||
hdev->hwop.cntlconfig(hdev, CONF_AVI_BT2020, SET_AVI_BT2020);
|
||||
|
||||
data32 = 0;
|
||||
data32 |= (((0 == COLORRANGE_FUL) ? 1 : 0) << 2);
|
||||
@@ -5894,9 +5894,9 @@ static void config_hdmi20_tx(enum hdmi_vic vic,
|
||||
/* If RX support 2084 or hlg , and the hdr_src_feature is 2020
|
||||
* then enable HDR send out
|
||||
*/
|
||||
if ((hdev->RXCap.hdr_sup_eotf_smpte_st_2084 ||
|
||||
hdev->RXCap.hdr_sup_eotf_hlg) &&
|
||||
(hdev->hdr_color_feature == C_BT2020)) {
|
||||
if ((hdev->rxcap.hdr_sup_eotf_smpte_st_2084 ||
|
||||
hdev->rxcap.hdr_sup_eotf_hlg) &&
|
||||
(hdev->hdr_color_feature == C_BT2020)) {
|
||||
hdmitx_set_reg_bits(HDMITX_DWC_FC_DATAUTO3, 1, 6, 1);
|
||||
hdmitx_set_reg_bits(HDMITX_DWC_FC_PACKET_TX_EN, 1, 7, 1);
|
||||
} else {
|
||||
|
||||
@@ -126,6 +126,7 @@ struct rx_cap {
|
||||
unsigned char hdr_lum_max;
|
||||
unsigned char hdr_lum_avg;
|
||||
unsigned char hdr_lum_min;
|
||||
unsigned char hdr_rawdata[7];
|
||||
struct hdr_dynamic_struct hdr_dynamic_info[4];
|
||||
struct hdr10_plus_info hdr10plus_info;
|
||||
unsigned char IDManufacturerName[4];
|
||||
@@ -349,42 +350,42 @@ struct hdmitx_dev {
|
||||
unsigned int div40;
|
||||
unsigned int lstore;
|
||||
struct {
|
||||
void (*SetPacket)(int type, unsigned char *DB,
|
||||
unsigned char *HB);
|
||||
/* In original SetPacket, there are many policys, like
|
||||
void (*setpacket)(int type, unsigned char *DB,
|
||||
unsigned char *HB);
|
||||
/* In original setpacket, there are many policys, like
|
||||
* if ((DB[4] >> 4) == T3D_FRAME_PACKING)
|
||||
* Need a only pure data packet to call
|
||||
*/
|
||||
void (*SetDataPacket)(int type, unsigned char *DB,
|
||||
unsigned char *HB);
|
||||
void (*SetAudioInfoFrame)(unsigned char *AUD_DB,
|
||||
unsigned char *CHAN_STAT_BUF);
|
||||
int (*SetDispMode)(struct hdmitx_dev *hdmitx_device);
|
||||
int (*SetAudMode)(struct hdmitx_dev *hdmitx_device,
|
||||
struct hdmitx_audpara *audio_param);
|
||||
void (*SetupIRQ)(struct hdmitx_dev *hdmitx_device);
|
||||
void (*DebugFun)(struct hdmitx_dev *hdmitx_device,
|
||||
const char *buf);
|
||||
void (*UnInit)(struct hdmitx_dev *hdmitx_device);
|
||||
int (*CntlPower)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned int arg); /* Power control */
|
||||
void (*setdatapacket)(int type, unsigned char *DB,
|
||||
unsigned char *HB);
|
||||
void (*setaudioinfoframe)(unsigned char *AUD_DB,
|
||||
unsigned char *CHAN_STAT_BUF);
|
||||
int (*setdispmode)(struct hdmitx_dev *hdmitx_device);
|
||||
int (*setaudmode)(struct hdmitx_dev *hdmitx_device,
|
||||
struct hdmitx_audpara *audio_param);
|
||||
void (*setupirq)(struct hdmitx_dev *hdmitx_device);
|
||||
void (*debugfun)(struct hdmitx_dev *hdmitx_device,
|
||||
const char *buf);
|
||||
void (*uninit)(struct hdmitx_dev *hdmitx_device);
|
||||
int (*cntlpower)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned int arg);
|
||||
/* edid/hdcp control */
|
||||
int (*CntlDDC)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
int (*cntlddc)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
/* Audio/Video/System Status */
|
||||
int (*GetState)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned int arg);
|
||||
int (*CntlPacket)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd,
|
||||
unsigned int arg); /* Packet control */
|
||||
int (*CntlConfig)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd,
|
||||
unsigned int arg); /* Configure control */
|
||||
int (*CntlMisc)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned int arg); /* Other control */
|
||||
int (*Cntl)(struct hdmitx_dev *hdmitx_device, unsigned int cmd,
|
||||
unsigned int arg); /* Other control */
|
||||
} HWOp;
|
||||
int (*getstate)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned int arg);
|
||||
int (*cntlpacket)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd,
|
||||
unsigned int arg); /* Packet control */
|
||||
int (*cntlconfig)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd,
|
||||
unsigned int arg); /* Configure control */
|
||||
int (*cntlmisc)(struct hdmitx_dev *hdmitx_device,
|
||||
unsigned int cmd, unsigned int arg);
|
||||
int (*cntl)(struct hdmitx_dev *hdmitx_device, unsigned int cmd,
|
||||
unsigned int arg); /* Other control */
|
||||
} hwop;
|
||||
struct {
|
||||
unsigned int hdcp14_en;
|
||||
unsigned int hdcp14_rslt;
|
||||
@@ -401,7 +402,7 @@ struct hdmitx_dev {
|
||||
unsigned char *edid_ptr;
|
||||
unsigned int edid_parsing; /* Indicator that RX edid data integrated */
|
||||
unsigned char EDID_hash[20];
|
||||
struct rx_cap RXCap;
|
||||
struct rx_cap rxcap;
|
||||
struct hdmitx_vidpara *cur_video_param;
|
||||
int vic_count;
|
||||
struct hdmitx_clk_tree_s hdmitx_clk_tree;
|
||||
@@ -467,6 +468,7 @@ struct hdmitx_dev {
|
||||
unsigned int hdmi_current_hdr_mode;
|
||||
unsigned int dv_src_feature;
|
||||
unsigned int sdr_hdr_feature;
|
||||
unsigned int hdr10plus_feature;
|
||||
enum eotf_type hdmi_current_eotf_type;
|
||||
enum mode_type hdmi_current_tunnel_mode;
|
||||
unsigned int flag_3dfp:1;
|
||||
@@ -485,7 +487,7 @@ struct hdmitx_dev {
|
||||
#define CMD_STAT_OFFSET (0x15 << 24)
|
||||
|
||||
/***********************************************************************
|
||||
* DDC CONTROL //CntlDDC
|
||||
* DDC CONTROL //cntlddc
|
||||
**********************************************************************/
|
||||
#define DDC_RESET_EDID (CMD_DDC_OFFSET + 0x00)
|
||||
#define DDC_RESET_HDCP (CMD_DDC_OFFSET + 0x01)
|
||||
@@ -515,7 +517,7 @@ struct hdmitx_dev {
|
||||
#define DDC_HDCP14_SAVE_OBS (CMD_DDC_OFFSET + 0x40)
|
||||
|
||||
/***********************************************************************
|
||||
* CONFIG CONTROL //CntlConfig
|
||||
* CONFIG CONTROL //cntlconfig
|
||||
**********************************************************************/
|
||||
/* Video part */
|
||||
#define CONF_HDMI_DVI_MODE (CMD_CONF_OFFSET + 0x02)
|
||||
@@ -560,7 +562,7 @@ struct hdmitx_dev {
|
||||
#define CONF_CLR_AUDINFO_PACKET (CMD_CONF_OFFSET + 0x1000 + 0x01)
|
||||
|
||||
/***********************************************************************
|
||||
* MISC control, hpd, hpll //CntlMisc
|
||||
* MISC control, hpd, hpll //cntlmisc
|
||||
**********************************************************************/
|
||||
#define MISC_HPD_MUX_OP (CMD_MISC_OFFSET + 0x00)
|
||||
#define MISC_HPD_GPI_ST (CMD_MISC_OFFSET + 0x02)
|
||||
@@ -596,7 +598,7 @@ struct hdmitx_dev {
|
||||
#define MISC_TRIGGER_HPD (CMD_MISC_OFFSET + 0X14)
|
||||
|
||||
/***********************************************************************
|
||||
* Get State //GetState
|
||||
* Get State //getstate
|
||||
**********************************************************************/
|
||||
#define STAT_VIDEO_VIC (CMD_STAT_OFFSET + 0x00)
|
||||
#define STAT_VIDEO_CLK (CMD_STAT_OFFSET + 0x01)
|
||||
|
||||
@@ -151,6 +151,10 @@ enum mode_type {
|
||||
|
||||
#define DV_IEEE_OUI 0x00D046
|
||||
#define HDR10_PLUS_IEEE_OUI 0x90848B
|
||||
#define HDR10_PLUS_DISABLE_VSIF 0
|
||||
#define HDR10_PLUS_ENABLE_VSIF 1
|
||||
#define HDR10_PLUS_ZERO_VSIF 2
|
||||
|
||||
|
||||
/* Dolby Version VSIF parameter*/
|
||||
struct dv_vsif_para {
|
||||
|
||||
Reference in New Issue
Block a user