drm/msm/mdp4: refactor HW revision detection into read_mdp_hw_revision
[ Upstream commit 4d319afe666b0fc9a9855ba9bdf9ae3710ecf431 ] Inspired by MDP5 code. Also use DRM_DEV_INFO for MDP version as MDP5 does. Cosmetic change: uint32_t -> u32 - checkpatch suggestion. Signed-off-by: David Heidelberg <david@ixit.cz> Link: https://lore.kernel.org/r/20210705231641.315804-1-david@ixit.cz Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
416929eaf4
commit
90363618b5
@@ -19,20 +19,13 @@ static int mdp4_hw_init(struct msm_kms *kms)
|
|||||||
{
|
{
|
||||||
struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
|
struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms));
|
||||||
struct drm_device *dev = mdp4_kms->dev;
|
struct drm_device *dev = mdp4_kms->dev;
|
||||||
uint32_t version, major, minor, dmap_cfg, vg_cfg;
|
u32 major, minor, dmap_cfg, vg_cfg;
|
||||||
unsigned long clk;
|
unsigned long clk;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
pm_runtime_get_sync(dev->dev);
|
pm_runtime_get_sync(dev->dev);
|
||||||
|
|
||||||
mdp4_enable(mdp4_kms);
|
read_mdp_hw_revision(mdp4_kms, &major, &minor);
|
||||||
version = mdp4_read(mdp4_kms, REG_MDP4_VERSION);
|
|
||||||
mdp4_disable(mdp4_kms);
|
|
||||||
|
|
||||||
major = FIELD(version, MDP4_VERSION_MAJOR);
|
|
||||||
minor = FIELD(version, MDP4_VERSION_MINOR);
|
|
||||||
|
|
||||||
DBG("found MDP4 version v%d.%d", major, minor);
|
|
||||||
|
|
||||||
if (major != 4) {
|
if (major != 4) {
|
||||||
DRM_DEV_ERROR(dev->dev, "unexpected MDP version: v%d.%d\n",
|
DRM_DEV_ERROR(dev->dev, "unexpected MDP version: v%d.%d\n",
|
||||||
@@ -409,6 +402,22 @@ fail:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void read_mdp_hw_revision(struct mdp4_kms *mdp4_kms,
|
||||||
|
u32 *major, u32 *minor)
|
||||||
|
{
|
||||||
|
struct drm_device *dev = mdp4_kms->dev;
|
||||||
|
u32 version;
|
||||||
|
|
||||||
|
mdp4_enable(mdp4_kms);
|
||||||
|
version = mdp4_read(mdp4_kms, REG_MDP4_VERSION);
|
||||||
|
mdp4_disable(mdp4_kms);
|
||||||
|
|
||||||
|
*major = FIELD(version, MDP4_VERSION_MAJOR);
|
||||||
|
*minor = FIELD(version, MDP4_VERSION_MINOR);
|
||||||
|
|
||||||
|
DRM_DEV_INFO(dev->dev, "MDP4 version v%d.%d", *major, *minor);
|
||||||
|
}
|
||||||
|
|
||||||
struct msm_kms *mdp4_kms_init(struct drm_device *dev)
|
struct msm_kms *mdp4_kms_init(struct drm_device *dev)
|
||||||
{
|
{
|
||||||
struct platform_device *pdev = to_platform_device(dev->dev);
|
struct platform_device *pdev = to_platform_device(dev->dev);
|
||||||
|
|||||||
Reference in New Issue
Block a user