summaryrefslogtreecommitdiff
authorZongdong Jiao <zongdong.jiao@amlogic.com>2018-11-01 08:29:04 (GMT)
committer Zongdong Jiao <zongdong.jiao@amlogic.com>2018-11-01 08:49:48 (GMT)
commitc6f5b730578307dbfb146195c68d99957abc6adc (patch)
tree3343f00974e1eed05bf14c70736e0e6f501c15c7
parent812222a3570125bb28a565cace8d2d3ac8db4b63 (diff)
downloadcommon-c6f5b730578307dbfb146195c68d99957abc6adc.zip
common-c6f5b730578307dbfb146195c68d99957abc6adc.tar.gz
common-c6f5b730578307dbfb146195c68d99957abc6adc.tar.bz2
hdmitx: fix wrong power uevent in suspend/resume [1/1]
PD#TBD Problem: Wrong hdmi_power uevent in suspend/resume flow Solution: Remove current mode judgement Verify: TBD Change-Id: Ib36e8d6cb4988f7b2be91146b12e974c194526ca Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
Diffstat
-rw-r--r--drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c63
1 files changed, 23 insertions, 40 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 d84d41f..9dc4e91 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
@@ -113,13 +113,8 @@ static inline void hdmitx_notify_hpd(int hpd)
#include <linux/amlogic/pm.h>
static void hdmitx_early_suspend(struct early_suspend *h)
{
- const struct vinfo_s *info = hdmitx_get_current_vinfo();
struct hdmitx_dev *phdmi = (struct hdmitx_dev *)h->param;
- if (info && (strncmp(info->name, "panel", 5) == 0
- || strncmp(info->name, "null", 4) == 0))
- return;
-
phdmi->hpd_lock = 1;
msleep(20);
phdmi->HWOp.CntlMisc(phdmi, MISC_AVMUTE_OP, SET_AVMUTE);
@@ -163,48 +158,36 @@ static void hdmitx_late_resume(struct early_suspend *h)
if (phdmi->hdmitx_clk_tree.hdmi_clk_vpu != NULL)
clk_prepare_enable(phdmi->hdmitx_clk_tree.hdmi_clk_vpu);
- if ((info == NULL) || (info->name == NULL)) {
- pr_info(SYS "vinfo is NULL\n");
- return;
- }
-
- if (strncmp(info->name, "panel", 5) == 0 ||
- strncmp(info->name, "null", 4) == 0) {
- ;
- } else {
- if (hdmitx_is_hdmi_vmode(info->name) == 1)
- phdmi->HWOp.CntlMisc(&hdmitx_device, MISC_HPLL_FAKE, 0);
+ if (hdmitx_is_hdmi_vmode(info->name) == 1)
+ phdmi->HWOp.CntlMisc(&hdmitx_device, MISC_HPLL_FAKE, 0);
- phdmi->hpd_lock = 0;
+ phdmi->hpd_lock = 0;
- /* update status for hpd and switch/state */
- hdmitx_device.hpd_state =
- !!(hdmitx_device.HWOp.CntlMisc(&hdmitx_device,
+ /* update status for hpd and switch/state */
+ hdmitx_device.hpd_state = !!(hdmitx_device.HWOp.CntlMisc(&hdmitx_device,
MISC_HPD_GPI_ST, 0));
- pr_info("hdmitx hpd state: %d\n", hdmitx_device.hpd_state);
- hdmitx_notify_hpd(hdmitx_device.hpd_state);
+ pr_info("hdmitx hpd state: %d\n", hdmitx_device.hpd_state);
+ hdmitx_notify_hpd(hdmitx_device.hpd_state);
- /*force to get EDID after resume for Amplifer Power case*/
- if (hdmitx_device.hpd_state)
- hdmitx_get_edid(phdmi);
+ /*force to get EDID after resume for Amplifer Power case*/
+ if (hdmitx_device.hpd_state)
+ hdmitx_get_edid(phdmi);
- hdmitx_device.HWOp.CntlConfig(&hdmitx_device,
- CONF_AUDIO_MUTE_OP, AUDIO_MUTE);
- set_disp_mode_auto();
+ hdmitx_device.HWOp.CntlConfig(&hdmitx_device,
+ CONF_AUDIO_MUTE_OP, AUDIO_MUTE);
+ set_disp_mode_auto();
- extcon_set_state_sync(hdmitx_extcon_hdmi, EXTCON_DISP_HDMI,
- hdmitx_device.hpd_state);
- extcon_set_state_sync(hdmitx_extcon_power, EXTCON_DISP_HDMI,
- hdmitx_device.hpd_state);
- extcon_set_state_sync(hdmitx_extcon_audio, EXTCON_DISP_HDMI,
- hdmitx_device.hpd_state);
-
- pr_info("amhdmitx: late resume module %d\n", __LINE__);
- phdmi->HWOp.Cntl((struct hdmitx_dev *)h->param,
- HDMITX_EARLY_SUSPEND_RESUME_CNTL, HDMITX_LATE_RESUME);
- pr_info(SYS "late resume\n");
- }
+ extcon_set_state_sync(hdmitx_extcon_hdmi, EXTCON_DISP_HDMI,
+ hdmitx_device.hpd_state);
+ extcon_set_state_sync(hdmitx_extcon_power, EXTCON_DISP_HDMI, 1);
+ extcon_set_state_sync(hdmitx_extcon_audio, EXTCON_DISP_HDMI,
+ hdmitx_device.hpd_state);
+
+ pr_info("amhdmitx: late resume module %d\n", __LINE__);
+ phdmi->HWOp.Cntl((struct hdmitx_dev *)h->param,
+ HDMITX_EARLY_SUSPEND_RESUME_CNTL, HDMITX_LATE_RESUME);
+ pr_info(SYS "late resume\n");
}
/* Set avmute_set signal to HDMIRX */