drm/msm: Allocate msm_drm_private early and pass it as driver data
In preparation for registering the mdss interrupt controller earlier, move the allocation of msm_drm_private from component bind time to msm_drv probe; this also allows us to use the devm variant of kzalloc. Since it is not right to allocate the drm_device at probe time (as it should exist only when all components are bound, and taken down when components get cleaned up), the only way to make this happen is to pass a pointer to msm_drm_private as driver data (like done in many other DRM drivers), instead of one to drm_device like it's currently done in this driver. This is also simplifying some bind/unbind functions around drm/msm, as some of them are using drm_device just to grab a pointer to the msm_drm_private structure, which we now retrieve in one call. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Link: https://lore.kernel.org/r/20211201105210.24970-2-angelogioacchino.delregno@collabora.com Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
committed by
Rob Clark
parent
83b965d118
commit
ec919e6e71
@ -110,8 +110,7 @@ destroy_dsi:
|
||||
|
||||
static int dsi_bind(struct device *dev, struct device *master, void *data)
|
||||
{
|
||||
struct drm_device *drm = dev_get_drvdata(master);
|
||||
struct msm_drm_private *priv = drm->dev_private;
|
||||
struct msm_drm_private *priv = dev_get_drvdata(master);
|
||||
struct msm_dsi *msm_dsi = dev_get_drvdata(dev);
|
||||
|
||||
priv->dsi[msm_dsi->id] = msm_dsi;
|
||||
@ -122,8 +121,7 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
|
||||
static void dsi_unbind(struct device *dev, struct device *master,
|
||||
void *data)
|
||||
{
|
||||
struct drm_device *drm = dev_get_drvdata(master);
|
||||
struct msm_drm_private *priv = drm->dev_private;
|
||||
struct msm_drm_private *priv = dev_get_drvdata(master);
|
||||
struct msm_dsi *msm_dsi = dev_get_drvdata(dev);
|
||||
|
||||
priv->dsi[msm_dsi->id] = NULL;
|
||||
|
Reference in New Issue
Block a user