crypto: ccp - move setting PSP master to earlier in the init
authorMario Limonciello <mario.limonciello@amd.com>
Fri, 23 Jun 2023 13:49:54 +0000 (08:49 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 20 Jul 2023 10:13:16 +0000 (22:13 +1200)
Dynamic boost control needs to use platform access symbols
that look for the PSP master as part of initialization.

So move the PSP master before psp_init() so that dynamic boost
control can be initialized properly.

Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccp/psp-dev.c

index e3d6955..3390f0b 100644 (file)
@@ -173,13 +173,14 @@ int psp_dev_init(struct sp_device *sp)
                goto e_err;
        }
 
+       /* master device must be set for platform access */
+       if (psp->sp->set_psp_master_device)
+               psp->sp->set_psp_master_device(psp->sp);
+
        ret = psp_init(psp);
        if (ret)
                goto e_irq;
 
-       if (sp->set_psp_master_device)
-               sp->set_psp_master_device(sp);
-
        /* Enable interrupt */
        iowrite32(-1, psp->io_regs + psp->vdata->inten_reg);
 
@@ -188,6 +189,9 @@ int psp_dev_init(struct sp_device *sp)
        return 0;
 
 e_irq:
+       if (sp->clear_psp_master_device)
+               sp->clear_psp_master_device(sp);
+
        sp_free_psp_irq(psp->sp, psp);
 e_err:
        sp->psp_data = NULL;