Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1536898 > unrolled thread

[PATCH] scsi: hisi_sas: support deferred probe for v2 hw

Started byJohn Garry <john.garry@huawei.com>
First post2016-12-06 13:20 +0100
Last post2016-12-07 07:00 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] scsi: hisi_sas: support deferred probe for v2 hw John Garry <john.garry@huawei.com> - 2016-12-06 13:20 +0100
    Re: [PATCH] scsi: hisi_sas: support deferred probe for v2 hw zhangfei <zhangfei.gao@linaro.org> - 2016-12-07 07:00 +0100

#1536898 — [PATCH] scsi: hisi_sas: support deferred probe for v2 hw

FromJohn Garry <john.garry@huawei.com>
Date2016-12-06 13:20 +0100
Subject[PATCH] scsi: hisi_sas: support deferred probe for v2 hw
Message-ID<sLmSZ-1WA-15@gated-at.bofh.it>
In the hip06 and hip07 SoCs, the interrupt lines from the
SAS controllers are connected to mbigen hw module [1].
The mbigen module is probed with module_init, and, as such,
is not guaranteed to probe before the SAS driver. So we need
to support deferred probe.

We check for probe deferral in the hw layer probe, so we not
probe into the main layer and allocate shost, memories, etc.,
to later learn that we need to defer the probe.

[1] ./Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt

Signed-off-by: John Garry <john.garry@huawei.com>

diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
index c0e7bf2..a179592 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
@@ -2971,6 +2971,18 @@ static int hisi_sas_v2_init(struct hisi_hba *hisi_hba)
 
 static int hisi_sas_v2_probe(struct platform_device *pdev)
 {
+	/*
+	 * Check if we should defer the probe before we probe the
+	 * upper layer, as it's hard to defer later on.
+	 */
+	int ret = platform_get_irq(pdev, 0);
+
+	if (ret < 0) {
+		if (ret != -EPROBE_DEFER)
+			dev_err(&pdev->dev, "cannot obtain irq\n");
+		return ret;
+	}
+
 	return hisi_sas_probe(pdev, &hisi_sas_v2_hw);
 }
 
-- 
1.9.1

[toc] | [next] | [standalone]


#1537503

Fromzhangfei <zhangfei.gao@linaro.org>
Date2016-12-07 07:00 +0100
Message-ID<sLDqO-4jB-11@gated-at.bofh.it>
In reply to#1536898

On 2016年12月06日 20:44, John Garry wrote:
> In the hip06 and hip07 SoCs, the interrupt lines from the
> SAS controllers are connected to mbigen hw module [1].
> The mbigen module is probed with module_init, and, as such,
> is not guaranteed to probe before the SAS driver. So we need
> to support deferred probe.
>
> We check for probe deferral in the hw layer probe, so we not
> probe into the main layer and allocate shost, memories, etc.,
> to later learn that we need to defer the probe.
>
> [1] ./Documentation/devicetree/bindings/interrupt-controller/hisilicon,mbigen-v2.txt
>
> Signed-off-by: John Garry <john.garry@huawei.com>
Reviewed-by: Zhangfei Gao <zhangfei.gao@linaro.org>

Thanks

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web