drm/msm/mdp4: refactor HW revision detection into read_mdp_hw_revision
authorDavid Heidelberg <david@ixit.cz>
Mon, 5 Jul 2021 23:16:40 +0000 (01:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Sep 2021 07:50:37 +0000 (09:50 +0200)
[ 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>
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c

index 2f75e39..b73af9d 100644 (file)
@@ -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 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;
        int ret = 0;
 
        pm_runtime_get_sync(dev->dev);
 
-       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);
-
-       DBG("found MDP4 version v%d.%d", major, minor);
+       read_mdp_hw_revision(mdp4_kms, &major, &minor);
 
        if (major != 4) {
                DRM_DEV_ERROR(dev->dev, "unexpected MDP version: v%d.%d\n",
@@ -409,6 +402,22 @@ fail:
        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 platform_device *pdev = to_platform_device(dev->dev);