Message ID | 20200406051131.225748-1-hsinyi@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: mediatek: fix device passed to cmdq | expand |
Hi Hsin-Yi Thanks for sending the patch upstream On 6/4/20 7:11, Hsin-Yi Wang wrote: > drm device is now probed from mmsys. We need to use mmsys device to get gce > nodes. Fix following errors: > > [ 0.740068] mediatek-drm mediatek-drm.1.auto: error -2 can't parse gce-client-reg property (0) > [ 0.748721] mediatek-drm mediatek-drm.1.auto: error -2 can't parse gce-client-reg property (0) > ... > [ 2.659645] mediatek-drm mediatek-drm.1.auto: failed to request channel > [ 2.666270] mediatek-drm mediatek-drm.1.auto: failed to request channel > > Fixes: 1d367541aded ("soc / drm: mediatek: Fix mediatek-drm device probing") > Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> Right, the mmsys device is now the parent of the drm device. Reviewed-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Also I tested drm with the patch applied and adding the gce client register to my device-tree. Tested-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Thanks, Enric > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 6 ++++-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 ++- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 615a54e60fe2..8621f0289399 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -822,14 +822,16 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, > > #if IS_REACHABLE(CONFIG_MTK_CMDQ) > mtk_crtc->cmdq_client = > - cmdq_mbox_create(dev, drm_crtc_index(&mtk_crtc->base), > + cmdq_mbox_create(mtk_crtc->mmsys_dev, > + drm_crtc_index(&mtk_crtc->base), > 2000); > if (IS_ERR(mtk_crtc->cmdq_client)) { > dev_dbg(dev, "mtk_crtc %d failed to create mailbox client, writing register by CPU now\n", > drm_crtc_index(&mtk_crtc->base)); > mtk_crtc->cmdq_client = NULL; > } > - ret = of_property_read_u32_index(dev->of_node, "mediatek,gce-events", > + ret = of_property_read_u32_index(mtk_crtc->mmsys_dev->of_node, > + "mediatek,gce-events", > drm_crtc_index(&mtk_crtc->base), > &mtk_crtc->cmdq_event); > if (ret) > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index e2bb0d19ef99..dc78e86bccc0 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -517,7 +517,8 @@ static int mtk_drm_probe(struct platform_device *pdev) > goto err_node; > } > > - ret = mtk_ddp_comp_init(dev, node, comp, comp_id, NULL); > + ret = mtk_ddp_comp_init(dev->parent, node, comp, > + comp_id, NULL); > if (ret) { > of_node_put(node); > goto err_node; >
Hi, Hsin-Yi: Hsin-Yi Wang <hsinyi@chromium.org> 於 2020年4月6日 週一 下午1:12寫道: > > drm device is now probed from mmsys. We need to use mmsys device to get gce > nodes. Fix following errors: > > [ 0.740068] mediatek-drm mediatek-drm.1.auto: error -2 can't parse gce-client-reg property (0) > [ 0.748721] mediatek-drm mediatek-drm.1.auto: error -2 can't parse gce-client-reg property (0) > ... > [ 2.659645] mediatek-drm mediatek-drm.1.auto: failed to request channel > [ 2.666270] mediatek-drm mediatek-drm.1.auto: failed to request channel Reviewed-by: Chun-Kuang Hu <chunkuang.hu@kernel.org> > > Fixes: 1d367541aded ("soc / drm: mediatek: Fix mediatek-drm device probing") > Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> > --- > drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 6 ++++-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 ++- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > index 615a54e60fe2..8621f0289399 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c > @@ -822,14 +822,16 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, > > #if IS_REACHABLE(CONFIG_MTK_CMDQ) > mtk_crtc->cmdq_client = > - cmdq_mbox_create(dev, drm_crtc_index(&mtk_crtc->base), > + cmdq_mbox_create(mtk_crtc->mmsys_dev, > + drm_crtc_index(&mtk_crtc->base), > 2000); > if (IS_ERR(mtk_crtc->cmdq_client)) { > dev_dbg(dev, "mtk_crtc %d failed to create mailbox client, writing register by CPU now\n", > drm_crtc_index(&mtk_crtc->base)); > mtk_crtc->cmdq_client = NULL; > } > - ret = of_property_read_u32_index(dev->of_node, "mediatek,gce-events", > + ret = of_property_read_u32_index(mtk_crtc->mmsys_dev->of_node, > + "mediatek,gce-events", > drm_crtc_index(&mtk_crtc->base), > &mtk_crtc->cmdq_event); > if (ret) > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index e2bb0d19ef99..dc78e86bccc0 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -517,7 +517,8 @@ static int mtk_drm_probe(struct platform_device *pdev) > goto err_node; > } > > - ret = mtk_ddp_comp_init(dev, node, comp, comp_id, NULL); > + ret = mtk_ddp_comp_init(dev->parent, node, comp, > + comp_id, NULL); > if (ret) { > of_node_put(node); > goto err_node; > -- > 2.26.0.292.g33ef6b2f38-goog > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 615a54e60fe2..8621f0289399 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -822,14 +822,16 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, #if IS_REACHABLE(CONFIG_MTK_CMDQ) mtk_crtc->cmdq_client = - cmdq_mbox_create(dev, drm_crtc_index(&mtk_crtc->base), + cmdq_mbox_create(mtk_crtc->mmsys_dev, + drm_crtc_index(&mtk_crtc->base), 2000); if (IS_ERR(mtk_crtc->cmdq_client)) { dev_dbg(dev, "mtk_crtc %d failed to create mailbox client, writing register by CPU now\n", drm_crtc_index(&mtk_crtc->base)); mtk_crtc->cmdq_client = NULL; } - ret = of_property_read_u32_index(dev->of_node, "mediatek,gce-events", + ret = of_property_read_u32_index(mtk_crtc->mmsys_dev->of_node, + "mediatek,gce-events", drm_crtc_index(&mtk_crtc->base), &mtk_crtc->cmdq_event); if (ret) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index e2bb0d19ef99..dc78e86bccc0 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -517,7 +517,8 @@ static int mtk_drm_probe(struct platform_device *pdev) goto err_node; } - ret = mtk_ddp_comp_init(dev, node, comp, comp_id, NULL); + ret = mtk_ddp_comp_init(dev->parent, node, comp, + comp_id, NULL); if (ret) { of_node_put(node); goto err_node;
drm device is now probed from mmsys. We need to use mmsys device to get gce nodes. Fix following errors: [ 0.740068] mediatek-drm mediatek-drm.1.auto: error -2 can't parse gce-client-reg property (0) [ 0.748721] mediatek-drm mediatek-drm.1.auto: error -2 can't parse gce-client-reg property (0) ... [ 2.659645] mediatek-drm mediatek-drm.1.auto: failed to request channel [ 2.666270] mediatek-drm mediatek-drm.1.auto: failed to request channel Fixes: 1d367541aded ("soc / drm: mediatek: Fix mediatek-drm device probing") Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org> --- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 6 ++++-- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-)