Loading arch/arm64/boot/dts/qcom/sm8150-cdp.dtsi +13 −2 Original line number Diff line number Diff line Loading @@ -103,6 +103,13 @@ }; }; &dsi_panel_pwr_supply_vdd_no_labibb { qcom,panel-supply-entry@1 { qcom,supply-min-voltage = <1800000>; qcom,supply-max-voltage = <1800000>; }; }; &dsi_sharp_4k_dsc_cmd { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; Loading Loading @@ -218,24 +225,28 @@ &dsi_nt35695b_truly_fhd_cmd { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>; 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-mode-sel-gpio-state = "single_port"; qcom,panel-mode-gpio = <&tlmm 7 0>; qcom,platform-te-gpio = <&tlmm 8 0>; qcom,platform-reset-gpio = <&tlmm 6 0>; qcom,panel-sec-mode-gpio = <&tlmm 77 0>; qcom,platform-sec-reset-gpio = <&tlmm 66 0>; }; &dsi_nt35695b_truly_fhd_video { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>; 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-mode-sel-gpio-state = "single_port"; qcom,panel-mode-gpio = <&tlmm 7 0>; qcom,platform-te-gpio = <&tlmm 8 0>; qcom,platform-reset-gpio = <&tlmm 6 0>; qcom,panel-sec-mode-gpio = <&tlmm 77 0>; qcom,platform-sec-reset-gpio = <&tlmm 66 0>; }; &qupv3_se9_i2c { Loading arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi +26 −3 Original line number Diff line number Diff line Loading @@ -357,6 +357,29 @@ qcom,dsi-panel = <&dsi_dual_nt36850_truly_cmd>; }; dsi_nt35695b_truly_fhd_cmd_sec_display: qcom,dsi-display@20 { label = "dsi_nt35695b_truly_fhd_cmd_display"; qcom,display-type = "secondary"; qcom,dsi-ctrl-num = <1>; qcom,dsi-phy-num = <1>; qcom,dsi-select-clocks = "src_byte_clk1", "src_pixel_clk1"; qcom,dsi-panel = <&dsi_nt35695b_truly_fhd_cmd>; }; dsi_nt35695b_truly_fhd_video_sec_display: qcom,dsi-display@21 { label = "dsi_nt35695b_truly_fhd_video_display"; qcom,display-type = "secondary"; qcom,dsi-ctrl-num = <1>; qcom,dsi-phy-num = <1>; qcom,dsi-select-clocks = "src_byte_clk1", "src_pixel_clk1"; qcom,dsi-panel = <&dsi_nt35695b_truly_fhd_video>; }; sde_dsi: qcom,dsi-display-primary { compatible = "qcom,dsi-display"; label = "primary"; Loading Loading @@ -433,8 +456,8 @@ vdd-supply = <&display_panel_avdd_eldo>; qcom,dsi-display-list = <&dsi_nt35695b_truly_fhd_cmd_display &dsi_nt35695b_truly_fhd_video_display>; <&dsi_nt35695b_truly_fhd_cmd_sec_display &dsi_nt35695b_truly_fhd_video_sec_display>; }; sde_wb: qcom,wb-display@0 { Loading Loading @@ -467,7 +490,7 @@ }; &mdss_mdp { connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>; connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi &sde_dsi1>; }; /* PHY TIMINGS REVISION T */ Loading drivers/gpu/drm/msm/dsi-staging/dsi_display.c +11 −2 Original line number Diff line number Diff line Loading @@ -3470,7 +3470,7 @@ static int dsi_display_res_init(struct dsi_display *display) display->panel = dsi_panel_get(&display->pdev->dev, display->panel_of, display->parser_node, display->root, display->display_type, display->cmdline_topology); if (IS_ERR_OR_NULL(display->panel)) { rc = PTR_ERR(display->panel); Loading Loading @@ -4760,7 +4760,16 @@ int dsi_display_dev_probe(struct platform_device *pdev) disp_node = np; break; } } else if (of_property_read_bool(np, disp_active)) { continue; } else if (index == DSI_SECONDARY) { /* * secondary display is currently * supported through boot params only */ break; } if (of_property_read_bool(np, disp_active)) { disp_node = np; if (IS_ENABLED(CONFIG_DSI_PARSER)) Loading drivers/gpu/drm/msm/dsi-staging/dsi_panel.c +20 −6 Original line number Diff line number Diff line Loading @@ -1825,10 +1825,15 @@ static int dsi_panel_parse_jitter_config( static int dsi_panel_parse_power_cfg(struct dsi_panel *panel) { int rc = 0; char *supply_name; if (!strcmp(panel->type, "primary")) supply_name = "qcom,panel-supply-entries"; else supply_name = "qcom,panel-sec-supply-entries"; rc = dsi_pwr_of_get_vreg_data(&panel->utils, &panel->power_info, "qcom,panel-supply-entries"); &panel->power_info, supply_name); if (rc) { pr_err("[%s] failed to parse vregs\n", panel->name); goto error; Loading @@ -1843,9 +1848,18 @@ static int dsi_panel_parse_gpios(struct dsi_panel *panel) int rc = 0; const char *data; struct dsi_parser_utils *utils = &panel->utils; char *reset_gpio_name, *mode_set_gpio_name; if (!strcmp(panel->type, "primary")) { reset_gpio_name = "qcom,platform-reset-gpio"; mode_set_gpio_name = "qcom,panel-mode-gpio"; } else { reset_gpio_name = "qcom,platform-sec-reset-gpio"; mode_set_gpio_name = "qcom,panel-sec-mode-gpio"; } panel->reset_config.reset_gpio = utils->get_named_gpio(utils->data, "qcom,platform-reset-gpio", 0); reset_gpio_name, 0); if (!gpio_is_valid(panel->reset_config.reset_gpio) && !panel->host_config.ext_bridge_mode) { pr_err("[%s] failed get reset gpio, rc=%d\n", panel->name, rc); Loading @@ -1869,7 +1883,7 @@ static int dsi_panel_parse_gpios(struct dsi_panel *panel) } panel->reset_config.lcd_mode_sel_gpio = utils->get_named_gpio( utils->data, "qcom,panel-mode-gpio", 0); utils->data, mode_set_gpio_name, 0); if (!gpio_is_valid(panel->reset_config.lcd_mode_sel_gpio)) pr_debug("%s:%d mode gpio not specified\n", __func__, __LINE__); Loading Loading @@ -2883,7 +2897,7 @@ static void dsi_panel_update_util(struct dsi_panel *panel, struct dsi_panel *dsi_panel_get(struct device *parent, struct device_node *of_node, struct device_node *parser_node, struct dentry *root, const char *type, int topology_override) { struct dsi_panel *panel; Loading @@ -2896,7 +2910,7 @@ struct dsi_panel *dsi_panel_get(struct device *parent, panel->panel_of_node = of_node; panel->parent = parent; panel->root = root; panel->type = type; dsi_panel_update_util(panel, parser_node); utils = &panel->utils; Loading drivers/gpu/drm/msm/dsi-staging/dsi_panel.h +2 −2 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ struct drm_panel_esd_config { struct dsi_panel { const char *name; const char *type; struct device_node *panel_of_node; struct mipi_dsi_device mipi_device; Loading @@ -152,7 +153,6 @@ struct dsi_panel { struct drm_panel drm_panel; struct mipi_dsi_host *host; struct device *parent; struct dentry *root; struct dsi_host_common_cfg host_config; struct dsi_video_engine_cfg video_config; Loading Loading @@ -213,7 +213,7 @@ static inline void dsi_panel_release_panel_lock(struct dsi_panel *panel) struct dsi_panel *dsi_panel_get(struct device *parent, struct device_node *of_node, struct device_node *parser_node, struct dentry *root, const char *type, int topology_override); int dsi_panel_trigger_esd_attack(struct dsi_panel *panel); Loading Loading
arch/arm64/boot/dts/qcom/sm8150-cdp.dtsi +13 −2 Original line number Diff line number Diff line Loading @@ -103,6 +103,13 @@ }; }; &dsi_panel_pwr_supply_vdd_no_labibb { qcom,panel-supply-entry@1 { qcom,supply-min-voltage = <1800000>; qcom,supply-max-voltage = <1800000>; }; }; &dsi_sharp_4k_dsc_cmd { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; Loading Loading @@ -218,24 +225,28 @@ &dsi_nt35695b_truly_fhd_cmd { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>; 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-mode-sel-gpio-state = "single_port"; qcom,panel-mode-gpio = <&tlmm 7 0>; qcom,platform-te-gpio = <&tlmm 8 0>; qcom,platform-reset-gpio = <&tlmm 6 0>; qcom,panel-sec-mode-gpio = <&tlmm 77 0>; qcom,platform-sec-reset-gpio = <&tlmm 66 0>; }; &dsi_nt35695b_truly_fhd_video { qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>; 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-mode-sel-gpio-state = "single_port"; qcom,panel-mode-gpio = <&tlmm 7 0>; qcom,platform-te-gpio = <&tlmm 8 0>; qcom,platform-reset-gpio = <&tlmm 6 0>; qcom,panel-sec-mode-gpio = <&tlmm 77 0>; qcom,platform-sec-reset-gpio = <&tlmm 66 0>; }; &qupv3_se9_i2c { Loading
arch/arm64/boot/dts/qcom/sm8150-sde-display.dtsi +26 −3 Original line number Diff line number Diff line Loading @@ -357,6 +357,29 @@ qcom,dsi-panel = <&dsi_dual_nt36850_truly_cmd>; }; dsi_nt35695b_truly_fhd_cmd_sec_display: qcom,dsi-display@20 { label = "dsi_nt35695b_truly_fhd_cmd_display"; qcom,display-type = "secondary"; qcom,dsi-ctrl-num = <1>; qcom,dsi-phy-num = <1>; qcom,dsi-select-clocks = "src_byte_clk1", "src_pixel_clk1"; qcom,dsi-panel = <&dsi_nt35695b_truly_fhd_cmd>; }; dsi_nt35695b_truly_fhd_video_sec_display: qcom,dsi-display@21 { label = "dsi_nt35695b_truly_fhd_video_display"; qcom,display-type = "secondary"; qcom,dsi-ctrl-num = <1>; qcom,dsi-phy-num = <1>; qcom,dsi-select-clocks = "src_byte_clk1", "src_pixel_clk1"; qcom,dsi-panel = <&dsi_nt35695b_truly_fhd_video>; }; sde_dsi: qcom,dsi-display-primary { compatible = "qcom,dsi-display"; label = "primary"; Loading Loading @@ -433,8 +456,8 @@ vdd-supply = <&display_panel_avdd_eldo>; qcom,dsi-display-list = <&dsi_nt35695b_truly_fhd_cmd_display &dsi_nt35695b_truly_fhd_video_display>; <&dsi_nt35695b_truly_fhd_cmd_sec_display &dsi_nt35695b_truly_fhd_video_sec_display>; }; sde_wb: qcom,wb-display@0 { Loading Loading @@ -467,7 +490,7 @@ }; &mdss_mdp { connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi>; connectors = <&sde_rscc &sde_wb &sde_dp &sde_dsi &sde_dsi1>; }; /* PHY TIMINGS REVISION T */ Loading
drivers/gpu/drm/msm/dsi-staging/dsi_display.c +11 −2 Original line number Diff line number Diff line Loading @@ -3470,7 +3470,7 @@ static int dsi_display_res_init(struct dsi_display *display) display->panel = dsi_panel_get(&display->pdev->dev, display->panel_of, display->parser_node, display->root, display->display_type, display->cmdline_topology); if (IS_ERR_OR_NULL(display->panel)) { rc = PTR_ERR(display->panel); Loading Loading @@ -4760,7 +4760,16 @@ int dsi_display_dev_probe(struct platform_device *pdev) disp_node = np; break; } } else if (of_property_read_bool(np, disp_active)) { continue; } else if (index == DSI_SECONDARY) { /* * secondary display is currently * supported through boot params only */ break; } if (of_property_read_bool(np, disp_active)) { disp_node = np; if (IS_ENABLED(CONFIG_DSI_PARSER)) Loading
drivers/gpu/drm/msm/dsi-staging/dsi_panel.c +20 −6 Original line number Diff line number Diff line Loading @@ -1825,10 +1825,15 @@ static int dsi_panel_parse_jitter_config( static int dsi_panel_parse_power_cfg(struct dsi_panel *panel) { int rc = 0; char *supply_name; if (!strcmp(panel->type, "primary")) supply_name = "qcom,panel-supply-entries"; else supply_name = "qcom,panel-sec-supply-entries"; rc = dsi_pwr_of_get_vreg_data(&panel->utils, &panel->power_info, "qcom,panel-supply-entries"); &panel->power_info, supply_name); if (rc) { pr_err("[%s] failed to parse vregs\n", panel->name); goto error; Loading @@ -1843,9 +1848,18 @@ static int dsi_panel_parse_gpios(struct dsi_panel *panel) int rc = 0; const char *data; struct dsi_parser_utils *utils = &panel->utils; char *reset_gpio_name, *mode_set_gpio_name; if (!strcmp(panel->type, "primary")) { reset_gpio_name = "qcom,platform-reset-gpio"; mode_set_gpio_name = "qcom,panel-mode-gpio"; } else { reset_gpio_name = "qcom,platform-sec-reset-gpio"; mode_set_gpio_name = "qcom,panel-sec-mode-gpio"; } panel->reset_config.reset_gpio = utils->get_named_gpio(utils->data, "qcom,platform-reset-gpio", 0); reset_gpio_name, 0); if (!gpio_is_valid(panel->reset_config.reset_gpio) && !panel->host_config.ext_bridge_mode) { pr_err("[%s] failed get reset gpio, rc=%d\n", panel->name, rc); Loading @@ -1869,7 +1883,7 @@ static int dsi_panel_parse_gpios(struct dsi_panel *panel) } panel->reset_config.lcd_mode_sel_gpio = utils->get_named_gpio( utils->data, "qcom,panel-mode-gpio", 0); utils->data, mode_set_gpio_name, 0); if (!gpio_is_valid(panel->reset_config.lcd_mode_sel_gpio)) pr_debug("%s:%d mode gpio not specified\n", __func__, __LINE__); Loading Loading @@ -2883,7 +2897,7 @@ static void dsi_panel_update_util(struct dsi_panel *panel, struct dsi_panel *dsi_panel_get(struct device *parent, struct device_node *of_node, struct device_node *parser_node, struct dentry *root, const char *type, int topology_override) { struct dsi_panel *panel; Loading @@ -2896,7 +2910,7 @@ struct dsi_panel *dsi_panel_get(struct device *parent, panel->panel_of_node = of_node; panel->parent = parent; panel->root = root; panel->type = type; dsi_panel_update_util(panel, parser_node); utils = &panel->utils; Loading
drivers/gpu/drm/msm/dsi-staging/dsi_panel.h +2 −2 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ struct drm_panel_esd_config { struct dsi_panel { const char *name; const char *type; struct device_node *panel_of_node; struct mipi_dsi_device mipi_device; Loading @@ -152,7 +153,6 @@ struct dsi_panel { struct drm_panel drm_panel; struct mipi_dsi_host *host; struct device *parent; struct dentry *root; struct dsi_host_common_cfg host_config; struct dsi_video_engine_cfg video_config; Loading Loading @@ -213,7 +213,7 @@ static inline void dsi_panel_release_panel_lock(struct dsi_panel *panel) struct dsi_panel *dsi_panel_get(struct device *parent, struct device_node *of_node, struct device_node *parser_node, struct dentry *root, const char *type, int topology_override); int dsi_panel_trigger_esd_attack(struct dsi_panel *panel); Loading