Message ID | 20210627084737.309163-1-andy.yan@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/rockchip: Check iommu itself instead of it's parent for device_is_available | expand |
On 2021-06-27 09:47, Andy Yan wrote: > When iommu itself is disabled in dts, we should > fallback to non-iommu buffer, check iommu parent > is meanless here. > > Signed-off-by: Andy Yan <andy.yan@rock-chips.com> > --- > > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > index 212bd87c0c4a..0d20c8cc1ffa 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > @@ -366,7 +366,7 @@ static int rockchip_drm_platform_of_probe(struct device *dev) > } > > iommu = of_parse_phandle(port->parent, "iommus", 0); > - if (!iommu || !of_device_is_available(iommu->parent)) { > + if (!iommu || !of_device_is_available(iommu)) { Just wondering, could you use device_iommu_mapped() to avoid poking at the DT at all here, or is it that you need to check remote graph endpoints whose struct device may not be ready yet? Robin. > DRM_DEV_DEBUG(dev, > "no iommu attached for %pOF, using non-iommu buffers\n", > port->parent); >
Hi Robin: On 6/28/21 5:54 PM, Robin Murphy wrote: > On 2021-06-27 09:47, Andy Yan wrote: >> When iommu itself is disabled in dts, we should >> fallback to non-iommu buffer, check iommu parent >> is meanless here. >> >> Signed-off-by: Andy Yan <andy.yan@rock-chips.com> >> --- >> >> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> index 212bd87c0c4a..0d20c8cc1ffa 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> @@ -366,7 +366,7 @@ static int rockchip_drm_platform_of_probe(struct >> device *dev) >> } >> iommu = of_parse_phandle(port->parent, "iommus", 0); >> - if (!iommu || !of_device_is_available(iommu->parent)) { >> + if (!iommu || !of_device_is_available(iommu)) { > > Just wondering, could you use device_iommu_mapped() to avoid poking at > the DT at all here, or is it that you need to check remote graph > endpoints whose struct device may not be ready yet? device_iommu_mapped(dev) can't be called from rockchip_drm_init_iommu, as there is no iommu dev(vop) in these function. > > Robin. > >> DRM_DEV_DEBUG(dev, >> "no iommu attached for %pOF, using non-iommu >> buffers\n", >> port->parent); >> > > >
On Sun, 27 Jun 2021 16:47:37 +0800, Andy Yan wrote: > When iommu itself is disabled in dts, we should > fallback to non-iommu buffer, check iommu parent > is meanless here. Applied, thanks! [1/1] drm/rockchip: Check iommu itself instead of it's parent for device_is_available commit: e1202c7a65b10258f9a11c1d2613c2aa91fe11cd Best regards,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 212bd87c0c4a..0d20c8cc1ffa 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -366,7 +366,7 @@ static int rockchip_drm_platform_of_probe(struct device *dev) } iommu = of_parse_phandle(port->parent, "iommus", 0); - if (!iommu || !of_device_is_available(iommu->parent)) { + if (!iommu || !of_device_is_available(iommu)) { DRM_DEV_DEBUG(dev, "no iommu attached for %pOF, using non-iommu buffers\n", port->parent);
When iommu itself is disabled in dts, we should fallback to non-iommu buffer, check iommu parent is meanless here. Signed-off-by: Andy Yan <andy.yan@rock-chips.com> --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)