summaryrefslogtreecommitdiff
authorXiaoliang Wang <xiaoliang.wang@amlogic.com>2018-11-08 05:48:49 (GMT)
committer Gerrit Code Review <gituser@droid04>2018-11-08 05:48:49 (GMT)
commitb79a217014a483f5516356f18643ed3575aab1ce (patch)
treec36c85d46ea9140706997e2cd1a6edda9c103091
parentb1d0d24848288b20c7ded9f2572b9cc8bde25f1f (diff)
parentc6f5b730578307dbfb146195c68d99957abc6adc (diff)
downloadcommon-b79a217014a483f5516356f18643ed3575aab1ce.zip
common-b79a217014a483f5516356f18643ed3575aab1ce.tar.gz
common-b79a217014a483f5516356f18643ed3575aab1ce.tar.bz2
Merge "hdmitx: fix wrong power uevent in suspend/resume [1/1]" into p-amlogic
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 */