Loading drivers/video/fbdev/msm/mdss_hdmi_edid.c +5 −3 Original line number Diff line number Diff line /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017,2019-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -192,8 +192,10 @@ static bool hdmi_edid_is_mode_supported(struct hdmi_edid_ctrl *edid_ctrl, return true; } static int hdmi_edid_reset_parser(struct hdmi_edid_ctrl *edid_ctrl) int hdmi_edid_reset_parser(void *input) { struct hdmi_edid_ctrl *edid_ctrl = (struct hdmi_edid_ctrl *)input; if (!edid_ctrl) { DEV_ERR("%s: invalid input\n", __func__); return -EINVAL; Loading Loading @@ -2445,7 +2447,7 @@ int hdmi_edid_parser(void *input) } /* reset edid data for new hdmi connection */ hdmi_edid_reset_parser(edid_ctrl); hdmi_edid_reset_parser(input); edid_buf = edid_ctrl->edid_buf; Loading drivers/video/fbdev/msm/mdss_hdmi_edid.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017,2019-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -69,6 +69,7 @@ struct hdmi_edid_override_data { }; int hdmi_edid_parser(void *edid_ctrl); int hdmi_edid_reset_parser(void *edid_ctrl); u32 hdmi_edid_get_raw_data(void *edid_ctrl, u8 *buf, u32 size); u8 hdmi_edid_get_sink_scaninfo(void *edid_ctrl, u32 resolution); bool hdmi_edid_is_dvi_mode(void *input); Loading drivers/video/fbdev/msm/mdss_hdmi_panel.c +9 −0 Original line number Diff line number Diff line Loading @@ -797,6 +797,15 @@ static int hdmi_panel_setup_scrambler(struct hdmi_panel *panel) rc = hdmi_setup_ddc_timers(panel->ddc, HDMI_TX_DDC_TIMER_SCRAMBLER_STATUS, timeout_hsync); } else { tmds_clock_ratio = 0; rc = hdmi_scdc_write(panel->ddc, HDMI_TX_SCDC_TMDS_BIT_CLOCK_RATIO_UPDATE, tmds_clock_ratio); if (rc) { pr_err("TMDS CLK RATIO ERR\n"); return rc; } hdmi_scdc_write(panel->ddc, HDMI_TX_SCDC_SCRAMBLING_ENABLE, 0x0); Loading drivers/video/fbdev/msm/mdss_hdmi_tx.c +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017,2019-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -3517,6 +3517,8 @@ static void hdmi_tx_hpd_off(struct hdmi_tx_ctrl *hdmi_ctrl) hdmi_ctrl->hpd_off_pending = false; hdmi_ctrl->dc_support = false; hdmi_edid_reset_parser(hdmi_tx_get_fd(HDMI_TX_FEAT_EDID)); DEV_DBG("%s: HPD is now OFF\n", __func__); } /* hdmi_tx_hpd_off */ Loading Loading
drivers/video/fbdev/msm/mdss_hdmi_edid.c +5 −3 Original line number Diff line number Diff line /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017,2019-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -192,8 +192,10 @@ static bool hdmi_edid_is_mode_supported(struct hdmi_edid_ctrl *edid_ctrl, return true; } static int hdmi_edid_reset_parser(struct hdmi_edid_ctrl *edid_ctrl) int hdmi_edid_reset_parser(void *input) { struct hdmi_edid_ctrl *edid_ctrl = (struct hdmi_edid_ctrl *)input; if (!edid_ctrl) { DEV_ERR("%s: invalid input\n", __func__); return -EINVAL; Loading Loading @@ -2445,7 +2447,7 @@ int hdmi_edid_parser(void *input) } /* reset edid data for new hdmi connection */ hdmi_edid_reset_parser(edid_ctrl); hdmi_edid_reset_parser(input); edid_buf = edid_ctrl->edid_buf; Loading
drivers/video/fbdev/msm/mdss_hdmi_edid.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017,2019-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -69,6 +69,7 @@ struct hdmi_edid_override_data { }; int hdmi_edid_parser(void *edid_ctrl); int hdmi_edid_reset_parser(void *edid_ctrl); u32 hdmi_edid_get_raw_data(void *edid_ctrl, u8 *buf, u32 size); u8 hdmi_edid_get_sink_scaninfo(void *edid_ctrl, u32 resolution); bool hdmi_edid_is_dvi_mode(void *input); Loading
drivers/video/fbdev/msm/mdss_hdmi_panel.c +9 −0 Original line number Diff line number Diff line Loading @@ -797,6 +797,15 @@ static int hdmi_panel_setup_scrambler(struct hdmi_panel *panel) rc = hdmi_setup_ddc_timers(panel->ddc, HDMI_TX_DDC_TIMER_SCRAMBLER_STATUS, timeout_hsync); } else { tmds_clock_ratio = 0; rc = hdmi_scdc_write(panel->ddc, HDMI_TX_SCDC_TMDS_BIT_CLOCK_RATIO_UPDATE, tmds_clock_ratio); if (rc) { pr_err("TMDS CLK RATIO ERR\n"); return rc; } hdmi_scdc_write(panel->ddc, HDMI_TX_SCDC_SCRAMBLING_ENABLE, 0x0); Loading
drivers/video/fbdev/msm/mdss_hdmi_tx.c +3 −1 Original line number Diff line number Diff line /* Copyright (c) 2010-2020, The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2017,2019-2020, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -3517,6 +3517,8 @@ static void hdmi_tx_hpd_off(struct hdmi_tx_ctrl *hdmi_ctrl) hdmi_ctrl->hpd_off_pending = false; hdmi_ctrl->dc_support = false; hdmi_edid_reset_parser(hdmi_tx_get_fd(HDMI_TX_FEAT_EDID)); DEV_DBG("%s: HPD is now OFF\n", __func__); } /* hdmi_tx_hpd_off */ Loading