diff --git a/drivers/drm/meson_drv.h b/drivers/drm/meson_drv.h index a7de4bc03..6a36562d7 100644 --- a/drivers/drm/meson_drv.h +++ b/drivers/drm/meson_drv.h @@ -121,7 +121,8 @@ int meson_atomic_commit(struct drm_device *dev, void meson_atomic_helper_commit_tail(struct drm_atomic_state *old_state); /*meson of parse*/ -void meson_of_init(struct drm_device *dev, struct meson_drm *priv); +void meson_of_init(struct device *vpu_dev, struct drm_device *dev, + struct meson_drm *priv); /*******************************/ #ifdef CONFIG_DEBUG_FS diff --git a/drivers/drm/meson_of_parser.c b/drivers/drm/meson_of_parser.c index 7b3960d3c..8eaca738e 100644 --- a/drivers/drm/meson_of_parser.c +++ b/drivers/drm/meson_of_parser.c @@ -97,7 +97,8 @@ static void am_meson_vpu_get_plane_crtc_mask(struct meson_drm *priv, } } -void meson_of_init(struct drm_device *dev, struct meson_drm *priv) +void meson_of_init(struct device *vpu_dev, struct drm_device *dev, + struct meson_drm *priv) { int ret; u32 osd_occupied_index; @@ -108,10 +109,12 @@ void meson_of_init(struct drm_device *dev, struct meson_drm *priv) meson_parse_dma_mask(dev->dev); - ret = of_property_read_u8(dev->dev->of_node, + ret = of_property_read_u8(vpu_dev->of_node, "osd_ver", &pipeline->osd_version); + if (ret) + DRM_ERROR("osd_ver parser failed, need fix it!!\n"); - ret = of_property_read_u32(dev->dev->of_node, + ret = of_property_read_u32(vpu_dev->of_node, "osd_occupied_index", &osd_occupied_index); if (!ret) priv->osd_occupied_index = osd_occupied_index; diff --git a/drivers/drm/meson_vpu.c b/drivers/drm/meson_vpu.c index 8a339b227..048e79656 100644 --- a/drivers/drm/meson_vpu.c +++ b/drivers/drm/meson_vpu.c @@ -177,7 +177,7 @@ static int am_meson_vpu_bind(struct device *dev, vpu_topology_populate(pipeline); meson_vpu_block_state_init(private, private->pipeline); - meson_of_init(drm_dev, private); + meson_of_init(dev, drm_dev, private); ret = am_meson_plane_create(private); if (ret) {