On 28.07.2015 17:51, Joonyoung Shim wrote:
This is simplest solution about reported problem[1]. It's no problem to clear channel only when iommu is enabled, if we consider that we cannot recognize iommu errors when iommu is disabled and it have been valid until now. But this cannot be nice solution.
[1] https://lkml.org/lkml/2015/7/21/404
Reported-by: Krzysztof Kozlowski k.kozlowski@samsung.com Signed-off-by: Joonyoung Shim jy0922.shim@samsung.com
I tested this patch on my Odroid XU3-Lite with hardkernel u-boot and it fixes the booting hang. Thanks!
The test was not thorough - only booting and without any display output (HDMI).
Best regards, Krzysztof
v2: add Reported-by.
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 8d362b9..337af02 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -956,7 +956,8 @@ static int fimd_bind(struct device *dev, struct device *master, void *data) if (ctx->display) exynos_drm_create_enc_conn(drm_dev, ctx->display);
- fimd_clear_channels(ctx->crtc);
if (is_drm_iommu_supported(drm_dev))
fimd_clear_channels(ctx->crtc);
ret = drm_iommu_attach_device(drm_dev, dev); if (ret)