From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753266AbcGTDCb (ORCPT ); Tue, 19 Jul 2016 23:02:31 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:39103 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753205AbcGTDC2 (ORCPT ); Tue, 19 Jul 2016 23:02:28 -0400 From: Yong Wu To: Matthias Brugger , David Airlie , Philipp Zabel , Hans Verkuil CC: Mauro Carvalho Chehab , Tiffany Lin , Honghui Zhang , Bibby Hsieh , YT Shen , CK Hu , Daniel Kurtz , Tomasz Figa , Arnd Bergmann , Lucas Stach , , , , , , , Yong Wu Subject: [PATCH 2/3] drm/mediatek: Add probe-defer for MTK IOMMU and SMI Date: Wed, 20 Jul 2016 11:02:00 +0800 Message-ID: <1468983721-3627-2-git-send-email-yong.wu@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1468983721-3627-1-git-send-email-yong.wu@mediatek.com> References: <1468983721-3627-1-git-send-email-yong.wu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If DRM begin to probe before SMI probe done. It will hang: [ 7.832359] Call trace: [ 7.834778] [] mtk_smi_larb_get+0x24/0xa8 [ 7.840300] [] mtk_drm_crtc_enable+0x6c/0x450 Use the new interface(mtk_smi_larb_is_ready) to wait for IOMMU and SMI probe done. Signed-off-by: Yong Wu --- drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c index 3970fcf..3ef3124 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "mtk_drm_drv.h" #include "mtk_drm_plane.h" #include "mtk_drm_ddp_comp.h" @@ -201,6 +202,10 @@ int mtk_ddp_comp_init(struct device *dev, struct device_node *node, } of_node_put(larb_node); + /* Wait until MTK IOMMU and SMI probe done.*/ + if (!mtk_smi_larb_is_ready(&larb_pdev->dev)) + return -EPROBE_DEFER; + comp->larb_dev = &larb_pdev->dev; return 0; -- 1.8.1.1.dirty