Loading drivers/media/platform/msm/sde/rotator/sde_rotator_base.h +5 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ /* HW Revisions for different targets */ #define SDE_GET_MAJOR_REV(rev) ((rev) >> 28) #define SDE_GET_MAJOR_MINOR(rev) ((rev) >> 16) #define IS_SDE_MAJOR_SAME(rev1, rev2) \ (SDE_GET_MAJOR_REV((rev1)) == SDE_GET_MAJOR_REV((rev2))) #define IS_SDE_MAJOR_MINOR_SAME(rev1, rev2) \ (SDE_GET_MAJOR_MINOR(rev1) == SDE_GET_MAJOR_MINOR(rev2)) Loading @@ -42,6 +46,7 @@ #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) /* sm8150 v1.0 */ #define SDE_MDP_HW_REV_530 SDE_MDP_REV(5, 3, 0) /* sm6150 v1.0 */ #define SDE_MDP_VBIF_4_LEVEL_REMAPPER 4 #define SDE_MDP_VBIF_8_LEVEL_REMAPPER 8 Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +2 −2 Original line number Diff line number Diff line Loading @@ -3125,12 +3125,12 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, SDE_MDP_HW_REV_400) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_410) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, IS_SDE_MAJOR_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; if (!IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, if (!IS_SDE_MAJOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_500) && !sde_rotator_get_clk(mgr, SDE_ROTATOR_CLK_MDSS_AXI)) { Loading drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +25 −0 Original line number Diff line number Diff line Loading @@ -3101,6 +3101,31 @@ static int sde_rotator_hw_rev_init(struct sde_hw_rotator *rot) 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_530)) { 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, Loading Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_base.h +5 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ /* HW Revisions for different targets */ #define SDE_GET_MAJOR_REV(rev) ((rev) >> 28) #define SDE_GET_MAJOR_MINOR(rev) ((rev) >> 16) #define IS_SDE_MAJOR_SAME(rev1, rev2) \ (SDE_GET_MAJOR_REV((rev1)) == SDE_GET_MAJOR_REV((rev2))) #define IS_SDE_MAJOR_MINOR_SAME(rev1, rev2) \ (SDE_GET_MAJOR_MINOR(rev1) == SDE_GET_MAJOR_MINOR(rev2)) Loading @@ -42,6 +46,7 @@ #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) /* sm8150 v1.0 */ #define SDE_MDP_HW_REV_530 SDE_MDP_REV(5, 3, 0) /* sm6150 v1.0 */ #define SDE_MDP_VBIF_4_LEVEL_REMAPPER 4 #define SDE_MDP_VBIF_8_LEVEL_REMAPPER 8 Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +2 −2 Original line number Diff line number Diff line Loading @@ -3125,12 +3125,12 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, SDE_MDP_HW_REV_400) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_410) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, IS_SDE_MAJOR_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; if (!IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, if (!IS_SDE_MAJOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_500) && !sde_rotator_get_clk(mgr, SDE_ROTATOR_CLK_MDSS_AXI)) { Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c +25 −0 Original line number Diff line number Diff line Loading @@ -3101,6 +3101,31 @@ static int sde_rotator_hw_rev_init(struct sde_hw_rotator *rot) 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_530)) { 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, Loading