linux-mediatek.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Yong Wu <yong.wu@mediatek.com>
To: Matthias Brugger <matthias.bgg@gmail.com>,
	Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>
Cc: Evan Green <evgreen@chromium.org>,
	Robin Murphy <robin.murphy@arm.com>,
	Tomasz Figa <tfiga@google.com>, Will Deacon <will.deacon@arm.com>,
	linux-mediatek@lists.infradead.org, srv_heupstream@mediatek.com,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	iommu@lists.linux-foundation.org, yingjoe.chen@mediatek.com,
	yong.wu@mediatek.com, youlin.pei@mediatek.com,
	Nicolas Boichat <drinkcat@chromium.org>,
	anan.sun@mediatek.com
Subject: [PATCH v2 02/12] iommu/mediatek: Add probe_defer for smi-larb
Date: Mon, 10 Jun 2019 20:55:03 +0800	[thread overview]
Message-ID: <1560171313-28299-3-git-send-email-yong.wu@mediatek.com> (raw)
In-Reply-To: <1560171313-28299-1-git-send-email-yong.wu@mediatek.com>

The iommu consumer should use device_link to connect with the
smi-larb(supplier). then the smi-larb should run before the iommu
consumer. Here we delay the iommu driver until the smi driver is
ready, then all the iommu consumer always is after the smi driver.

When there is no this patch, if some consumer drivers run before
smi-larb, the supplier link_status is DL_DEV_NO_DRIVER(0) in the
device_link_add, then device_links_driver_bound will use WARN_ON
to complain that the link_status of supplier is not right.

This is a preparing patch for adding device_link.

Signed-off-by: Yong Wu <yong.wu@mediatek.com>
---
 drivers/iommu/mtk_iommu.c    | 2 +-
 drivers/iommu/mtk_iommu_v1.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 6fe3369..f7599d8 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -664,7 +664,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
 			id = i;
 
 		plarbdev = of_find_device_by_node(larbnode);
-		if (!plarbdev) {
+		if (!plarbdev || !plarbdev->dev.driver) {
 			of_node_put(larbnode);
 			return -EPROBE_DEFER;
 		}
diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
index 0b0908c..c43c4a0 100644
--- a/drivers/iommu/mtk_iommu_v1.c
+++ b/drivers/iommu/mtk_iommu_v1.c
@@ -604,7 +604,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
 			plarbdev = of_platform_device_create(
 						larb_spec.np, NULL,
 						platform_bus_type.dev_root);
-			if (!plarbdev) {
+			if (!plarbdev || !plarbdev->dev.driver) {
 				of_node_put(larb_spec.np);
 				return -EPROBE_DEFER;
 			}
-- 
1.9.1

  parent reply	other threads:[~2019-06-10 12:55 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-10 12:55 [PATCH v2 00/12] Clean up "mediatek,larb" after adding device_link Yong Wu
2019-06-10 12:55 ` [PATCH v2 01/12] dt-binding: mediatek: Get rid of mediatek,larb for multimedia HW Yong Wu
2019-06-10 12:55 ` Yong Wu [this message]
2019-06-19 13:52   ` [PATCH v2 02/12] iommu/mediatek: Add probe_defer for smi-larb Matthias Brugger
     [not found]     ` <a11fa818-cf62-cc24-2c41-4688fda5a88f-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-22  2:42       ` Yong Wu
2019-06-10 12:55 ` [PATCH v2 03/12] iommu/mediatek: Add device_link between the consumer and the larb devices Yong Wu
2019-06-10 12:55 ` [PATCH v2 04/12] memory: mtk-smi: Add device-link between smi-larb and smi-common Yong Wu
2019-06-10 12:55 ` [PATCH v2 05/12] media: mtk-jpeg: Get rid of mtk_smi_larb_get/put Yong Wu
2019-06-20 15:20   ` Matthias Brugger
     [not found]     ` <6539751d-1751-f309-1c51-b3f9576c1b99-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-06-22  2:42       ` Yong Wu
2019-06-10 12:55 ` [PATCH v2 06/12] media: mtk-mdp: " Yong Wu
2019-06-10 12:55 ` [PATCH v2 07/12] media: mtk-vcodec: " Yong Wu
2019-06-10 12:55 ` [PATCH v2 08/12] drm/mediatek: " Yong Wu
2019-06-18  6:35   ` CK Hu
2019-06-18 12:14     ` Yong Wu
2019-06-10 12:55 ` [PATCH v2 10/12] iommu/mediatek: Use builtin_platform_driver Yong Wu
     [not found] ` <1560171313-28299-1-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2019-06-10 12:55   ` [PATCH v2 09/12] memory: mtk-smi: Get rid of mtk_smi_larb_get/put Yong Wu
2019-06-10 12:55   ` [PATCH v2 11/12] arm: dts: mediatek: Get rid of mediatek, larb for MM nodes Yong Wu
2019-06-10 12:55 ` [PATCH v2 12/12] arm64: dts: mediatek: Get rid of mediatek,larb " Yong Wu
2019-07-23  2:31 ` [PATCH v2 00/12] Clean up "mediatek,larb" after adding device_link CK Hu
2019-07-27  7:51   ` Yong Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1560171313-28299-3-git-send-email-yong.wu@mediatek.com \
    --to=yong.wu@mediatek.com \
    --cc=anan.sun@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=drinkcat@chromium.org \
    --cc=evgreen@chromium.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=srv_heupstream@mediatek.com \
    --cc=tfiga@google.com \
    --cc=will.deacon@arm.com \
    --cc=yingjoe.chen@mediatek.com \
    --cc=youlin.pei@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).