Loading msm/msm_drv.c +55 −28 Original line number Diff line number Diff line Loading @@ -669,7 +669,8 @@ static int msm_drm_display_thread_create(struct sched_param param, return 0; } static struct msm_kms *_msm_drm_init_helper(struct msm_drm_private *priv, static struct msm_kms *_msm_drm_component_init_helper( struct msm_drm_private *priv, struct drm_device *ddev, struct device *dev, struct platform_device *pdev) { Loading Loading @@ -722,15 +723,13 @@ static struct msm_kms *_msm_drm_init_helper(struct msm_drm_private *priv, return kms; } static int msm_drm_init(struct device *dev, struct drm_driver *drv) static int msm_drm_device_init(struct platform_device *pdev, struct drm_driver *drv) { struct platform_device *pdev = to_platform_device(dev); struct device *dev = &pdev->dev; struct drm_device *ddev; struct msm_drm_private *priv; struct msm_kms *kms = NULL; int ret; struct sched_param param = { 0 }; struct drm_crtc *crtc; int i, ret; ddev = drm_dev_alloc(drv, dev); if (IS_ERR(ddev)) { Loading @@ -750,16 +749,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) ddev->dev_private = priv; priv->dev = ddev; ret = msm_mdss_init(ddev); if (ret) goto mdss_init_fail; priv->wq = alloc_ordered_workqueue("msm_drm", 0); init_waitqueue_head(&priv->pending_crtcs_event); INIT_LIST_HEAD(&priv->client_event_list); INIT_LIST_HEAD(&priv->inactive_list); ret = sde_power_resource_init(pdev, &priv->phandle); if (ret) { pr_err("sde power resource init failed\n"); Loading @@ -772,6 +761,42 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) goto dbg_init_fail; } for (i = 0; i < SDE_POWER_HANDLE_DBUS_ID_MAX; i++) sde_power_data_bus_set_quota(&priv->phandle, i, SDE_POWER_HANDLE_CONT_SPLASH_BUS_AB_QUOTA, SDE_POWER_HANDLE_CONT_SPLASH_BUS_IB_QUOTA); return ret; dbg_init_fail: sde_power_resource_deinit(pdev, &priv->phandle); power_init_fail: priv_alloc_fail: drm_dev_put(ddev); kfree(priv); return ret; } static int msm_drm_component_init(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct drm_device *ddev = platform_get_drvdata(pdev); struct msm_drm_private *priv = ddev->dev_private; struct msm_kms *kms = NULL; int ret; struct sched_param param = { 0 }; struct drm_crtc *crtc; ret = msm_mdss_init(ddev); if (ret) goto mdss_init_fail; priv->wq = alloc_ordered_workqueue("msm_drm", 0); init_waitqueue_head(&priv->pending_crtcs_event); INIT_LIST_HEAD(&priv->client_event_list); INIT_LIST_HEAD(&priv->inactive_list); /* Bind all our sub-components: */ ret = msm_component_bind_all(dev, ddev); if (ret) Loading @@ -784,9 +809,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) ddev->mode_config.funcs = &mode_config_funcs; ddev->mode_config.helper_private = &mode_config_helper_funcs; kms = _msm_drm_init_helper(priv, ddev, dev, pdev); kms = _msm_drm_component_init_helper(priv, ddev, dev, pdev); if (IS_ERR_OR_NULL(kms)) { dev_err(dev, "msm_drm_init_helper failed\n"); dev_err(dev, "msm_drm_component_init_helper failed\n"); goto fail; } Loading Loading @@ -879,15 +904,13 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) msm_drm_uninit(dev); return ret; bind_fail: sde_dbg_destroy(); dbg_init_fail: sde_power_resource_deinit(pdev, &priv->phandle); power_init_fail: msm_mdss_destroy(ddev); mdss_init_fail: kfree(priv); priv_alloc_fail: sde_dbg_destroy(); sde_power_resource_deinit(pdev, &priv->phandle); drm_dev_put(ddev); kfree(priv); return ret; } Loading Loading @@ -1895,7 +1918,7 @@ int msm_get_mixer_count(struct msm_drm_private *priv, static int msm_drm_bind(struct device *dev) { return msm_drm_init(dev, &msm_driver); return msm_drm_component_init(dev); } static void msm_drm_unbind(struct device *dev) Loading @@ -1917,6 +1940,10 @@ static int msm_pdev_probe(struct platform_device *pdev) int ret; struct component_match *match = NULL; ret = msm_drm_device_init(pdev, &msm_driver); if (ret) return ret; ret = add_display_components(&pdev->dev, &match); if (ret) return ret; Loading msm/sde/sde_kms.c +0 −5 Original line number Diff line number Diff line Loading @@ -3195,11 +3195,6 @@ static int _sde_kms_hw_init_blocks(struct sde_kms *sde_kms, struct sde_rm *rm = NULL; int i, rc = -EINVAL; for (i = 0; i < SDE_POWER_HANDLE_DBUS_ID_MAX; i++) sde_power_data_bus_set_quota(&priv->phandle, i, SDE_POWER_HANDLE_CONT_SPLASH_BUS_AB_QUOTA, SDE_POWER_HANDLE_CONT_SPLASH_BUS_IB_QUOTA); _sde_kms_core_hw_rev_init(sde_kms); pr_info("sde hardware revision:0x%x\n", sde_kms->core_rev); Loading Loading
msm/msm_drv.c +55 −28 Original line number Diff line number Diff line Loading @@ -669,7 +669,8 @@ static int msm_drm_display_thread_create(struct sched_param param, return 0; } static struct msm_kms *_msm_drm_init_helper(struct msm_drm_private *priv, static struct msm_kms *_msm_drm_component_init_helper( struct msm_drm_private *priv, struct drm_device *ddev, struct device *dev, struct platform_device *pdev) { Loading Loading @@ -722,15 +723,13 @@ static struct msm_kms *_msm_drm_init_helper(struct msm_drm_private *priv, return kms; } static int msm_drm_init(struct device *dev, struct drm_driver *drv) static int msm_drm_device_init(struct platform_device *pdev, struct drm_driver *drv) { struct platform_device *pdev = to_platform_device(dev); struct device *dev = &pdev->dev; struct drm_device *ddev; struct msm_drm_private *priv; struct msm_kms *kms = NULL; int ret; struct sched_param param = { 0 }; struct drm_crtc *crtc; int i, ret; ddev = drm_dev_alloc(drv, dev); if (IS_ERR(ddev)) { Loading @@ -750,16 +749,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) ddev->dev_private = priv; priv->dev = ddev; ret = msm_mdss_init(ddev); if (ret) goto mdss_init_fail; priv->wq = alloc_ordered_workqueue("msm_drm", 0); init_waitqueue_head(&priv->pending_crtcs_event); INIT_LIST_HEAD(&priv->client_event_list); INIT_LIST_HEAD(&priv->inactive_list); ret = sde_power_resource_init(pdev, &priv->phandle); if (ret) { pr_err("sde power resource init failed\n"); Loading @@ -772,6 +761,42 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) goto dbg_init_fail; } for (i = 0; i < SDE_POWER_HANDLE_DBUS_ID_MAX; i++) sde_power_data_bus_set_quota(&priv->phandle, i, SDE_POWER_HANDLE_CONT_SPLASH_BUS_AB_QUOTA, SDE_POWER_HANDLE_CONT_SPLASH_BUS_IB_QUOTA); return ret; dbg_init_fail: sde_power_resource_deinit(pdev, &priv->phandle); power_init_fail: priv_alloc_fail: drm_dev_put(ddev); kfree(priv); return ret; } static int msm_drm_component_init(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); struct drm_device *ddev = platform_get_drvdata(pdev); struct msm_drm_private *priv = ddev->dev_private; struct msm_kms *kms = NULL; int ret; struct sched_param param = { 0 }; struct drm_crtc *crtc; ret = msm_mdss_init(ddev); if (ret) goto mdss_init_fail; priv->wq = alloc_ordered_workqueue("msm_drm", 0); init_waitqueue_head(&priv->pending_crtcs_event); INIT_LIST_HEAD(&priv->client_event_list); INIT_LIST_HEAD(&priv->inactive_list); /* Bind all our sub-components: */ ret = msm_component_bind_all(dev, ddev); if (ret) Loading @@ -784,9 +809,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) ddev->mode_config.funcs = &mode_config_funcs; ddev->mode_config.helper_private = &mode_config_helper_funcs; kms = _msm_drm_init_helper(priv, ddev, dev, pdev); kms = _msm_drm_component_init_helper(priv, ddev, dev, pdev); if (IS_ERR_OR_NULL(kms)) { dev_err(dev, "msm_drm_init_helper failed\n"); dev_err(dev, "msm_drm_component_init_helper failed\n"); goto fail; } Loading Loading @@ -879,15 +904,13 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) msm_drm_uninit(dev); return ret; bind_fail: sde_dbg_destroy(); dbg_init_fail: sde_power_resource_deinit(pdev, &priv->phandle); power_init_fail: msm_mdss_destroy(ddev); mdss_init_fail: kfree(priv); priv_alloc_fail: sde_dbg_destroy(); sde_power_resource_deinit(pdev, &priv->phandle); drm_dev_put(ddev); kfree(priv); return ret; } Loading Loading @@ -1895,7 +1918,7 @@ int msm_get_mixer_count(struct msm_drm_private *priv, static int msm_drm_bind(struct device *dev) { return msm_drm_init(dev, &msm_driver); return msm_drm_component_init(dev); } static void msm_drm_unbind(struct device *dev) Loading @@ -1917,6 +1940,10 @@ static int msm_pdev_probe(struct platform_device *pdev) int ret; struct component_match *match = NULL; ret = msm_drm_device_init(pdev, &msm_driver); if (ret) return ret; ret = add_display_components(&pdev->dev, &match); if (ret) return ret; Loading
msm/sde/sde_kms.c +0 −5 Original line number Diff line number Diff line Loading @@ -3195,11 +3195,6 @@ static int _sde_kms_hw_init_blocks(struct sde_kms *sde_kms, struct sde_rm *rm = NULL; int i, rc = -EINVAL; for (i = 0; i < SDE_POWER_HANDLE_DBUS_ID_MAX; i++) sde_power_data_bus_set_quota(&priv->phandle, i, SDE_POWER_HANDLE_CONT_SPLASH_BUS_AB_QUOTA, SDE_POWER_HANDLE_CONT_SPLASH_BUS_IB_QUOTA); _sde_kms_core_hw_rev_init(sde_kms); pr_info("sde hardware revision:0x%x\n", sde_kms->core_rev); Loading