summaryrefslogtreecommitdiff
path: root/drivers/crypto/ccp/psp-dev.c
diff options
context:
space:
mode:
authorMario Limonciello <mario.limonciello@amd.com>2023-06-23 08:49:54 -0500
committerHerbert Xu <herbert@gondor.apana.org.au>2023-07-20 22:13:16 +1200
commitb8440d55f7d4ad2b669902301c87c482faf9a8f4 (patch)
treee2a3f329a66c2d7e6a3af59a1e61638fb5b08800 /drivers/crypto/ccp/psp-dev.c
parente938b08ad8cd7b757b7b37e8fb1c20897dd3ec09 (diff)
downloadlinux-b8440d55f7d4ad2b669902301c87c482faf9a8f4.tar.gz
linux-b8440d55f7d4ad2b669902301c87c482faf9a8f4.tar.bz2
linux-b8440d55f7d4ad2b669902301c87c482faf9a8f4.zip
crypto: ccp - move setting PSP master to earlier in the init
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>
Diffstat (limited to 'drivers/crypto/ccp/psp-dev.c')
-rw-r--r--drivers/crypto/ccp/psp-dev.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c
index e3d6955d3265..3390f0bd6408 100644
--- a/drivers/crypto/ccp/psp-dev.c
+++ b/drivers/crypto/ccp/psp-dev.c
@@ -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;