Loading drivers/media/platform/msm/sde/rotator/sde_rotator_base.h +3 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #define SDE_MDP_HW_REV_301 SDE_MDP_REV(3, 0, 1) /* 8998 v1.1 */ #define SDE_MDP_HW_REV_400 SDE_MDP_REV(4, 0, 0) /* sdm845 v1.0 */ #define SDE_MDP_HW_REV_410 SDE_MDP_REV(4, 1, 0) /* sdm670 v1.0 */ #define SDE_MDP_HW_REV_500 SDE_MDP_REV(5, 0, 0) /* sdm855 v1.0 */ #define SDE_MDP_VBIF_4_LEVEL_REMAPPER 4 #define SDE_MDP_VBIF_8_LEVEL_REMAPPER 8 Loading Loading @@ -125,6 +126,7 @@ enum sde_rot_type { * @SDE_CAPS_SBUF_1: stream buffer support for inline rotation * @SDE_CAPS_UBWC_2: universal bandwidth compression version 2 * @SDE_CAPS_PARTIALWR: partial write override * @SDE_CAPS_HW_TIMESTAMP: rotator has hw timestamp support */ enum sde_caps_settings { SDE_CAPS_R1_WB, Loading @@ -134,6 +136,7 @@ enum sde_caps_settings { SDE_CAPS_SBUF_1, SDE_CAPS_UBWC_2, SDE_CAPS_PARTIALWR, SDE_CAPS_HW_TIMESTAMP, SDE_CAPS_MAX, }; Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +3 −1 Original line number Diff line number Diff line Loading @@ -3075,7 +3075,9 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_410)) { SDE_MDP_HW_REV_410) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_500)) { mgr->ops_hw_init = sde_rotator_r3_init; mgr->min_rot_clk = ROT_MIN_ROT_CLK; } else { Loading drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +28 −3 Original line number Diff line number Diff line Loading @@ -2866,7 +2866,32 @@ static int sde_rotator_hw_rev_init(struct sde_hw_rotator *rot) SDE_ROTREG_WRITE(rot->mdss_base, REGDMA_TIMESTAMP_REG, 0); /* features exposed via mdss h/w version */ if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400) || if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_500)) { SDEROT_DBG("Supporting sys cache inline rotation\n"); set_bit(SDE_CAPS_SBUF_1, mdata->sde_caps_map); set_bit(SDE_CAPS_UBWC_2, mdata->sde_caps_map); set_bit(SDE_CAPS_PARTIALWR, mdata->sde_caps_map); set_bit(SDE_CAPS_HW_TIMESTAMP, mdata->sde_caps_map); rot->inpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_inpixfmts; rot->num_inpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_inpixfmts); rot->outpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_outpixfmts; rot->num_outpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_outpixfmts); rot->inpixfmts[SDE_ROTATOR_MODE_SBUF] = sde_hw_rotator_v4_inpixfmts_sbuf; rot->num_inpixfmt[SDE_ROTATOR_MODE_SBUF] = ARRAY_SIZE(sde_hw_rotator_v4_inpixfmts_sbuf); rot->outpixfmts[SDE_ROTATOR_MODE_SBUF] = sde_hw_rotator_v4_outpixfmts_sbuf; rot->num_outpixfmt[SDE_ROTATOR_MODE_SBUF] = ARRAY_SIZE(sde_hw_rotator_v4_outpixfmts_sbuf); rot->downscale_caps = "LINEAR/1.5/2/4/8/16/32/64 TILE/1.5/2/4 TP10/1.5/2"; } else if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_410)) { SDEROT_DBG("Supporting sys cache inline rotation\n"); Loading Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_base.h +3 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ #define SDE_MDP_HW_REV_301 SDE_MDP_REV(3, 0, 1) /* 8998 v1.1 */ #define SDE_MDP_HW_REV_400 SDE_MDP_REV(4, 0, 0) /* sdm845 v1.0 */ #define SDE_MDP_HW_REV_410 SDE_MDP_REV(4, 1, 0) /* sdm670 v1.0 */ #define SDE_MDP_HW_REV_500 SDE_MDP_REV(5, 0, 0) /* sdm855 v1.0 */ #define SDE_MDP_VBIF_4_LEVEL_REMAPPER 4 #define SDE_MDP_VBIF_8_LEVEL_REMAPPER 8 Loading Loading @@ -125,6 +126,7 @@ enum sde_rot_type { * @SDE_CAPS_SBUF_1: stream buffer support for inline rotation * @SDE_CAPS_UBWC_2: universal bandwidth compression version 2 * @SDE_CAPS_PARTIALWR: partial write override * @SDE_CAPS_HW_TIMESTAMP: rotator has hw timestamp support */ enum sde_caps_settings { SDE_CAPS_R1_WB, Loading @@ -134,6 +136,7 @@ enum sde_caps_settings { SDE_CAPS_SBUF_1, SDE_CAPS_UBWC_2, SDE_CAPS_PARTIALWR, SDE_CAPS_HW_TIMESTAMP, SDE_CAPS_MAX, }; Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +3 −1 Original line number Diff line number Diff line Loading @@ -3075,7 +3075,9 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_410)) { SDE_MDP_HW_REV_410) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_500)) { mgr->ops_hw_init = sde_rotator_r3_init; mgr->min_rot_clk = ROT_MIN_ROT_CLK; } else { Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +28 −3 Original line number Diff line number Diff line Loading @@ -2866,7 +2866,32 @@ static int sde_rotator_hw_rev_init(struct sde_hw_rotator *rot) SDE_ROTREG_WRITE(rot->mdss_base, REGDMA_TIMESTAMP_REG, 0); /* features exposed via mdss h/w version */ if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400) || if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_500)) { SDEROT_DBG("Supporting sys cache inline rotation\n"); set_bit(SDE_CAPS_SBUF_1, mdata->sde_caps_map); set_bit(SDE_CAPS_UBWC_2, mdata->sde_caps_map); set_bit(SDE_CAPS_PARTIALWR, mdata->sde_caps_map); set_bit(SDE_CAPS_HW_TIMESTAMP, mdata->sde_caps_map); rot->inpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_inpixfmts; rot->num_inpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_inpixfmts); rot->outpixfmts[SDE_ROTATOR_MODE_OFFLINE] = sde_hw_rotator_v4_outpixfmts; rot->num_outpixfmt[SDE_ROTATOR_MODE_OFFLINE] = ARRAY_SIZE(sde_hw_rotator_v4_outpixfmts); rot->inpixfmts[SDE_ROTATOR_MODE_SBUF] = sde_hw_rotator_v4_inpixfmts_sbuf; rot->num_inpixfmt[SDE_ROTATOR_MODE_SBUF] = ARRAY_SIZE(sde_hw_rotator_v4_inpixfmts_sbuf); rot->outpixfmts[SDE_ROTATOR_MODE_SBUF] = sde_hw_rotator_v4_outpixfmts_sbuf; rot->num_outpixfmt[SDE_ROTATOR_MODE_SBUF] = ARRAY_SIZE(sde_hw_rotator_v4_outpixfmts_sbuf); rot->downscale_caps = "LINEAR/1.5/2/4/8/16/32/64 TILE/1.5/2/4 TP10/1.5/2"; } else if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_410)) { SDEROT_DBG("Supporting sys cache inline rotation\n"); Loading