Loading Documentation/devicetree/bindings/drm/msm/mdss-dsi-panel.txt +8 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,14 @@ Optional properties: "bl_ctrl_pwm" = Backlight controlled by PWM gpio. "bl_ctrl_wled" = Backlight controlled by WLED. "bl_ctrl_dcs" = Backlight controlled by DCS commands. "bl_ctrl_external" = Backlight controlled by externally other: Unknown backlight control. (default) - qcom,mdss-dsi-sec-bl-pmic-control-type: A string that specifies the implementation of backlight control for secondary panel. "bl_ctrl_pwm" = Backlight controlled by PWM gpio. "bl_ctrl_wled" = Backlight controlled by WLED. "bl_ctrl_dcs" = Backlight controlled by DCS commands. "bl_ctrl_external" = Backlight controlled by externally other: Unknown backlight control. (default) - qcom,mdss-dsi-bl-pwm-pmi: Boolean to indicate that PWM control is through second pmic chip. - qcom,mdss-dsi-bl-pmic-bank-select: LPG channel for backlight. Loading arch/arm64/boot/dts/qcom/dsi-panel-sw43404-amoled-dsc-fhd-plus-cmd.dtsi +1 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ qcom,mdss-dsi-h-right-border = <0>; qcom,mdss-dsi-v-top-border = <0>; qcom,mdss-dsi-v-bottom-border = <0>; qcom,mdss-dsi-panel-jitter = <0x1 0x1>; qcom,mdss-dsi-panel-jitter = <0x3 0x1>; qcom,mdss-dsi-on-command = [ 39 01 00 00 00 00 03 b0 a5 00 07 01 00 00 00 00 02 01 00 Loading arch/arm64/boot/dts/qcom/sm8150-cdp.dtsi +3 −0 Original line number Diff line number Diff line Loading @@ -227,6 +227,7 @@ 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-sec-bl-pmic-control-type = "bl_ctrl_external"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-mode-sel-gpio-state = "single_port"; Loading @@ -240,6 +241,7 @@ 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-sec-bl-pmic-control-type = "bl_ctrl_external"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-mode-sel-gpio-state = "single_port"; Loading @@ -253,6 +255,7 @@ 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-sec-bl-pmic-control-type = "bl_ctrl_external"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-mode-sel-gpio-state = "single_port"; Loading drivers/gpu/drm/msm/dp/dp_audio.c +0 −27 Original line number Diff line number Diff line Loading @@ -346,32 +346,6 @@ static void dp_audio_setup_acr(struct dp_audio_private *audio) catalog->config_acr(catalog); } static void dp_audio_safe_to_exit_level(struct dp_audio_private *audio) { struct dp_catalog_audio *catalog = audio->catalog; u32 safe_to_exit_level = 0; switch (audio->dp_audio.lane_count) { case 1: safe_to_exit_level = 14; break; case 2: safe_to_exit_level = 8; break; case 4: safe_to_exit_level = 5; break; default: pr_debug("setting the default safe_to_exit_level = %u\n", safe_to_exit_level); safe_to_exit_level = 14; break; } catalog->data = safe_to_exit_level; catalog->safe_to_exit_level(catalog); } static void dp_audio_enable(struct dp_audio_private *audio, bool enable) { struct dp_catalog_audio *catalog = audio->catalog; Loading Loading @@ -432,7 +406,6 @@ static int dp_audio_info_setup(struct platform_device *pdev, dp_audio_setup_sdp(audio); dp_audio_setup_acr(audio); dp_audio_safe_to_exit_level(audio); dp_audio_enable(audio, true); mutex_unlock(&audio->ops_lock); Loading drivers/gpu/drm/msm/dp/dp_catalog.c +41 −26 Original line number Diff line number Diff line Loading @@ -727,8 +727,6 @@ static void dp_catalog_ctrl_config_ctrl(struct dp_catalog_ctrl *ctrl, u8 ln_cnt) dp_write(catalog->exe_mode, io_data, DP_MAINLINK_CTRL, cfg); pr_debug("DP_MAINLINK_CTRL=0x%x\n", cfg); dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, 0xa08); } static void dp_catalog_panel_config_ctrl(struct dp_catalog_panel *panel, Loading Loading @@ -1867,6 +1865,46 @@ static void dp_catalog_ctrl_update_rg(struct dp_catalog_ctrl *ctrl, u32 ch, dp_write(catalog->exe_mode, io_data, DP_DP0_RG + reg_off, rg); } static void dp_catalog_ctrl_mainlink_levels(struct dp_catalog_ctrl *ctrl, u8 lane_cnt) { struct dp_catalog_private *catalog; struct dp_io_data *io_data; u32 mainlink_levels, safe_to_exit_level = 14; catalog = dp_catalog_get_priv(ctrl); io_data = catalog->io.dp_link; switch (lane_cnt) { case 1: safe_to_exit_level = 14; break; case 2: safe_to_exit_level = 8; break; case 4: safe_to_exit_level = 5; break; default: pr_debug("setting the default safe_to_exit_level = %u\n", safe_to_exit_level); break; } mainlink_levels = dp_read(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS); mainlink_levels &= 0xFE0; mainlink_levels |= safe_to_exit_level; pr_debug("mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n", mainlink_levels, safe_to_exit_level); dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, mainlink_levels); } /* panel related catalog functions */ static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel) { Loading Loading @@ -2070,29 +2108,6 @@ static void dp_catalog_audio_config_acr(struct dp_catalog_audio *audio) dp_write(catalog->exe_mode, io_data, MMSS_DP_AUDIO_ACR_CTRL, acr_ctrl); } static void dp_catalog_audio_safe_to_exit_level(struct dp_catalog_audio *audio) { struct dp_catalog_private *catalog; struct dp_io_data *io_data; u32 mainlink_levels, safe_to_exit_level; catalog = dp_catalog_get_priv(audio); io_data = catalog->io.dp_link; safe_to_exit_level = audio->data; mainlink_levels = dp_read(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS); mainlink_levels &= 0xFE0; mainlink_levels |= safe_to_exit_level; pr_debug("mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n", mainlink_levels, safe_to_exit_level); dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, mainlink_levels); } static void dp_catalog_audio_enable(struct dp_catalog_audio *audio) { struct dp_catalog_private *catalog; Loading Loading @@ -2417,6 +2432,7 @@ struct dp_catalog *dp_catalog_get(struct device *dev, struct dp_parser *parser) .update_rg = dp_catalog_ctrl_update_rg, .channel_dealloc = dp_catalog_ctrl_channel_dealloc, .fec_config = dp_catalog_ctrl_fec_config, .mainlink_levels = dp_catalog_ctrl_mainlink_levels, }; struct dp_catalog_audio audio = { .init = dp_catalog_audio_init, Loading @@ -2425,7 +2441,6 @@ struct dp_catalog *dp_catalog_get(struct device *dev, struct dp_parser *parser) .config_sdp = dp_catalog_audio_config_sdp, .set_header = dp_catalog_audio_set_header, .get_header = dp_catalog_audio_get_header, .safe_to_exit_level = dp_catalog_audio_safe_to_exit_level, }; struct dp_catalog_panel panel = { .timing_cfg = dp_catalog_panel_timing_cfg, Loading Loading
Documentation/devicetree/bindings/drm/msm/mdss-dsi-panel.txt +8 −0 Original line number Diff line number Diff line Loading @@ -173,6 +173,14 @@ Optional properties: "bl_ctrl_pwm" = Backlight controlled by PWM gpio. "bl_ctrl_wled" = Backlight controlled by WLED. "bl_ctrl_dcs" = Backlight controlled by DCS commands. "bl_ctrl_external" = Backlight controlled by externally other: Unknown backlight control. (default) - qcom,mdss-dsi-sec-bl-pmic-control-type: A string that specifies the implementation of backlight control for secondary panel. "bl_ctrl_pwm" = Backlight controlled by PWM gpio. "bl_ctrl_wled" = Backlight controlled by WLED. "bl_ctrl_dcs" = Backlight controlled by DCS commands. "bl_ctrl_external" = Backlight controlled by externally other: Unknown backlight control. (default) - qcom,mdss-dsi-bl-pwm-pmi: Boolean to indicate that PWM control is through second pmic chip. - qcom,mdss-dsi-bl-pmic-bank-select: LPG channel for backlight. Loading
arch/arm64/boot/dts/qcom/dsi-panel-sw43404-amoled-dsc-fhd-plus-cmd.dtsi +1 −1 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ qcom,mdss-dsi-h-right-border = <0>; qcom,mdss-dsi-v-top-border = <0>; qcom,mdss-dsi-v-bottom-border = <0>; qcom,mdss-dsi-panel-jitter = <0x1 0x1>; qcom,mdss-dsi-panel-jitter = <0x3 0x1>; qcom,mdss-dsi-on-command = [ 39 01 00 00 00 00 03 b0 a5 00 07 01 00 00 00 00 02 01 00 Loading
arch/arm64/boot/dts/qcom/sm8150-cdp.dtsi +3 −0 Original line number Diff line number Diff line Loading @@ -227,6 +227,7 @@ 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-sec-bl-pmic-control-type = "bl_ctrl_external"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-mode-sel-gpio-state = "single_port"; Loading @@ -240,6 +241,7 @@ 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-sec-bl-pmic-control-type = "bl_ctrl_external"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-mode-sel-gpio-state = "single_port"; Loading @@ -253,6 +255,7 @@ 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-sec-bl-pmic-control-type = "bl_ctrl_external"; qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>; qcom,mdss-dsi-mode-sel-gpio-state = "single_port"; Loading
drivers/gpu/drm/msm/dp/dp_audio.c +0 −27 Original line number Diff line number Diff line Loading @@ -346,32 +346,6 @@ static void dp_audio_setup_acr(struct dp_audio_private *audio) catalog->config_acr(catalog); } static void dp_audio_safe_to_exit_level(struct dp_audio_private *audio) { struct dp_catalog_audio *catalog = audio->catalog; u32 safe_to_exit_level = 0; switch (audio->dp_audio.lane_count) { case 1: safe_to_exit_level = 14; break; case 2: safe_to_exit_level = 8; break; case 4: safe_to_exit_level = 5; break; default: pr_debug("setting the default safe_to_exit_level = %u\n", safe_to_exit_level); safe_to_exit_level = 14; break; } catalog->data = safe_to_exit_level; catalog->safe_to_exit_level(catalog); } static void dp_audio_enable(struct dp_audio_private *audio, bool enable) { struct dp_catalog_audio *catalog = audio->catalog; Loading Loading @@ -432,7 +406,6 @@ static int dp_audio_info_setup(struct platform_device *pdev, dp_audio_setup_sdp(audio); dp_audio_setup_acr(audio); dp_audio_safe_to_exit_level(audio); dp_audio_enable(audio, true); mutex_unlock(&audio->ops_lock); Loading
drivers/gpu/drm/msm/dp/dp_catalog.c +41 −26 Original line number Diff line number Diff line Loading @@ -727,8 +727,6 @@ static void dp_catalog_ctrl_config_ctrl(struct dp_catalog_ctrl *ctrl, u8 ln_cnt) dp_write(catalog->exe_mode, io_data, DP_MAINLINK_CTRL, cfg); pr_debug("DP_MAINLINK_CTRL=0x%x\n", cfg); dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, 0xa08); } static void dp_catalog_panel_config_ctrl(struct dp_catalog_panel *panel, Loading Loading @@ -1867,6 +1865,46 @@ static void dp_catalog_ctrl_update_rg(struct dp_catalog_ctrl *ctrl, u32 ch, dp_write(catalog->exe_mode, io_data, DP_DP0_RG + reg_off, rg); } static void dp_catalog_ctrl_mainlink_levels(struct dp_catalog_ctrl *ctrl, u8 lane_cnt) { struct dp_catalog_private *catalog; struct dp_io_data *io_data; u32 mainlink_levels, safe_to_exit_level = 14; catalog = dp_catalog_get_priv(ctrl); io_data = catalog->io.dp_link; switch (lane_cnt) { case 1: safe_to_exit_level = 14; break; case 2: safe_to_exit_level = 8; break; case 4: safe_to_exit_level = 5; break; default: pr_debug("setting the default safe_to_exit_level = %u\n", safe_to_exit_level); break; } mainlink_levels = dp_read(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS); mainlink_levels &= 0xFE0; mainlink_levels |= safe_to_exit_level; pr_debug("mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n", mainlink_levels, safe_to_exit_level); dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, mainlink_levels); } /* panel related catalog functions */ static int dp_catalog_panel_timing_cfg(struct dp_catalog_panel *panel) { Loading Loading @@ -2070,29 +2108,6 @@ static void dp_catalog_audio_config_acr(struct dp_catalog_audio *audio) dp_write(catalog->exe_mode, io_data, MMSS_DP_AUDIO_ACR_CTRL, acr_ctrl); } static void dp_catalog_audio_safe_to_exit_level(struct dp_catalog_audio *audio) { struct dp_catalog_private *catalog; struct dp_io_data *io_data; u32 mainlink_levels, safe_to_exit_level; catalog = dp_catalog_get_priv(audio); io_data = catalog->io.dp_link; safe_to_exit_level = audio->data; mainlink_levels = dp_read(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS); mainlink_levels &= 0xFE0; mainlink_levels |= safe_to_exit_level; pr_debug("mainlink_level = 0x%x, safe_to_exit_level = 0x%x\n", mainlink_levels, safe_to_exit_level); dp_write(catalog->exe_mode, io_data, DP_MAINLINK_LEVELS, mainlink_levels); } static void dp_catalog_audio_enable(struct dp_catalog_audio *audio) { struct dp_catalog_private *catalog; Loading Loading @@ -2417,6 +2432,7 @@ struct dp_catalog *dp_catalog_get(struct device *dev, struct dp_parser *parser) .update_rg = dp_catalog_ctrl_update_rg, .channel_dealloc = dp_catalog_ctrl_channel_dealloc, .fec_config = dp_catalog_ctrl_fec_config, .mainlink_levels = dp_catalog_ctrl_mainlink_levels, }; struct dp_catalog_audio audio = { .init = dp_catalog_audio_init, Loading @@ -2425,7 +2441,6 @@ struct dp_catalog *dp_catalog_get(struct device *dev, struct dp_parser *parser) .config_sdp = dp_catalog_audio_config_sdp, .set_header = dp_catalog_audio_set_header, .get_header = dp_catalog_audio_get_header, .safe_to_exit_level = dp_catalog_audio_safe_to_exit_level, }; struct dp_catalog_panel panel = { .timing_cfg = dp_catalog_panel_timing_cfg, Loading