author | Zongdong 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) |
commit | c6f5b730578307dbfb146195c68d99957abc6adc (patch) | |
tree | 3343f00974e1eed05bf14c70736e0e6f501c15c7 | |
parent | 812222a3570125bb28a565cace8d2d3ac8db4b63 (diff) | |
download | common-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>
-rw-r--r-- | drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c | 63 |
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 */ |