Loading arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-cmd.dtsi +25 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ qcom,mdss-dsi-te-using-wd; qcom,mdss-dsi-te-using-te-pin; qcom,panel-ack-disabled; qcom,mdss-dsi-qsync-min-refresh-rate = <45>; qcom,mdss-dsi-display-timings { timing@0{ Loading @@ -69,6 +70,14 @@ [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; timing@1{ qcom,mdss-dsi-panel-width = <1280>; Loading @@ -94,6 +103,14 @@ [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; timing@2{ qcom,mdss-dsi-panel-width = <1080>; Loading @@ -115,6 +132,14 @@ [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; }; }; Loading arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-video.dtsi +10 −1 Original line number Diff line number Diff line /* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2014-2018, 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 @@ -32,6 +32,7 @@ qcom,mdss-dsi-mdp-trigger = "none"; qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; qcom,panel-ack-disabled; qcom,mdss-dsi-qsync-min-refresh-rate = <45>; qcom,mdss-dsi-display-timings { timing@0{ Loading @@ -55,6 +56,14 @@ [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; }; }; Loading arch/arm64/boot/dts/qcom/sm8150-sde.dtsi +6 −4 Original line number Diff line number Diff line Loading @@ -26,11 +26,13 @@ <&clock_gcc GCC_DISP_HF_AXI_CLK>, <&clock_dispcc DISP_CC_MDSS_AHB_CLK>, <&clock_dispcc DISP_CC_MDSS_MDP_CLK>, <&clock_dispcc DISP_CC_MDSS_VSYNC_CLK>; <&clock_dispcc DISP_CC_MDSS_VSYNC_CLK>, <&clock_dispcc DISP_CC_MDSS_MDP_LUT_CLK>; clock-names = "gcc_iface", "gcc_bus", "iface_clk", "core_clk", "vsync_clk"; clock-rate = <0 0 0 300000000 19200000>; clock-max-rate = <0 0 0 460000000 19200000>; "iface_clk", "core_clk", "vsync_clk", "lut_clk"; clock-rate = <0 0 0 300000000 19200000 300000000>; clock-max-rate = <0 0 0 460000000 19200000 460000000>; sde-vdd-supply = <&mdss_core_gdsc>; Loading drivers/gpu/drm/msm/dp/dp_aux.c +1 −1 Original line number Diff line number Diff line Loading @@ -578,7 +578,7 @@ static ssize_t dp_aux_transfer(struct drm_dp_aux *drm_aux, } ret = dp_aux_cmd_fifo_tx(aux, msg); if ((ret < 0) && aux->native && !atomic_read(&aux->aborted)) { if ((ret < 0) && !atomic_read(&aux->aborted)) { aux->retry_cnt++; if (!(aux->retry_cnt % retry_count)) aux->catalog->update_aux_cfg(aux->catalog, Loading drivers/gpu/drm/msm/dp/dp_display.c +15 −8 Original line number Diff line number Diff line Loading @@ -549,8 +549,7 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp) return 0; rc = dp->panel->read_sink_caps(dp->panel, dp->dp_display.base_connector); dp->dp_display.base_connector, dp->usbpd->multi_func); if (rc) { /* * ETIMEDOUT --> cable may have been removed Loading Loading @@ -684,6 +683,8 @@ static int dp_display_usbpd_configure_cb(struct device *dev) goto end; } atomic_set(&dp->aborted, 0); dp_display_host_init(dp); /* check for hpd high and framework ready */ Loading Loading @@ -768,6 +769,7 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) /* wait for idle state */ cancel_delayed_work(&dp->connect_work); cancel_work(&dp->attention_work); flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); Loading @@ -775,7 +777,6 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) if (!dp->debug->sim_mode) dp->aux->aux_switch(dp->aux, false, ORIENTATION_NONE); atomic_set(&dp->aborted, 0); end: return rc; } Loading Loading @@ -918,6 +919,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev) /* wait for idle state */ cancel_delayed_work(&dp->connect_work); cancel_work(&dp->attention_work); flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); Loading @@ -933,7 +935,7 @@ static void dp_display_connect_work(struct work_struct *work) struct dp_display_private *dp = container_of(dw, struct dp_display_private, connect_work); if (dp->dp_display.is_connected) { if (dp->dp_display.is_connected && dp_display_framework_ready(dp)) { pr_debug("HPD already on\n"); return; } Loading Loading @@ -1258,6 +1260,11 @@ static int dp_display_enable(struct dp_display *dp_display, void *panel) dp->aux->init(dp->aux, dp->parser->aux_cfg); if (dp->debug->psm_enabled) { dp->link->psm_config(dp->link, &dp->panel->link_info, false); dp->debug->psm_enabled = false; } rc = dp->ctrl->on(dp->ctrl, dp->mst.mst_active); if (!rc) dp->power_on = true; Loading Loading @@ -1374,7 +1381,8 @@ static int dp_display_pre_disable(struct dp_display *dp_display, void *panel) dp->hdcp.ops->off(dp->hdcp.data); } if (dp->usbpd->hpd_high && dp->usbpd->alt_mode_cfg_done) { if (dp->usbpd->hpd_high && !dp_display_is_sink_count_zero(dp) && dp->usbpd->alt_mode_cfg_done) { if (dp_panel->audio_supported) dp_panel->audio->off(dp_panel->audio); Loading Loading @@ -1432,10 +1440,9 @@ static int dp_display_disable(struct dp_display *dp_display, void *panel) * any notification from driver. Initialize post_open callback to notify * DP connection once framework restarts. */ if (dp->usbpd->hpd_high && dp->usbpd->alt_mode_cfg_done && !dp->mst.mst_active) { if (dp->usbpd->hpd_high && !dp_display_is_sink_count_zero(dp) && dp->usbpd->alt_mode_cfg_done && !dp->mst.mst_active) { dp_display->post_open = dp_display_post_open; dp->dp_display.is_connected = false; dp->dp_display.is_sst_connected = false; } Loading Loading
arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-cmd.dtsi +25 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ qcom,mdss-dsi-te-using-wd; qcom,mdss-dsi-te-using-te-pin; qcom,panel-ack-disabled; qcom,mdss-dsi-qsync-min-refresh-rate = <45>; qcom,mdss-dsi-display-timings { timing@0{ Loading @@ -69,6 +70,14 @@ [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; timing@1{ qcom,mdss-dsi-panel-width = <1280>; Loading @@ -94,6 +103,14 @@ [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; timing@2{ qcom,mdss-dsi-panel-width = <1080>; Loading @@ -115,6 +132,14 @@ [05 01 00 00 00 00 02 28 00 05 01 00 00 00 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; }; }; Loading
arch/arm64/boot/dts/qcom/dsi-panel-sim-dualmipi-video.dtsi +10 −1 Original line number Diff line number Diff line /* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2014-2018, 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 @@ -32,6 +32,7 @@ qcom,mdss-dsi-mdp-trigger = "none"; qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; qcom,panel-ack-disabled; qcom,mdss-dsi-qsync-min-refresh-rate = <45>; qcom,mdss-dsi-display-timings { timing@0{ Loading @@ -55,6 +56,14 @@ [05 01 00 00 32 00 02 28 00 05 01 00 00 78 00 02 10 00]; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-on-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-on-commands-state = "dsi_hs_mode"; qcom,mdss-dsi-qsync-off-commands = [15 01 00 00 00 00 02 51 00]; qcom,mdss-dsi-qsync-off-commands-state = "dsi_hs_mode"; }; }; }; Loading
arch/arm64/boot/dts/qcom/sm8150-sde.dtsi +6 −4 Original line number Diff line number Diff line Loading @@ -26,11 +26,13 @@ <&clock_gcc GCC_DISP_HF_AXI_CLK>, <&clock_dispcc DISP_CC_MDSS_AHB_CLK>, <&clock_dispcc DISP_CC_MDSS_MDP_CLK>, <&clock_dispcc DISP_CC_MDSS_VSYNC_CLK>; <&clock_dispcc DISP_CC_MDSS_VSYNC_CLK>, <&clock_dispcc DISP_CC_MDSS_MDP_LUT_CLK>; clock-names = "gcc_iface", "gcc_bus", "iface_clk", "core_clk", "vsync_clk"; clock-rate = <0 0 0 300000000 19200000>; clock-max-rate = <0 0 0 460000000 19200000>; "iface_clk", "core_clk", "vsync_clk", "lut_clk"; clock-rate = <0 0 0 300000000 19200000 300000000>; clock-max-rate = <0 0 0 460000000 19200000 460000000>; sde-vdd-supply = <&mdss_core_gdsc>; Loading
drivers/gpu/drm/msm/dp/dp_aux.c +1 −1 Original line number Diff line number Diff line Loading @@ -578,7 +578,7 @@ static ssize_t dp_aux_transfer(struct drm_dp_aux *drm_aux, } ret = dp_aux_cmd_fifo_tx(aux, msg); if ((ret < 0) && aux->native && !atomic_read(&aux->aborted)) { if ((ret < 0) && !atomic_read(&aux->aborted)) { aux->retry_cnt++; if (!(aux->retry_cnt % retry_count)) aux->catalog->update_aux_cfg(aux->catalog, Loading
drivers/gpu/drm/msm/dp/dp_display.c +15 −8 Original line number Diff line number Diff line Loading @@ -549,8 +549,7 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp) return 0; rc = dp->panel->read_sink_caps(dp->panel, dp->dp_display.base_connector); dp->dp_display.base_connector, dp->usbpd->multi_func); if (rc) { /* * ETIMEDOUT --> cable may have been removed Loading Loading @@ -684,6 +683,8 @@ static int dp_display_usbpd_configure_cb(struct device *dev) goto end; } atomic_set(&dp->aborted, 0); dp_display_host_init(dp); /* check for hpd high and framework ready */ Loading Loading @@ -768,6 +769,7 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) /* wait for idle state */ cancel_delayed_work(&dp->connect_work); cancel_work(&dp->attention_work); flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); Loading @@ -775,7 +777,6 @@ static int dp_display_usbpd_disconnect_cb(struct device *dev) if (!dp->debug->sim_mode) dp->aux->aux_switch(dp->aux, false, ORIENTATION_NONE); atomic_set(&dp->aborted, 0); end: return rc; } Loading Loading @@ -918,6 +919,7 @@ static int dp_display_usbpd_attention_cb(struct device *dev) /* wait for idle state */ cancel_delayed_work(&dp->connect_work); cancel_work(&dp->attention_work); flush_workqueue(dp->wq); dp_display_handle_disconnect(dp); Loading @@ -933,7 +935,7 @@ static void dp_display_connect_work(struct work_struct *work) struct dp_display_private *dp = container_of(dw, struct dp_display_private, connect_work); if (dp->dp_display.is_connected) { if (dp->dp_display.is_connected && dp_display_framework_ready(dp)) { pr_debug("HPD already on\n"); return; } Loading Loading @@ -1258,6 +1260,11 @@ static int dp_display_enable(struct dp_display *dp_display, void *panel) dp->aux->init(dp->aux, dp->parser->aux_cfg); if (dp->debug->psm_enabled) { dp->link->psm_config(dp->link, &dp->panel->link_info, false); dp->debug->psm_enabled = false; } rc = dp->ctrl->on(dp->ctrl, dp->mst.mst_active); if (!rc) dp->power_on = true; Loading Loading @@ -1374,7 +1381,8 @@ static int dp_display_pre_disable(struct dp_display *dp_display, void *panel) dp->hdcp.ops->off(dp->hdcp.data); } if (dp->usbpd->hpd_high && dp->usbpd->alt_mode_cfg_done) { if (dp->usbpd->hpd_high && !dp_display_is_sink_count_zero(dp) && dp->usbpd->alt_mode_cfg_done) { if (dp_panel->audio_supported) dp_panel->audio->off(dp_panel->audio); Loading Loading @@ -1432,10 +1440,9 @@ static int dp_display_disable(struct dp_display *dp_display, void *panel) * any notification from driver. Initialize post_open callback to notify * DP connection once framework restarts. */ if (dp->usbpd->hpd_high && dp->usbpd->alt_mode_cfg_done && !dp->mst.mst_active) { if (dp->usbpd->hpd_high && !dp_display_is_sink_count_zero(dp) && dp->usbpd->alt_mode_cfg_done && !dp->mst.mst_active) { dp_display->post_open = dp_display_post_open; dp->dp_display.is_connected = false; dp->dp_display.is_sst_connected = false; } Loading