• Andrey Smirnov's avatar
    crypto: caam - make sure clocks are enabled first · 796114f5
    Andrey Smirnov authored
    In order to access IP block's registers we need to enable appropriate
    clocks first, otherwise we are risking hanging the CPU.
    
    The problem becomes very apparent when trying to use CAAM driver built
    as a kernel module. In that case caam_probe() gets called after
    clk_disable_unused() which means all of the necessary clocks are
    guaranteed to be disabled.
    
    Coincidentally, this change also fixes iomap leak introduced by early
    return (instead of "goto iounmap_ctrl") in commit
    41fc54afae70 ("crypto: caam - simplfy clock initialization")
    
    Tested on ZII i.MX6Q+ RDU2
    
    Fixes: 176435ad ("crypto: caam - defer probing until QMan is available")
    Fixes: 41fc54afae70 ("crypto: caam - simplfy clock initialization")
    Signed-off-by: default avatarAndrey 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-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Tested-by: default avatarHoria Geantă <horia.geanta@nxp.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    796114f5
ctrl.c 26.5 KB