summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Wahren <stefan.wahren@i2se.com>2018-02-12 21:11:36 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2018-02-22 22:16:21 +0800
commit7b4c5d30d0bd2b22c09d4d993a76e0973a873891 (patch)
treef61a393bcba127dbfbdfa25c3298187647091361
parent4ff8b1dd814ba4c2dc4a8ce3cf77274e01bd1c93 (diff)
downloadlinux-stable-7b4c5d30d0bd2b22c09d4d993a76e0973a873891.tar.gz
linux-stable-7b4c5d30d0bd2b22c09d4d993a76e0973a873891.tar.bz2
linux-stable-7b4c5d30d0bd2b22c09d4d993a76e0973a873891.zip
hwrng: bcm2835 - Handle deferred clock properly
In case the probe of the clock is deferred, we would assume it is optional. This is wrong, so defer the probe of this driver until the clock is available. Fixes: 791af4f4907a ("hwrng: bcm2835 - Manage an optional clock") Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/char/hw_random/bcm2835-rng.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c
index 7a84cec30c3a..6767d965c36c 100644
--- a/drivers/char/hw_random/bcm2835-rng.c
+++ b/drivers/char/hw_random/bcm2835-rng.c
@@ -163,6 +163,8 @@ static int bcm2835_rng_probe(struct platform_device *pdev)
/* Clock is optional on most platforms */
priv->clk = devm_clk_get(dev, NULL);
+ if (IS_ERR(priv->clk) && PTR_ERR(priv->clk) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
priv->rng.name = pdev->name;
priv->rng.init = bcm2835_rng_init;