Loading drivers/gpu/drm/msm/sde/sde_hw_sspp.c +13 −1 Original line number Original line Diff line number Diff line Loading @@ -771,6 +771,16 @@ static void _sde_hw_sspp_setup_scaler3(struct sde_hw_pipe *ctx, SDE_REG_WRITE(&ctx->hw, QSEED3_OP_MODE + idx, op_mode); SDE_REG_WRITE(&ctx->hw, QSEED3_OP_MODE + idx, op_mode); } } static u32 _sde_hw_sspp_get_scaler3_ver(struct sde_hw_pipe *ctx) { u32 idx; if (!ctx || _sspp_subblk_offset(ctx, SDE_SSPP_SCALER_QSEED3, &idx)) return 0; return SDE_REG_READ(&ctx->hw, QSEED3_HW_VERSION + idx); } /** /** * sde_hw_sspp_setup_rects() * sde_hw_sspp_setup_rects() */ */ Loading Loading @@ -1170,8 +1180,10 @@ static void _setup_layer_ops(struct sde_hw_pipe *c, if (sde_hw_sspp_multirect_enabled(c->cap)) if (sde_hw_sspp_multirect_enabled(c->cap)) c->ops.setup_multirect = sde_hw_sspp_setup_multirect; c->ops.setup_multirect = sde_hw_sspp_setup_multirect; if (test_bit(SDE_SSPP_SCALER_QSEED3, &features)) if (test_bit(SDE_SSPP_SCALER_QSEED3, &features)) { c->ops.setup_scaler = _sde_hw_sspp_setup_scaler3; c->ops.setup_scaler = _sde_hw_sspp_setup_scaler3; c->ops.get_scaler_ver = _sde_hw_sspp_get_scaler3_ver; } if (test_bit(SDE_SSPP_HSIC, &features)) { if (test_bit(SDE_SSPP_HSIC, &features)) { /* TODO: add version based assignment here as inline or macro */ /* TODO: add version based assignment here as inline or macro */ Loading drivers/gpu/drm/msm/sde/sde_hw_sspp.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -574,6 +574,12 @@ struct sde_hw_sspp_ops { struct sde_hw_pixel_ext *pe_cfg, struct sde_hw_pixel_ext *pe_cfg, void *scaler_cfg); void *scaler_cfg); /** * get_scaler_ver - get scaler h/w version * @ctx: Pointer to pipe context */ u32 (*get_scaler_ver)(struct sde_hw_pipe *ctx); /** /** * setup_sys_cache - setup system cache configuration * setup_sys_cache - setup system cache configuration * @ctx: Pointer to pipe context * @ctx: Pointer to pipe context Loading drivers/gpu/drm/msm/sde/sde_kms.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -641,6 +641,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .soft_reset = dsi_display_soft_reset, .soft_reset = dsi_display_soft_reset, .pre_kickoff = dsi_conn_pre_kickoff, .pre_kickoff = dsi_conn_pre_kickoff, .clk_ctrl = dsi_display_clk_ctrl, .clk_ctrl = dsi_display_clk_ctrl, .set_power = dsi_display_set_power, .get_topology = dsi_conn_get_topology, .get_topology = dsi_conn_get_topology, .get_dst_format = dsi_display_get_dst_format .get_dst_format = dsi_display_get_dst_format }; }; Loading drivers/gpu/drm/msm/sde/sde_plane.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -3806,6 +3806,10 @@ static void _sde_plane_install_properties(struct drm_plane *plane, sde_kms_info_stop(info); sde_kms_info_stop(info); } } if (psde->pipe_hw && psde->pipe_hw->ops.get_scaler_ver) sde_kms_info_add_keyint(info, "scaler_step_ver", psde->pipe_hw->ops.get_scaler_ver(psde->pipe_hw)); sde_kms_info_add_keyint(info, "max_linewidth", sde_kms_info_add_keyint(info, "max_linewidth", psde->pipe_sblk->maxlinewidth); psde->pipe_sblk->maxlinewidth); sde_kms_info_add_keyint(info, "max_upscale", sde_kms_info_add_keyint(info, "max_upscale", Loading Loading
drivers/gpu/drm/msm/sde/sde_hw_sspp.c +13 −1 Original line number Original line Diff line number Diff line Loading @@ -771,6 +771,16 @@ static void _sde_hw_sspp_setup_scaler3(struct sde_hw_pipe *ctx, SDE_REG_WRITE(&ctx->hw, QSEED3_OP_MODE + idx, op_mode); SDE_REG_WRITE(&ctx->hw, QSEED3_OP_MODE + idx, op_mode); } } static u32 _sde_hw_sspp_get_scaler3_ver(struct sde_hw_pipe *ctx) { u32 idx; if (!ctx || _sspp_subblk_offset(ctx, SDE_SSPP_SCALER_QSEED3, &idx)) return 0; return SDE_REG_READ(&ctx->hw, QSEED3_HW_VERSION + idx); } /** /** * sde_hw_sspp_setup_rects() * sde_hw_sspp_setup_rects() */ */ Loading Loading @@ -1170,8 +1180,10 @@ static void _setup_layer_ops(struct sde_hw_pipe *c, if (sde_hw_sspp_multirect_enabled(c->cap)) if (sde_hw_sspp_multirect_enabled(c->cap)) c->ops.setup_multirect = sde_hw_sspp_setup_multirect; c->ops.setup_multirect = sde_hw_sspp_setup_multirect; if (test_bit(SDE_SSPP_SCALER_QSEED3, &features)) if (test_bit(SDE_SSPP_SCALER_QSEED3, &features)) { c->ops.setup_scaler = _sde_hw_sspp_setup_scaler3; c->ops.setup_scaler = _sde_hw_sspp_setup_scaler3; c->ops.get_scaler_ver = _sde_hw_sspp_get_scaler3_ver; } if (test_bit(SDE_SSPP_HSIC, &features)) { if (test_bit(SDE_SSPP_HSIC, &features)) { /* TODO: add version based assignment here as inline or macro */ /* TODO: add version based assignment here as inline or macro */ Loading
drivers/gpu/drm/msm/sde/sde_hw_sspp.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -574,6 +574,12 @@ struct sde_hw_sspp_ops { struct sde_hw_pixel_ext *pe_cfg, struct sde_hw_pixel_ext *pe_cfg, void *scaler_cfg); void *scaler_cfg); /** * get_scaler_ver - get scaler h/w version * @ctx: Pointer to pipe context */ u32 (*get_scaler_ver)(struct sde_hw_pipe *ctx); /** /** * setup_sys_cache - setup system cache configuration * setup_sys_cache - setup system cache configuration * @ctx: Pointer to pipe context * @ctx: Pointer to pipe context Loading
drivers/gpu/drm/msm/sde/sde_kms.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -641,6 +641,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .soft_reset = dsi_display_soft_reset, .soft_reset = dsi_display_soft_reset, .pre_kickoff = dsi_conn_pre_kickoff, .pre_kickoff = dsi_conn_pre_kickoff, .clk_ctrl = dsi_display_clk_ctrl, .clk_ctrl = dsi_display_clk_ctrl, .set_power = dsi_display_set_power, .get_topology = dsi_conn_get_topology, .get_topology = dsi_conn_get_topology, .get_dst_format = dsi_display_get_dst_format .get_dst_format = dsi_display_get_dst_format }; }; Loading
drivers/gpu/drm/msm/sde/sde_plane.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -3806,6 +3806,10 @@ static void _sde_plane_install_properties(struct drm_plane *plane, sde_kms_info_stop(info); sde_kms_info_stop(info); } } if (psde->pipe_hw && psde->pipe_hw->ops.get_scaler_ver) sde_kms_info_add_keyint(info, "scaler_step_ver", psde->pipe_hw->ops.get_scaler_ver(psde->pipe_hw)); sde_kms_info_add_keyint(info, "max_linewidth", sde_kms_info_add_keyint(info, "max_linewidth", psde->pipe_sblk->maxlinewidth); psde->pipe_sblk->maxlinewidth); sde_kms_info_add_keyint(info, "max_upscale", sde_kms_info_add_keyint(info, "max_upscale", Loading