drm/msm: allow passing struct msm_kms to msm_drv_probe()
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Mon, 9 Oct 2023 17:48:37 +0000 (20:48 +0300)
committerRob Clark <robdclark@chromium.org>
Mon, 9 Oct 2023 18:31:30 +0000 (11:31 -0700)
In preparation of moving resource allocation to the probe time, allow
MSM KMS drivers to pass struct msm_kms pointer via msm_drv_probe().

Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/561627/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
drivers/gpu/drm/msm/msm_drv.c
drivers/gpu/drm/msm/msm_drv.h

index aa6ba2cf4b840618eb6c6d67bb2f3211fd26afd0..b64b1bd0686b0ad2d500a1bcd7274ff708f1c33f 100644 (file)
@@ -1299,7 +1299,7 @@ static int dpu_kms_init(struct drm_device *ddev)
 
 static int dpu_dev_probe(struct platform_device *pdev)
 {
-       return msm_drv_probe(&pdev->dev, dpu_kms_init);
+       return msm_drv_probe(&pdev->dev, dpu_kms_init, NULL);
 }
 
 static int dpu_dev_remove(struct platform_device *pdev)
index 700df4040e9a198dc87607f875f3a5bea44b8beb..324355b68733933ae641205ea74854b75f7522e5 100644 (file)
@@ -557,7 +557,7 @@ static const struct dev_pm_ops mdp4_pm_ops = {
 
 static int mdp4_probe(struct platform_device *pdev)
 {
-       return msm_drv_probe(&pdev->dev, mdp4_kms_init);
+       return msm_drv_probe(&pdev->dev, mdp4_kms_init, NULL);
 }
 
 static int mdp4_remove(struct platform_device *pdev)
index 92bf9d949d0998b7400d169429f53eb32a932948..fbbc99378c60dfe54b242c67c6dd01f28320ef82 100644 (file)
@@ -939,7 +939,7 @@ static int mdp5_dev_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return msm_drv_probe(&pdev->dev, mdp5_kms_init);
+       return msm_drv_probe(&pdev->dev, mdp5_kms_init, NULL);
 }
 
 static int mdp5_dev_remove(struct platform_device *pdev)
index 4bd028fa750065f1f7d20dc95fdcbd336be0985a..002c50125f40d4ebcde5422402948a56f9daff6b 100644 (file)
@@ -1230,7 +1230,8 @@ const struct component_master_ops msm_drm_ops = {
 };
 
 int msm_drv_probe(struct device *master_dev,
-       int (*kms_init)(struct drm_device *dev))
+       int (*kms_init)(struct drm_device *dev),
+       struct msm_kms *kms)
 {
        struct msm_drm_private *priv;
        struct component_match *match = NULL;
@@ -1240,6 +1241,7 @@ int msm_drv_probe(struct device *master_dev,
        if (!priv)
                return -ENOMEM;
 
+       priv->kms = kms;
        priv->kms_init = kms_init;
        dev_set_drvdata(master_dev, priv);
 
@@ -1275,7 +1277,7 @@ int msm_drv_probe(struct device *master_dev,
 
 static int msm_pdev_probe(struct platform_device *pdev)
 {
-       return msm_drv_probe(&pdev->dev, NULL);
+       return msm_drv_probe(&pdev->dev, NULL, NULL);
 }
 
 static int msm_pdev_remove(struct platform_device *pdev)
index 5eda9f04de0de9ee07f55d3da35bbf702f97741a..ef31e17757c453e21ba72c2d8efa66c4af5f29bc 100644 (file)
@@ -570,7 +570,8 @@ int msm_pm_prepare(struct device *dev);
 void msm_pm_complete(struct device *dev);
 
 int msm_drv_probe(struct device *dev,
-       int (*kms_init)(struct drm_device *dev));
+       int (*kms_init)(struct drm_device *dev),
+       struct msm_kms *kms);
 void msm_drv_shutdown(struct platform_device *pdev);