compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
amlvideo2_0 {
0xff610000 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
};
-&amhdmitx {
- status = "okay";
-};
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
hdmirx {
0xff610000 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
amlvideo2_0 {
0xff610000 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
hdmirx {
0xff610000 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
amlvideo2_0 {
0xff610000 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
amlvideo2_0 {
0x0 0xff610000 0x0 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
};
-&amhdmitx {
- status = "okay";
-};
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
hdmirx {
0x0 0xff610000 0x0 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
&efuse {
status = "okay";
};
-
-&amhdmitx {
- status = "okay";
-};
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
amlvideo2_0 {
0x0 0xff610000 0x0 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
hdmirx {
0x0 0xff610000 0x0 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
compatible = "amlogic, unifykey";
status = "okay";
- unifykey-num = <21>;
+ unifykey-num = <24>;
unifykey-index-0 = <&keysn_0>;
unifykey-index-1 = <&keysn_1>;
unifykey-index-2 = <&keysn_2>;
unifykey-index-18 = <&keysn_18>;
unifykey-index-19 = <&keysn_19>;
unifykey-index-20 = <&keysn_20>;
+ unifykey-index-21 = <&keysn_21>;
+ unifykey-index-22 = <&keysn_22>;
+ unifykey-index-23 = <&keysn_23>;
keysn_0: key_0{
key-name = "usid";
key-device = "secure";
key-permit = "read","write","del";
};
+ keysn_21:key_21{
+ key-name = "hdcp22_rprx_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_22:key_22{
+ key-name = "hdcp22_rprp_fw";
+ key-device = "normal";
+ key-permit = "read","write","del";
+ };
+ keysn_23:key_23{
+ key-name = "hdcp22_rp_private";
+ key-device = "secure";
+ key-permit = "read","write","del";
+ };
}; /* End unifykey */
amlvideo2_0 {
0x0 0xff610000 0x0 0xa000>;
};
+ amhdmitx: amhdmitx {
+ compatible = "amlogic, amhdmitx";
+ dev_name = "amhdmitx";
+ status = "okay";
+ repeater_tx = <0x0>;
+ };
+
aocec: aocec {
compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
#include "hdmi_rx_edid.h"
-#define RX_VER0 "ver.2019-08-08"
+#define RX_VER0 "ver.2019-09-02"
/*
*
*
*/
void hdcp_22_off(void)
{
- hdcp22_clk_en(0);
/* note: can't pull down hpd before enter suspend */
/* it will stop cec wake up func if EE domain still working */
/* rx_set_cur_hpd(0); */
hdmirx_hdcp22_esm_rst();
else
hdcp22_kill_esm = 0;
+ hdcp22_clk_en(0);
rx_pr("hdcp22 off\n");
}
extcon_set_state_sync(rx.rx_excton_rx22,
EXTCON_DISP_HDMI, 1);
mdelay(100);
- hdmirx_hw_config();
hdmi_rx_top_edid_update();
+ hdmirx_hw_config();
hpd_to_esm = 1;
/* mdelay(900); */
rx_set_cur_hpd(1);
void rx_debug_loadkey(void)
{
rx_pr("load hdcp key\n");
- hdmirx_hw_config();
hdmi_rx_top_edid_update();
+ hdmirx_hw_config();
pre_port = 0xfe;
}
void rx_set_repeater_support(bool enable)
{
downstream_repeat_support = enable;
+ rx_pr("****************=%d\n", downstream_repeat_support);
}
EXPORT_SYMBOL(rx_set_repeater_support);
/* to inform ESM whether the cable is connected or not */
bool hpd_to_esm;
+MODULE_PARM_DESC(hpd_to_esm, "\n hpd_to_esm\n");
+module_param(hpd_to_esm, bool, 0664);
bool hdcp22_kill_esm;
MODULE_PARM_DESC(hdcp22_kill_esm, "\n hdcp22_kill_esm\n");
module_param(hdcp22_kill_esm, bool, 0664);
+bool hdcp_mode_sel;
+MODULE_PARM_DESC(hdcp_mode_sel, "\n hdcp_mode_sel\n");
+module_param(hdcp_mode_sel, bool, 0664);
+
static int hdcp22_capable_sts = 0xff;
bool esm_auth_fail_en;
+MODULE_PARM_DESC(esm_auth_fail_en, "\n esm_auth_fail_en\n");
+module_param(esm_auth_fail_en, bool, 0664);
/* to inform hdcp_rx22 whether there's any device connected */
bool pwr_sts_to_esm;
/*the esm reset flag for hdcp_rx22*/
bool esm_reset_flag;
+MODULE_PARM_DESC(esm_reset_flag, "\n esm_reset_flag\n");
+module_param(esm_reset_flag, bool, 0664);
/* to inform ESM whether the cable is connected or not */
bool video_stable_to_esm;
+MODULE_PARM_DESC(video_stable_to_esm, "\n video_stable_to_esm\n");
+module_param(video_stable_to_esm, bool, 0664);
bool enable_hdcp22_esm_log;
+MODULE_PARM_DESC(enable_hdcp22_esm_log, "\n enable_hdcp22_esm_log\n");
+module_param(enable_hdcp22_esm_log, bool, 0664);
bool esm_error_flag;
+MODULE_PARM_DESC(esm_error_flag, "\n esm_error_flag\n");
+module_param(esm_error_flag, bool, 0664);
bool hdcp22_esm_reset2;
+MODULE_PARM_DESC(hdcp22_esm_reset2, "\n hdcp22_esm_reset2\n");
+module_param(hdcp22_esm_reset2, bool, 0664);
bool hdcp22_stop_auth;
+module_param(hdcp22_stop_auth, bool, 0664);
+MODULE_PARM_DESC(hdcp22_stop_auth, "hdcp22_stop_auth");
int hdcp14_on;
MODULE_PARM_DESC(hdcp14_on, "\n hdcp14_on\n");
/*esm recovery mode for changing resolution & hdmi2.0*/
int esm_recovery_mode = ESM_REC_MODE_TMDS;
+module_param(esm_recovery_mode, int, 0664);
+MODULE_PARM_DESC(esm_recovery_mode, "esm_recovery_mode");
int phy_retry_times = 1;
/* No need to judge frame rate while checking timing stable,as there are
/* hdmi_rx_top_edid_update(); */
set_scdc_cfg(1, 0);
vic_check_en = false;
- dvi_check_en = true;
+ /* dvi_check_en = true; */
rx.state = FSM_INIT;
rx.phy.cable_clk = 0;
rx.phy.pll_rate = 0;
//rx.no_signal = false;
//rx.wait_no_sig_cnt = 0;
vic_check_en = false;
- dvi_check_en = true;
+ /* dvi_check_en = true; */
if (hdmirx_repeat_support())
rx.hdcp.repeat = repeat_plug;
else
rx.state = FSM_HPD_LOW;
rx_set_cur_hpd(0);
/* need reset the whole module when switch port */
- hdmirx_hw_config();
wait_ddc_idle();
hdmi_rx_top_edid_update();
+ hdmirx_hw_config();
} else {
if (rx.state >= FSM_SIG_STABLE)
rx.state = FSM_SIG_STABLE;
*/
if (fmt_vic_abnormal()) {
if (vic_check_en) {
- hdmirx_hw_config();
hdmi_rx_top_edid_update();
+ hdmirx_hw_config();
rx.state = FSM_HPD_LOW;
} else {
rx.state = FSM_WAIT_CLK_STABLE;