Loading drivers/media/platform/msm/sde/rotator/sde_rotator_base.h +16 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,22 @@ #include "sde_rotator_smmu.h" #include "sde_rotator_formats.h" /* 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_MINOR_SAME(rev1, rev2) \ (SDE_GET_MAJOR_MINOR(rev1) == SDE_GET_MAJOR_MINOR(rev2)) #define SDE_MDP_REV(major, minor, step) \ ((((major) & 0x000F) << 28) | \ (((minor) & 0x0FFF) << 16) | \ ((step) & 0xFFFF)) #define SDE_MDP_HW_REV_107 SDE_MDP_REV(1, 0, 7) /* 8996 v1.0 */ #define SDE_MDP_HW_REV_300 SDE_MDP_REV(3, 0, 0) /* 8998 v1.0 */ #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 */ struct sde_mult_factor { uint32_t numer; uint32_t denom; Loading drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +6 −2 Original line number Diff line number Diff line Loading @@ -2755,9 +2755,13 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, mdata->mdss_version = SDE_REG_READ(mdata, SDE_REG_HW_VERSION); SDEROT_DBG("mdss revision %x\n", mdata->mdss_version); if ((mdata->mdss_version & 0xFFFF0000) == 0x10070000) { if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_107)) { mgr->ops_hw_init = sde_rotator_r1_init; } else if ((mdata->mdss_version & 0xF0000000) == 0x30000000) { } else if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_300) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400)) { mgr->ops_hw_init = sde_rotator_r3_init; } else { ret = -ENODEV; Loading Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_base.h +16 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,22 @@ #include "sde_rotator_smmu.h" #include "sde_rotator_formats.h" /* 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_MINOR_SAME(rev1, rev2) \ (SDE_GET_MAJOR_MINOR(rev1) == SDE_GET_MAJOR_MINOR(rev2)) #define SDE_MDP_REV(major, minor, step) \ ((((major) & 0x000F) << 28) | \ (((minor) & 0x0FFF) << 16) | \ ((step) & 0xFFFF)) #define SDE_MDP_HW_REV_107 SDE_MDP_REV(1, 0, 7) /* 8996 v1.0 */ #define SDE_MDP_HW_REV_300 SDE_MDP_REV(3, 0, 0) /* 8998 v1.0 */ #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 */ struct sde_mult_factor { uint32_t numer; uint32_t denom; Loading
drivers/media/platform/msm/sde/rotator/sde_rotator_core.c +6 −2 Original line number Diff line number Diff line Loading @@ -2755,9 +2755,13 @@ int sde_rotator_core_init(struct sde_rot_mgr **pmgr, mdata->mdss_version = SDE_REG_READ(mdata, SDE_REG_HW_VERSION); SDEROT_DBG("mdss revision %x\n", mdata->mdss_version); if ((mdata->mdss_version & 0xFFFF0000) == 0x10070000) { if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_107)) { mgr->ops_hw_init = sde_rotator_r1_init; } else if ((mdata->mdss_version & 0xF0000000) == 0x30000000) { } else if (IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_300) || IS_SDE_MAJOR_MINOR_SAME(mdata->mdss_version, SDE_MDP_HW_REV_400)) { mgr->ops_hw_init = sde_rotator_r3_init; } else { ret = -ENODEV; Loading