lkml.org 
[lkml]   [2019]   [Nov]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 4/6] crypto: caam - move RNG presense check into a shared function
    Date
    Move the code to check if RNG block is instantitated into a shared
    function. This will be used by commits that follow.

    Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
    Cc: Chris Healy <cphealy@gmail.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: Horia Geantă <horia.geanta@nxp.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Iuliana Prodan <iuliana.prodan@nxp.com>
    Cc: linux-imx@nxp.com
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    ---
    drivers/crypto/caam/caamrng.c | 10 +---------
    drivers/crypto/caam/intern.h | 14 ++++++++++++++
    2 files changed, 15 insertions(+), 9 deletions(-)

    diff --git a/drivers/crypto/caam/caamrng.c b/drivers/crypto/caam/caamrng.c
    index 6dde8ae3cd9b..70ddfbf90ac7 100644
    --- a/drivers/crypto/caam/caamrng.c
    +++ b/drivers/crypto/caam/caamrng.c
    @@ -314,19 +314,11 @@ void caam_rng_exit(void)
    int caam_rng_init(struct device *ctrldev)
    {
    struct device *dev;
    - u32 rng_inst;
    struct caam_drv_private *priv = dev_get_drvdata(ctrldev);
    int err;
    init_done = false;

    - /* Check for an instantiated RNG before registration */
    - if (priv->era < 10)
    - rng_inst = (rd_reg32(&priv->ctrl->perfmon.cha_num_ls) &
    - CHA_ID_LS_RNG_MASK) >> CHA_ID_LS_RNG_SHIFT;
    - else
    - rng_inst = rd_reg32(&priv->ctrl->vreg.rng) & CHA_VER_NUM_MASK;
    -
    - if (!rng_inst)
    + if (!caam_has_rng(priv))
    return 0;

    dev = caam_jr_alloc();
    diff --git a/drivers/crypto/caam/intern.h b/drivers/crypto/caam/intern.h
    index c7c10c90464b..f815e1ad4608 100644
    --- a/drivers/crypto/caam/intern.h
    +++ b/drivers/crypto/caam/intern.h
    @@ -104,6 +104,20 @@ struct caam_drv_private {
    #endif
    };

    +static inline bool caam_has_rng(struct caam_drv_private *priv)
    +{
    + u32 rng_inst;
    +
    + /* Check for an instantiated RNG before registration */
    + if (priv->era < 10)
    + rng_inst = (rd_reg32(&priv->ctrl->perfmon.cha_num_ls) &
    + CHA_ID_LS_RNG_MASK) >> CHA_ID_LS_RNG_SHIFT;
    + else
    + rng_inst = rd_reg32(&priv->ctrl->vreg.rng) & CHA_VER_NUM_MASK;
    +
    + return rng_inst;
    +}
    +
    #ifdef CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API

    int caam_algapi_init(struct device *dev);
    --
    2.21.0
    \
     
     \ /
      Last update: 2019-11-20 17:56    [W:6.588 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site