Loading Documentation/devicetree/bindings/display/msm/sde.txt +3 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,8 @@ Optional properties: - qcom,sde-dsc-size: A u32 value indicates the address range for each dsc. - qcom,sde-cdm-size: A u32 value indicates the address range for each cdm. - qcom,sde-pp-size: A u32 value indicates the address range for each pingpong. - qcom,sde-te-source: Array of GPIO sources indicating which pingpong TE is sourced to which panel TE gpio. - qcom,sde-wb-size: A u32 value indicates the address range for each writeback. - qcom,sde-len: A u32 entry for SDE address range. - qcom,sde-intf-max-prefetch-lines: Array of u32 values for max prefetch lines on Loading Loading @@ -502,6 +504,7 @@ Example: qcom,sde-pp-off = <0x00071000 0x00071800 0x00072000 0x00072800>; qcom,sde-pp-slave = <0x0 0x0 0x0 0x0>; qcom,sde-te-source = <0x0 0x1 0x0 0x0>; qcom,sde-cdm-off = <0x0007a200>; qcom,sde-dsc-off = <0x00081000 0x00081400>; qcom,sde-intf-max-prefetch-lines = <0x15 0x15 0x15 0x15>; Loading drivers/gpu/drm/msm/sde/sde_encoder.c +3 −2 Original line number Diff line number Diff line Loading @@ -1489,12 +1489,13 @@ static void _sde_encoder_update_vsync_source(struct sde_encoder_virt *sde_enc, vsync_cfg.pp_count = sde_enc->num_phys_encs; vsync_cfg.frame_rate = mode_info.frame_rate; vsync_cfg.vsync_source = sde_enc->cur_master->hw_pp->caps->te_source; if (is_dummy) vsync_cfg.vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_1; else if (disp_info->is_te_using_watchdog_timer) vsync_cfg.vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_0; else vsync_cfg.vsync_source = SDE_VSYNC0_SOURCE_GPIO; vsync_cfg.is_dummy = is_dummy; hw_mdptop->ops.setup_vsync_source(hw_mdptop, &vsync_cfg); Loading drivers/gpu/drm/msm/sde/sde_hw_catalog.c +6 −0 Original line number Diff line number Diff line Loading @@ -249,6 +249,7 @@ enum { DITHER_OFF, DITHER_LEN, DITHER_VER, TE_SOURCE, PP_PROP_MAX, }; Loading Loading @@ -589,6 +590,7 @@ static struct sde_prop_type pp_prop[] = { {DITHER_OFF, "qcom,sde-dither-off", false, PROP_TYPE_U32_ARRAY}, {DITHER_LEN, "qcom,sde-dither-size", false, PROP_TYPE_U32}, {DITHER_VER, "qcom,sde-dither-version", false, PROP_TYPE_U32}, {TE_SOURCE, "qcom,sde-te-source", false, PROP_TYPE_U32_ARRAY}, }; static struct sde_prop_type dsc_prop[] = { Loading Loading @@ -2628,6 +2630,10 @@ static int sde_pp_parse_dt(struct device_node *np, struct sde_mdss_cfg *sde_cfg) snprintf(pp->name, SDE_HW_BLK_NAME_LEN, "pingpong_%u", pp->id - PINGPONG_0); pp->len = PROP_VALUE_ACCESS(prop_value, PP_LEN, 0); pp->te_source = PROP_VALUE_ACCESS(prop_value, TE_SOURCE, i); if (!prop_exists[TE_SOURCE] || pp->te_source > SDE_VSYNC_SOURCE_WD_TIMER_0) pp->te_source = SDE_VSYNC0_SOURCE_GPIO; sblk->te.base = PROP_VALUE_ACCESS(prop_value, TE_OFF, i); sblk->te.id = SDE_PINGPONG_TE; Loading drivers/gpu/drm/msm/sde/sde_hw_catalog.h +1 −0 Original line number Diff line number Diff line Loading @@ -653,6 +653,7 @@ struct sde_ds_cfg { */ struct sde_pingpong_cfg { SDE_HW_BLK_INFO; u32 te_source; const struct sde_pingpong_sub_blks *sblk; }; Loading Loading
Documentation/devicetree/bindings/display/msm/sde.txt +3 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,8 @@ Optional properties: - qcom,sde-dsc-size: A u32 value indicates the address range for each dsc. - qcom,sde-cdm-size: A u32 value indicates the address range for each cdm. - qcom,sde-pp-size: A u32 value indicates the address range for each pingpong. - qcom,sde-te-source: Array of GPIO sources indicating which pingpong TE is sourced to which panel TE gpio. - qcom,sde-wb-size: A u32 value indicates the address range for each writeback. - qcom,sde-len: A u32 entry for SDE address range. - qcom,sde-intf-max-prefetch-lines: Array of u32 values for max prefetch lines on Loading Loading @@ -502,6 +504,7 @@ Example: qcom,sde-pp-off = <0x00071000 0x00071800 0x00072000 0x00072800>; qcom,sde-pp-slave = <0x0 0x0 0x0 0x0>; qcom,sde-te-source = <0x0 0x1 0x0 0x0>; qcom,sde-cdm-off = <0x0007a200>; qcom,sde-dsc-off = <0x00081000 0x00081400>; qcom,sde-intf-max-prefetch-lines = <0x15 0x15 0x15 0x15>; Loading
drivers/gpu/drm/msm/sde/sde_encoder.c +3 −2 Original line number Diff line number Diff line Loading @@ -1489,12 +1489,13 @@ static void _sde_encoder_update_vsync_source(struct sde_encoder_virt *sde_enc, vsync_cfg.pp_count = sde_enc->num_phys_encs; vsync_cfg.frame_rate = mode_info.frame_rate; vsync_cfg.vsync_source = sde_enc->cur_master->hw_pp->caps->te_source; if (is_dummy) vsync_cfg.vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_1; else if (disp_info->is_te_using_watchdog_timer) vsync_cfg.vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_0; else vsync_cfg.vsync_source = SDE_VSYNC0_SOURCE_GPIO; vsync_cfg.is_dummy = is_dummy; hw_mdptop->ops.setup_vsync_source(hw_mdptop, &vsync_cfg); Loading
drivers/gpu/drm/msm/sde/sde_hw_catalog.c +6 −0 Original line number Diff line number Diff line Loading @@ -249,6 +249,7 @@ enum { DITHER_OFF, DITHER_LEN, DITHER_VER, TE_SOURCE, PP_PROP_MAX, }; Loading Loading @@ -589,6 +590,7 @@ static struct sde_prop_type pp_prop[] = { {DITHER_OFF, "qcom,sde-dither-off", false, PROP_TYPE_U32_ARRAY}, {DITHER_LEN, "qcom,sde-dither-size", false, PROP_TYPE_U32}, {DITHER_VER, "qcom,sde-dither-version", false, PROP_TYPE_U32}, {TE_SOURCE, "qcom,sde-te-source", false, PROP_TYPE_U32_ARRAY}, }; static struct sde_prop_type dsc_prop[] = { Loading Loading @@ -2628,6 +2630,10 @@ static int sde_pp_parse_dt(struct device_node *np, struct sde_mdss_cfg *sde_cfg) snprintf(pp->name, SDE_HW_BLK_NAME_LEN, "pingpong_%u", pp->id - PINGPONG_0); pp->len = PROP_VALUE_ACCESS(prop_value, PP_LEN, 0); pp->te_source = PROP_VALUE_ACCESS(prop_value, TE_SOURCE, i); if (!prop_exists[TE_SOURCE] || pp->te_source > SDE_VSYNC_SOURCE_WD_TIMER_0) pp->te_source = SDE_VSYNC0_SOURCE_GPIO; sblk->te.base = PROP_VALUE_ACCESS(prop_value, TE_OFF, i); sblk->te.id = SDE_PINGPONG_TE; Loading
drivers/gpu/drm/msm/sde/sde_hw_catalog.h +1 −0 Original line number Diff line number Diff line Loading @@ -653,6 +653,7 @@ struct sde_ds_cfg { */ struct sde_pingpong_cfg { SDE_HW_BLK_INFO; u32 te_source; const struct sde_pingpong_sub_blks *sblk; }; Loading