mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
hdmitx: add dolby debug info
PD#164913: hdmitx: add dolby debug info Add dolby debug info. Change-Id: I65156223b66bcb95c31e8b60a602f834bacf89f2 Signed-off-by: Kaifu Hu <kaifu.hu@amlogic.com>
This commit is contained in:
@@ -1197,6 +1197,9 @@ static void hdmitx_set_vsif_pkt(enum eotf_type type,
|
||||
pr_info("hdmitx: not support DolbyVision\n");
|
||||
return;
|
||||
}
|
||||
|
||||
hdev->hdmi_current_eotf_type = type;
|
||||
hdev->hdmi_current_tunnel_mode = tunnel_mode;
|
||||
/*ver0 and ver1_15 and ver1_12bit with ll= 0 use hdmi 1.4b VSIF*/
|
||||
if ((hdev->RXCap.dv_info.ver == 0) || ((hdev->RXCap.dv_info.ver == 1)
|
||||
&& (hdev->RXCap.dv_info.length == 0xE))
|
||||
|
||||
@@ -2708,6 +2708,57 @@ static void hdmitx_dump_drm_reg(void)
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
}
|
||||
|
||||
static void hdmitx_dump_vsif_reg(void)
|
||||
{
|
||||
unsigned int reg_val;
|
||||
unsigned int reg_addr;
|
||||
|
||||
for (reg_addr = HDMITX_DWC_FC_VSDIEEEID0;
|
||||
reg_addr <= HDMITX_DWC_FC_VSDPAYLOAD23; reg_addr++) {
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
}
|
||||
reg_addr = HDMITX_DWC_FC_DATAUTO0;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_PACKET_TX_EN;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
}
|
||||
|
||||
static void hdmitx_dump_avi_reg(void)
|
||||
{
|
||||
unsigned int reg_val;
|
||||
unsigned int reg_addr;
|
||||
|
||||
pr_info("hdmitx avi info reg config\n");
|
||||
|
||||
reg_addr = HDMITX_DWC_FC_AVICONF0;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_AVICONF1;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_AVICONF2;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_AVIVID;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_AVICONF3;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_PRCONF;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_DATAUTO3;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
reg_addr = HDMITX_DWC_FC_PACKET_TX_EN;
|
||||
reg_val = hdmitx_rd_reg(reg_addr);
|
||||
pr_info("[0x%x]: 0x%x\n", reg_addr, reg_val);
|
||||
}
|
||||
|
||||
static void hdmitx_debug(struct hdmitx_dev *hdev, const char *buf)
|
||||
{
|
||||
char tmpbuf[128];
|
||||
@@ -2962,6 +3013,18 @@ static void hdmitx_debug(struct hdmitx_dev *hdev, const char *buf)
|
||||
hdev->hdmi_last_hdr_mode);
|
||||
hdmitx_dump_drm_reg();
|
||||
return;
|
||||
} else if (strncmp(tmpbuf, "dv_info", 7) == 0) {
|
||||
pr_info("hdev->hdmi_current_eotf_type: 0x%x\n",
|
||||
hdev->hdmi_current_eotf_type);
|
||||
pr_info("hdev->hdmi_current_tunnel_mode: 0x%x\n",
|
||||
hdev->hdmi_current_tunnel_mode);
|
||||
pr_info("hdev->dv_src_feature: %d\n",
|
||||
hdev->dv_src_feature);
|
||||
hdmitx_dump_vsif_reg();
|
||||
return;
|
||||
} else if (strncmp(tmpbuf, "avi_info", 8) == 0) {
|
||||
hdmitx_dump_avi_reg();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -363,6 +363,8 @@ struct hdmitx_dev {
|
||||
unsigned int hdmi_current_hdr_mode;
|
||||
unsigned int dv_src_feature;
|
||||
unsigned int sdr_hdr_feature;
|
||||
enum eotf_type hdmi_current_eotf_type;
|
||||
enum mode_type hdmi_current_tunnel_mode;
|
||||
unsigned int flag_3dfp:1;
|
||||
unsigned int flag_3dtb:1;
|
||||
unsigned int flag_3dss:1;
|
||||
|
||||
Reference in New Issue
Block a user