Loading drivers/gpu/drm/msm/dp/dp_aux.c +4 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2018, 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 @@ -608,6 +608,8 @@ static void dp_aux_init(struct dp_aux *dp_aux, struct dp_aux_cfg *aux_cfg) aux->catalog->enable(aux->catalog, true); atomic_set(&aux->aborted, 0); aux->retry_cnt = 0; drm_dp_cec_register_connector(&aux->drm_aux, "sde_dp_cec", aux->dev); } static void dp_aux_deinit(struct dp_aux *dp_aux) Loading @@ -623,6 +625,7 @@ static void dp_aux_deinit(struct dp_aux *dp_aux) atomic_set(&aux->aborted, 1); aux->catalog->enable(aux->catalog, false); drm_dp_cec_unregister_connector(&aux->drm_aux); } static int dp_aux_register(struct dp_aux *dp_aux) Loading drivers/gpu/drm/msm/dp/dp_link.c +3 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2018, 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 @@ -790,6 +790,8 @@ static int dp_link_parse_request(struct dp_link_private *link) pr_debug("device service irq vector = 0x%x\n", data); drm_dp_cec_irq(link->aux->drm_aux); if (!(data & DP_AUTOMATED_TEST_REQUEST)) { pr_debug("no test requested\n"); return 0; Loading drivers/gpu/drm/msm/dp/dp_panel.c +9 −1 Original line number Diff line number Diff line Loading @@ -458,6 +458,7 @@ static int dp_panel_get_modes(struct dp_panel *dp_panel, struct drm_connector *connector, struct dp_display_mode *mode) { struct dp_panel_private *panel; int rc = 0; if (!dp_panel) { pr_err("invalid input\n"); Loading @@ -470,12 +471,18 @@ static int dp_panel_get_modes(struct dp_panel *dp_panel, dp_panel_set_test_mode(panel, mode); return 1; } else if (dp_panel->edid_ctrl->edid) { return _sde_edid_update_modes(connector, dp_panel->edid_ctrl); rc = _sde_edid_update_modes(connector, dp_panel->edid_ctrl); } else { /* fail-safe mode */ memcpy(&mode->timing, &fail_safe, sizeof(fail_safe)); return 1; } if (rc) drm_dp_cec_set_edid(panel->aux->drm_aux, dp_panel->edid_ctrl->edid); return rc; } static void dp_panel_handle_sink_request(struct dp_panel *dp_panel) Loading Loading @@ -762,6 +769,7 @@ static int dp_panel_deinit_panel_info(struct dp_panel *dp_panel) panel = container_of(dp_panel, struct dp_panel_private, dp_panel); hdr = &panel->catalog->hdr_data; drm_dp_cec_unset_edid(panel->aux->drm_aux); if (!panel->custom_edid) sde_free_edid((void **)&dp_panel->edid_ctrl); Loading Loading
drivers/gpu/drm/msm/dp/dp_aux.c +4 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2018, 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 @@ -608,6 +608,8 @@ static void dp_aux_init(struct dp_aux *dp_aux, struct dp_aux_cfg *aux_cfg) aux->catalog->enable(aux->catalog, true); atomic_set(&aux->aborted, 0); aux->retry_cnt = 0; drm_dp_cec_register_connector(&aux->drm_aux, "sde_dp_cec", aux->dev); } static void dp_aux_deinit(struct dp_aux *dp_aux) Loading @@ -623,6 +625,7 @@ static void dp_aux_deinit(struct dp_aux *dp_aux) atomic_set(&aux->aborted, 1); aux->catalog->enable(aux->catalog, false); drm_dp_cec_unregister_connector(&aux->drm_aux); } static int dp_aux_register(struct dp_aux *dp_aux) Loading
drivers/gpu/drm/msm/dp/dp_link.c +3 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2018, 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 @@ -790,6 +790,8 @@ static int dp_link_parse_request(struct dp_link_private *link) pr_debug("device service irq vector = 0x%x\n", data); drm_dp_cec_irq(link->aux->drm_aux); if (!(data & DP_AUTOMATED_TEST_REQUEST)) { pr_debug("no test requested\n"); return 0; Loading
drivers/gpu/drm/msm/dp/dp_panel.c +9 −1 Original line number Diff line number Diff line Loading @@ -458,6 +458,7 @@ static int dp_panel_get_modes(struct dp_panel *dp_panel, struct drm_connector *connector, struct dp_display_mode *mode) { struct dp_panel_private *panel; int rc = 0; if (!dp_panel) { pr_err("invalid input\n"); Loading @@ -470,12 +471,18 @@ static int dp_panel_get_modes(struct dp_panel *dp_panel, dp_panel_set_test_mode(panel, mode); return 1; } else if (dp_panel->edid_ctrl->edid) { return _sde_edid_update_modes(connector, dp_panel->edid_ctrl); rc = _sde_edid_update_modes(connector, dp_panel->edid_ctrl); } else { /* fail-safe mode */ memcpy(&mode->timing, &fail_safe, sizeof(fail_safe)); return 1; } if (rc) drm_dp_cec_set_edid(panel->aux->drm_aux, dp_panel->edid_ctrl->edid); return rc; } static void dp_panel_handle_sink_request(struct dp_panel *dp_panel) Loading Loading @@ -762,6 +769,7 @@ static int dp_panel_deinit_panel_info(struct dp_panel *dp_panel) panel = container_of(dp_panel, struct dp_panel_private, dp_panel); hdr = &panel->catalog->hdr_data; drm_dp_cec_unset_edid(panel->aux->drm_aux); if (!panel->custom_edid) sde_free_edid((void **)&dp_panel->edid_ctrl); Loading