Loading rotator/sde_rotator_core.c +18 −3 Original line number Diff line number Diff line Loading @@ -79,6 +79,10 @@ #define BUS_VOTE_19_MHZ 153600000 #define ROT_HAS_UBWC(caps) (test_bit(SDE_CAPS_UBWC_2, caps) ||\ test_bit(SDE_CAPS_UBWC_3, caps) ||\ test_bit(SDE_CAPS_UBWC_4, caps)) /* forward prototype */ static int sde_rotator_update_perf(struct sde_rot_mgr *mgr); Loading Loading @@ -2033,14 +2037,25 @@ static int sde_rotator_validate_img_roi(struct sde_rotation_item *item) static int sde_rotator_validate_fmt_and_item_flags( struct sde_rotation_config *config, struct sde_rotation_item *item) { struct sde_mdp_format_params *fmt; struct sde_mdp_format_params *in_fmt, *out_fmt; struct sde_rot_data_type *mdata = sde_rot_get_mdata(); bool has_ubwc; fmt = sde_get_format_params(item->input.format); in_fmt = sde_get_format_params(item->input.format); out_fmt = sde_get_format_params(item->output.format); if ((item->flags & SDE_ROTATION_DEINTERLACE) && sde_mdp_is_ubwc_format(fmt)) { sde_mdp_is_ubwc_format(in_fmt)) { SDEROT_DBG("cannot perform deinterlace on tiled formats\n"); return -EINVAL; } has_ubwc = ROT_HAS_UBWC(mdata->sde_caps_map); if (!has_ubwc && (sde_mdp_is_ubwc_format(in_fmt) || sde_mdp_is_ubwc_format(out_fmt))) { SDEROT_ERR("ubwc format is not supported\n"); return -EINVAL; } return 0; } Loading Loading
rotator/sde_rotator_core.c +18 −3 Original line number Diff line number Diff line Loading @@ -79,6 +79,10 @@ #define BUS_VOTE_19_MHZ 153600000 #define ROT_HAS_UBWC(caps) (test_bit(SDE_CAPS_UBWC_2, caps) ||\ test_bit(SDE_CAPS_UBWC_3, caps) ||\ test_bit(SDE_CAPS_UBWC_4, caps)) /* forward prototype */ static int sde_rotator_update_perf(struct sde_rot_mgr *mgr); Loading Loading @@ -2033,14 +2037,25 @@ static int sde_rotator_validate_img_roi(struct sde_rotation_item *item) static int sde_rotator_validate_fmt_and_item_flags( struct sde_rotation_config *config, struct sde_rotation_item *item) { struct sde_mdp_format_params *fmt; struct sde_mdp_format_params *in_fmt, *out_fmt; struct sde_rot_data_type *mdata = sde_rot_get_mdata(); bool has_ubwc; fmt = sde_get_format_params(item->input.format); in_fmt = sde_get_format_params(item->input.format); out_fmt = sde_get_format_params(item->output.format); if ((item->flags & SDE_ROTATION_DEINTERLACE) && sde_mdp_is_ubwc_format(fmt)) { sde_mdp_is_ubwc_format(in_fmt)) { SDEROT_DBG("cannot perform deinterlace on tiled formats\n"); return -EINVAL; } has_ubwc = ROT_HAS_UBWC(mdata->sde_caps_map); if (!has_ubwc && (sde_mdp_is_ubwc_format(in_fmt) || sde_mdp_is_ubwc_format(out_fmt))) { SDEROT_ERR("ubwc format is not supported\n"); return -EINVAL; } return 0; } Loading