dpaa2-ptp: defer probe when portal allocation failed
authorIoana Ciornei <ioana.ciornei@nxp.com>
Fri, 9 Nov 2018 15:26:46 +0000 (15:26 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 18:46:59 +0000 (19:46 +0100)
[ Upstream commit 5500598abbfb5b46201b9768bd9ea873a5eeaece ]

The fsl_mc_portal_allocate can fail when the requested MC portals are
not yet probed by the fsl_mc_allocator. In this situation, the driver
should defer the probe.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/fsl-dpaa2/rtc/rtc.c

index 0d52cb8..318a33c 100644 (file)
@@ -142,7 +142,10 @@ static int rtc_probe(struct fsl_mc_device *mc_dev)
 
        err = fsl_mc_portal_allocate(mc_dev, 0, &mc_dev->mc_io);
        if (err) {
-               dev_err(dev, "fsl_mc_portal_allocate err %d\n", err);
+               if (err == -ENXIO)
+                       err = -EPROBE_DEFER;
+               else
+                       dev_err(dev, "fsl_mc_portal_allocate err %d\n", err);
                goto err_exit;
        }