summaryrefslogtreecommitdiff
authoryicheng shen <yicheng.shen@amlogic.com>2019-06-13 02:04:23 (GMT)
committer Yicheng Shen <yicheng.shen@amlogic.com>2019-06-13 08:46:05 (GMT)
commitbe00d3acdc8fb3250e54d74772018a6ab8ee7d6e (patch)
treebebfdcee8b24f5c4c48752108c55237c569ee3d1
parent1dad21a0f46698bf233d9a614e774d65c52beb88 (diff)
downloadcommon-be00d3acdc8fb3250e54d74772018a6ab8ee7d6e.zip
common-be00d3acdc8fb3250e54d74772018a6ab8ee7d6e.tar.gz
common-be00d3acdc8fb3250e54d74772018a6ab8ee7d6e.tar.bz2
hdmitx: fix hdmitx panic issue [1/2]
PD#OTT-4073 Problem: clk_vapb/clk_vpu init cause kernel panic Solution: Remove clk_vapb/clk_vpu init,as kernel 4.9 uses clk tree to config the clk. Verify: 962X2 Change-Id: I821b110cf0bd2f96e288deb58a16eecc81742453 Signed-off-by: yicheng shen <yicheng.shen@amlogic.com>
Diffstat
-rw-r--r--drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c11
-rw-r--r--include/linux/amlogic/media/vout/hdmi_tx/hdmi_tx_module.h2
2 files changed, 8 insertions, 5 deletions
diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
index a41571f..dc51e78 100644
--- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
+++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
@@ -129,11 +129,13 @@ static void hdmitx_early_suspend(struct early_suspend *h)
extcon_set_state_sync(hdmitx_extcon_power, EXTCON_DISP_HDMI, 0);
phdmi->HWOp.CntlConfig(&hdmitx_device, CONF_CLR_AVI_PACKET, 0);
phdmi->HWOp.CntlConfig(&hdmitx_device, CONF_CLR_VSDB_PACKET, 0);
+ #if 0
/*close vpu clk*/
if (phdmi->hdmitx_clk_tree.hdmi_clk_vapb != NULL)
clk_disable_unprepare(phdmi->hdmitx_clk_tree.hdmi_clk_vapb);
if (phdmi->hdmitx_clk_tree.hdmi_clk_vpu != NULL)
clk_disable_unprepare(phdmi->hdmitx_clk_tree.hdmi_clk_vpu);
+ #endif
}
static int hdmitx_is_hdmi_vmode(char *mode_name)
@@ -151,13 +153,14 @@ static void hdmitx_late_resume(struct early_suspend *h)
const struct vinfo_s *info = hdmitx_get_current_vinfo();
struct hdmitx_dev *phdmi = (struct hdmitx_dev *)h->param;
+#if 0
/*open vpu clk*/
if (phdmi->hdmitx_clk_tree.hdmi_clk_vapb != NULL)
clk_prepare_enable(phdmi->hdmitx_clk_tree.hdmi_clk_vapb);
if (phdmi->hdmitx_clk_tree.hdmi_clk_vpu != NULL)
clk_prepare_enable(phdmi->hdmitx_clk_tree.hdmi_clk_vpu);
-
+#endif
if (info && (hdmitx_is_hdmi_vmode(info->name) == 1))
phdmi->HWOp.CntlMisc(&hdmitx_device, MISC_HPLL_FAKE, 0);
@@ -3682,10 +3685,11 @@ static int amhdmitx_get_dt_info(struct platform_device *pdev)
*/
static void amhdmitx_clktree_probe(struct device *hdmitx_dev)
{
- struct clk *hdmi_clk_vapb, *hdmi_clk_vpu;
+ /* struct clk *hdmi_clk_vapb, *hdmi_clk_vpu; */
struct clk *hdcp22_tx_skp, *hdcp22_tx_esm;
struct clk *venci_top_gate, *venci_0_gate, *venci_1_gate;
+ #if 0
hdmi_clk_vapb = devm_clk_get(hdmitx_dev, "hdmi_vapb_clk");
if (IS_ERR(hdmi_clk_vapb))
pr_warn(SYS "vapb_clk failed to probe\n");
@@ -3693,7 +3697,6 @@ static void amhdmitx_clktree_probe(struct device *hdmitx_dev)
hdmitx_device.hdmitx_clk_tree.hdmi_clk_vapb = hdmi_clk_vapb;
clk_prepare_enable(hdmitx_device.hdmitx_clk_tree.hdmi_clk_vapb);
}
-
hdmi_clk_vpu = devm_clk_get(hdmitx_dev, "hdmi_vpu_clk");
if (IS_ERR(hdmi_clk_vpu))
pr_warn(SYS "vpu_clk failed to probe\n");
@@ -3701,7 +3704,7 @@ static void amhdmitx_clktree_probe(struct device *hdmitx_dev)
hdmitx_device.hdmitx_clk_tree.hdmi_clk_vpu = hdmi_clk_vpu;
clk_prepare_enable(hdmitx_device.hdmitx_clk_tree.hdmi_clk_vpu);
}
-
+ #endif
hdcp22_tx_skp = devm_clk_get(hdmitx_dev, "hdcp22_tx_skp");
if (IS_ERR(hdcp22_tx_skp))
pr_warn(SYS "hdcp22_tx_skp failed to probe\n");
diff --git a/include/linux/amlogic/media/vout/hdmi_tx/hdmi_tx_module.h b/include/linux/amlogic/media/vout/hdmi_tx/hdmi_tx_module.h
index ea3d76c..775f6e1 100644
--- a/include/linux/amlogic/media/vout/hdmi_tx/hdmi_tx_module.h
+++ b/include/linux/amlogic/media/vout/hdmi_tx/hdmi_tx_module.h
@@ -27,7 +27,7 @@
#include <linux/pinctrl/consumer.h>
/* HDMITX driver version */
-#define HDMITX_VER "20180702"
+#define HDMITX_VER "20190613"
/* chip type */
#define MESON_CPU_ID_M8B 0