Loading arch/arm64/boot/dts/qcom/dsi-panel-nt36850-truly-dualmipi-wqhd-cmd.dtsi 0 → 100644 +87 −0 Original line number Diff line number Diff line /* Copyright (c) 2017-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 * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &mdss_mdp { dsi_dual_nt36850_truly_cmd: qcom,mdss_dsi_nt36850_truly_wqhd_cmd { qcom,mdss-dsi-panel-name = "Dual nt36850 cmd mode dsi truly panel without DSC"; qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; qcom,mdss-dsi-virtual-channel-id = <0>; qcom,mdss-dsi-stream = <0>; qcom,mdss-dsi-bpp = <24>; qcom,mdss-dsi-color-order = "rgb_swap_rgb"; qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-border-color = <0>; qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; qcom,mdss-dsi-lane-map = "lane_map_0123"; qcom,mdss-dsi-bllp-eof-power-mode; qcom,mdss-dsi-bllp-power-mode; qcom,mdss-dsi-tx-eot-append; qcom,mdss-dsi-lane-0-state; qcom,mdss-dsi-lane-1-state; qcom,mdss-dsi-lane-2-state; qcom,mdss-dsi-lane-3-state; qcom,mdss-dsi-wr-mem-start = <0x2c>; qcom,mdss-dsi-wr-mem-continue = <0x3c>; qcom,mdss-dsi-te-pin-select = <1>; qcom,mdss-dsi-te-dcs-command = <1>; qcom,mdss-dsi-te-check-enable; qcom,mdss-dsi-te-using-te-pin; qcom,mdss-dsi-dma-trigger = "trigger_sw"; qcom,mdss-dsi-mdp-trigger = "none"; qcom,mdss-dsi-lp11-init; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 50>; qcom,mdss-dsi-display-timings { timing@0 { qcom,mdss-dsi-panel-framerate = <60>; qcom,mdss-dsi-panel-width = <720>; qcom,mdss-dsi-panel-height = <2560>; qcom,mdss-dsi-h-front-porch = <120>; qcom,mdss-dsi-h-back-porch = <140>; qcom,mdss-dsi-h-pulse-width = <20>; qcom,mdss-dsi-h-sync-skew = <0>; qcom,mdss-dsi-v-back-porch = <20>; qcom,mdss-dsi-v-front-porch = <8>; qcom,mdss-dsi-v-pulse-width = <4>; qcom,mdss-dsi-h-left-border = <0>; qcom,mdss-dsi-h-right-border = <0>; qcom,mdss-dsi-v-top-border = <0>; qcom,mdss-dsi-v-bottom-border = <0>; qcom,mdss-dsi-on-command = [ 15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 36 00 15 01 00 00 00 00 02 35 00 39 01 00 00 00 00 03 44 03 e8 15 01 00 00 00 00 02 51 ff 15 01 00 00 00 00 02 53 2c 15 01 00 00 00 00 02 55 01 05 01 00 00 0a 00 02 20 00 15 01 00 00 00 00 02 bb 10 05 01 00 00 78 00 02 11 00 05 01 00 00 78 00 02 29 00 ]; qcom,mdss-dsi-off-command = [ 05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00 ]; qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-h-sync-pulse = <0>; }; }; }; }; arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi +26 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include "dsi-panel-sw43404-amoled-dsc-wqhd-cmd.dtsi" #include "dsi-panel-sw43404-amoled-dsc-wqhd-video.dtsi" #include "dsi-panel-sw43404-amoled-dsc-fhd-plus-cmd.dtsi" #include "dsi-panel-nt36850-truly-dualmipi-wqhd-cmd.dtsi" #include <dt-bindings/clock/mdss-10nm-pll-clk.h> &tlmm { Loading Loading @@ -345,6 +346,17 @@ qcom,dsi-panel = <&dsi_sw43404_amoled_fhd_plus_cmd>; }; dsi_dual_nt36850_truly_cmd_display: qcom,dsi-display@19 { label = "dsi_dual_nt36850_truly_cmd_display"; qcom,display-type = "primary"; qcom,dsi-ctrl-num = <0 1>; qcom,dsi-phy-num = <0 1>; qcom,dsi-select-clocks = "src_byte_clk0", "src_pixel_clk0"; qcom,dsi-panel = <&dsi_dual_nt36850_truly_cmd>; }; sde_dsi: qcom,dsi-display-primary { compatible = "qcom,dsi-display"; label = "primary"; Loading Loading @@ -390,7 +402,8 @@ &dsi_nt35695b_truly_fhd_cmd_display &dsi_nt35695b_truly_fhd_video_display &dsi_sw43404_amoled_video_display &dsi_sw43404_amoled_fhd_plus_cmd_display>; &dsi_sw43404_amoled_fhd_plus_cmd_display &dsi_dual_nt36850_truly_cmd_display>; }; sde_dsi1: qcom,dsi-display-secondary { Loading Loading @@ -800,3 +813,15 @@ }; }; }; &dsi_dual_nt36850_truly_cmd { qcom,mdss-dsi-display-timings { timing@0{ qcom,mdss-dsi-panel-phy-timings = [00 1f 08 08 24 23 08 08 05 03 04 00 1a 18]; qcom,display-topology = <2 0 2>; qcom,default-topology-index = <0>; }; }; }; drivers/gpu/drm/msm/dp/dp_gpio_hpd.c +3 −1 Original line number Diff line number Diff line Loading @@ -246,7 +246,9 @@ struct dp_hpd *dp_gpio_hpd_get(struct device *dev, gpio_hpd->base.simulate_connect = dp_gpio_hpd_simulate_connect; gpio_hpd->base.simulate_attention = dp_gpio_hpd_simulate_attention; gpio_hpd->base.hpd_high = gpio_hpd->hpd; if (gpio_hpd->hpd) queue_delayed_work(system_wq, &gpio_hpd->work, 0); return &gpio_hpd->base; Loading drivers/gpu/drm/msm/dsi-staging/dsi_catalog.h +2 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,8 @@ void dsi_phy_hw_v4_0_reset_clk_en_sel(struct dsi_phy_hw *phy); /* DSI controller common ops */ u32 dsi_ctrl_hw_cmn_get_interrupt_status(struct dsi_ctrl_hw *ctrl); void dsi_ctrl_hw_cmn_debug_bus(struct dsi_ctrl_hw *ctrl); void dsi_ctrl_hw_cmn_debug_bus(struct dsi_ctrl_hw *ctrl, u32 *entries, u32 size); void dsi_ctrl_hw_cmn_clear_interrupt_status(struct dsi_ctrl_hw *ctrl, u32 ints); void dsi_ctrl_hw_cmn_enable_status_interrupts(struct dsi_ctrl_hw *ctrl, u32 ints); Loading drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c +9 −2 Original line number Diff line number Diff line Loading @@ -248,6 +248,8 @@ static int dsi_ctrl_debugfs_init(struct dsi_ctrl *dsi_ctrl, dsi_ctrl->cell_index); sde_dbg_reg_register_base(dbg_name, dsi_ctrl->hw.base, msm_iomap_size(dsi_ctrl->pdev, "dsi_ctrl")); sde_dbg_reg_register_dump_range(dbg_name, dbg_name, 0, msm_iomap_size(dsi_ctrl->pdev, "dsi_ctrl"), 0); error_remove_dir: debugfs_remove(dir); error: Loading Loading @@ -277,6 +279,8 @@ static int dsi_ctrl_check_state(struct dsi_ctrl *dsi_ctrl, int rc = 0; struct dsi_ctrl_state_info *state = &dsi_ctrl->current_state; SDE_EVT32(dsi_ctrl->cell_index, op); switch (op) { case DSI_CTRL_OP_POWER_STATE_CHANGE: if (state->power_state == op_state) { Loading Loading @@ -1832,11 +1836,14 @@ static struct platform_driver dsi_ctrl_driver = { #if defined(CONFIG_DEBUG_FS) void dsi_ctrl_debug_dump(void) void dsi_ctrl_debug_dump(u32 *entries, u32 size) { struct list_head *pos, *tmp; struct dsi_ctrl *ctrl = NULL; if (!entries || !size) return; mutex_lock(&dsi_ctrl_list_lock); list_for_each_safe(pos, tmp, &dsi_ctrl_list) { struct dsi_ctrl_list_item *n; Loading @@ -1844,7 +1851,7 @@ void dsi_ctrl_debug_dump(void) n = list_entry(pos, struct dsi_ctrl_list_item, list); ctrl = n->ctrl; pr_err("dsi ctrl:%d\n", ctrl->cell_index); ctrl->hw.ops.debug_bus(&ctrl->hw); ctrl->hw.ops.debug_bus(&ctrl->hw, entries, size); } mutex_unlock(&dsi_ctrl_list_lock); } Loading Loading
arch/arm64/boot/dts/qcom/dsi-panel-nt36850-truly-dualmipi-wqhd-cmd.dtsi 0 → 100644 +87 −0 Original line number Diff line number Diff line /* Copyright (c) 2017-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 * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &mdss_mdp { dsi_dual_nt36850_truly_cmd: qcom,mdss_dsi_nt36850_truly_wqhd_cmd { qcom,mdss-dsi-panel-name = "Dual nt36850 cmd mode dsi truly panel without DSC"; qcom,mdss-dsi-panel-type = "dsi_cmd_mode"; qcom,mdss-dsi-virtual-channel-id = <0>; qcom,mdss-dsi-stream = <0>; qcom,mdss-dsi-bpp = <24>; qcom,mdss-dsi-color-order = "rgb_swap_rgb"; qcom,mdss-dsi-underflow-color = <0xff>; qcom,mdss-dsi-border-color = <0>; qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; qcom,mdss-dsi-lane-map = "lane_map_0123"; qcom,mdss-dsi-bllp-eof-power-mode; qcom,mdss-dsi-bllp-power-mode; qcom,mdss-dsi-tx-eot-append; qcom,mdss-dsi-lane-0-state; qcom,mdss-dsi-lane-1-state; qcom,mdss-dsi-lane-2-state; qcom,mdss-dsi-lane-3-state; qcom,mdss-dsi-wr-mem-start = <0x2c>; qcom,mdss-dsi-wr-mem-continue = <0x3c>; qcom,mdss-dsi-te-pin-select = <1>; qcom,mdss-dsi-te-dcs-command = <1>; qcom,mdss-dsi-te-check-enable; qcom,mdss-dsi-te-using-te-pin; qcom,mdss-dsi-dma-trigger = "trigger_sw"; qcom,mdss-dsi-mdp-trigger = "none"; qcom,mdss-dsi-lp11-init; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-reset-sequence = <1 10>, <0 10>, <1 50>; qcom,mdss-dsi-display-timings { timing@0 { qcom,mdss-dsi-panel-framerate = <60>; qcom,mdss-dsi-panel-width = <720>; qcom,mdss-dsi-panel-height = <2560>; qcom,mdss-dsi-h-front-porch = <120>; qcom,mdss-dsi-h-back-porch = <140>; qcom,mdss-dsi-h-pulse-width = <20>; qcom,mdss-dsi-h-sync-skew = <0>; qcom,mdss-dsi-v-back-porch = <20>; qcom,mdss-dsi-v-front-porch = <8>; qcom,mdss-dsi-v-pulse-width = <4>; qcom,mdss-dsi-h-left-border = <0>; qcom,mdss-dsi-h-right-border = <0>; qcom,mdss-dsi-v-top-border = <0>; qcom,mdss-dsi-v-bottom-border = <0>; qcom,mdss-dsi-on-command = [ 15 01 00 00 00 00 02 ff 10 15 01 00 00 00 00 02 fb 01 15 01 00 00 00 00 02 36 00 15 01 00 00 00 00 02 35 00 39 01 00 00 00 00 03 44 03 e8 15 01 00 00 00 00 02 51 ff 15 01 00 00 00 00 02 53 2c 15 01 00 00 00 00 02 55 01 05 01 00 00 0a 00 02 20 00 15 01 00 00 00 00 02 bb 10 05 01 00 00 78 00 02 11 00 05 01 00 00 78 00 02 29 00 ]; qcom,mdss-dsi-off-command = [ 05 01 00 00 78 00 02 28 00 05 01 00 00 78 00 02 10 00 ]; qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; qcom,mdss-dsi-h-sync-pulse = <0>; }; }; }; };
arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi +26 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include "dsi-panel-sw43404-amoled-dsc-wqhd-cmd.dtsi" #include "dsi-panel-sw43404-amoled-dsc-wqhd-video.dtsi" #include "dsi-panel-sw43404-amoled-dsc-fhd-plus-cmd.dtsi" #include "dsi-panel-nt36850-truly-dualmipi-wqhd-cmd.dtsi" #include <dt-bindings/clock/mdss-10nm-pll-clk.h> &tlmm { Loading Loading @@ -345,6 +346,17 @@ qcom,dsi-panel = <&dsi_sw43404_amoled_fhd_plus_cmd>; }; dsi_dual_nt36850_truly_cmd_display: qcom,dsi-display@19 { label = "dsi_dual_nt36850_truly_cmd_display"; qcom,display-type = "primary"; qcom,dsi-ctrl-num = <0 1>; qcom,dsi-phy-num = <0 1>; qcom,dsi-select-clocks = "src_byte_clk0", "src_pixel_clk0"; qcom,dsi-panel = <&dsi_dual_nt36850_truly_cmd>; }; sde_dsi: qcom,dsi-display-primary { compatible = "qcom,dsi-display"; label = "primary"; Loading Loading @@ -390,7 +402,8 @@ &dsi_nt35695b_truly_fhd_cmd_display &dsi_nt35695b_truly_fhd_video_display &dsi_sw43404_amoled_video_display &dsi_sw43404_amoled_fhd_plus_cmd_display>; &dsi_sw43404_amoled_fhd_plus_cmd_display &dsi_dual_nt36850_truly_cmd_display>; }; sde_dsi1: qcom,dsi-display-secondary { Loading Loading @@ -800,3 +813,15 @@ }; }; }; &dsi_dual_nt36850_truly_cmd { qcom,mdss-dsi-display-timings { timing@0{ qcom,mdss-dsi-panel-phy-timings = [00 1f 08 08 24 23 08 08 05 03 04 00 1a 18]; qcom,display-topology = <2 0 2>; qcom,default-topology-index = <0>; }; }; };
drivers/gpu/drm/msm/dp/dp_gpio_hpd.c +3 −1 Original line number Diff line number Diff line Loading @@ -246,7 +246,9 @@ struct dp_hpd *dp_gpio_hpd_get(struct device *dev, gpio_hpd->base.simulate_connect = dp_gpio_hpd_simulate_connect; gpio_hpd->base.simulate_attention = dp_gpio_hpd_simulate_attention; gpio_hpd->base.hpd_high = gpio_hpd->hpd; if (gpio_hpd->hpd) queue_delayed_work(system_wq, &gpio_hpd->work, 0); return &gpio_hpd->base; Loading
drivers/gpu/drm/msm/dsi-staging/dsi_catalog.h +2 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,8 @@ void dsi_phy_hw_v4_0_reset_clk_en_sel(struct dsi_phy_hw *phy); /* DSI controller common ops */ u32 dsi_ctrl_hw_cmn_get_interrupt_status(struct dsi_ctrl_hw *ctrl); void dsi_ctrl_hw_cmn_debug_bus(struct dsi_ctrl_hw *ctrl); void dsi_ctrl_hw_cmn_debug_bus(struct dsi_ctrl_hw *ctrl, u32 *entries, u32 size); void dsi_ctrl_hw_cmn_clear_interrupt_status(struct dsi_ctrl_hw *ctrl, u32 ints); void dsi_ctrl_hw_cmn_enable_status_interrupts(struct dsi_ctrl_hw *ctrl, u32 ints); Loading
drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c +9 −2 Original line number Diff line number Diff line Loading @@ -248,6 +248,8 @@ static int dsi_ctrl_debugfs_init(struct dsi_ctrl *dsi_ctrl, dsi_ctrl->cell_index); sde_dbg_reg_register_base(dbg_name, dsi_ctrl->hw.base, msm_iomap_size(dsi_ctrl->pdev, "dsi_ctrl")); sde_dbg_reg_register_dump_range(dbg_name, dbg_name, 0, msm_iomap_size(dsi_ctrl->pdev, "dsi_ctrl"), 0); error_remove_dir: debugfs_remove(dir); error: Loading Loading @@ -277,6 +279,8 @@ static int dsi_ctrl_check_state(struct dsi_ctrl *dsi_ctrl, int rc = 0; struct dsi_ctrl_state_info *state = &dsi_ctrl->current_state; SDE_EVT32(dsi_ctrl->cell_index, op); switch (op) { case DSI_CTRL_OP_POWER_STATE_CHANGE: if (state->power_state == op_state) { Loading Loading @@ -1832,11 +1836,14 @@ static struct platform_driver dsi_ctrl_driver = { #if defined(CONFIG_DEBUG_FS) void dsi_ctrl_debug_dump(void) void dsi_ctrl_debug_dump(u32 *entries, u32 size) { struct list_head *pos, *tmp; struct dsi_ctrl *ctrl = NULL; if (!entries || !size) return; mutex_lock(&dsi_ctrl_list_lock); list_for_each_safe(pos, tmp, &dsi_ctrl_list) { struct dsi_ctrl_list_item *n; Loading @@ -1844,7 +1851,7 @@ void dsi_ctrl_debug_dump(void) n = list_entry(pos, struct dsi_ctrl_list_item, list); ctrl = n->ctrl; pr_err("dsi ctrl:%d\n", ctrl->cell_index); ctrl->hw.ops.debug_bus(&ctrl->hw); ctrl->hw.ops.debug_bus(&ctrl->hw, entries, size); } mutex_unlock(&dsi_ctrl_list_lock); } Loading