diff options
author | Judy Wang <wangjudy@microsoft.com> | 2022-05-03 14:04:40 +0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-06-06 18:01:21 -0400 |
commit | 05947cb1d8d651b6b4e5f5dcbcef8e58d5ec4b44 (patch) | |
tree | 5f923f86eace0cb198f6c814046113ddbf2b5196 /drivers/tee | |
parent | fb84517d52aa24b5b8bad6abc228459a146b6ba5 (diff) | |
download | u-boot-05947cb1d8d651b6b4e5f5dcbcef8e58d5ec4b44.zip u-boot-05947cb1d8d651b6b4e5f5dcbcef8e58d5ec4b44.tar.gz u-boot-05947cb1d8d651b6b4e5f5dcbcef8e58d5ec4b44.tar.bz2 |
drivers:optee:rpmb: initialize drivers of mmc devices in UCLASS_BLK for rpmb access
CONFIG_MMC only initializes drivers for devices in UCLASS_MMC, we need
to initialize drivers for devices of type IF_TYPE_MMC in UCLASS_BLK as
well because they are the child devices of devices in UCLASS_MMC. This
is required for feature RPMB since it will access eMMC in optee-os.
Signed-off-by: Judy Wang <wangjudy@microsoft.com>
[trini: Add my SoB line and adjust Judy's name in git, having emailed
off-list]
Signed-off-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'drivers/tee')
-rw-r--r-- | drivers/tee/optee/rpmb.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/tee/optee/rpmb.c b/drivers/tee/optee/rpmb.c index 0804fc9..cf5e0a0 100644 --- a/drivers/tee/optee/rpmb.c +++ b/drivers/tee/optee/rpmb.c @@ -72,6 +72,10 @@ static struct mmc *get_mmc(struct optee_private *priv, int dev_id) debug("Cannot find RPMB device\n"); return NULL; } + if (mmc_init(mmc)) { + log(LOGC_BOARD, LOGL_ERR, "%s:MMC device %d init failed\n", __func__, dev_id); + return NULL; + } if (!(mmc->version & MMC_VERSION_MMC)) { debug("Device id %d is not an eMMC device\n", dev_id); return NULL; @@ -104,6 +108,11 @@ static u32 rpmb_get_dev_info(u16 dev_id, struct rpmb_dev_info *info) if (!mmc) return TEE_ERROR_ITEM_NOT_FOUND; + if (mmc_init(mmc)) { + log(LOGC_BOARD, LOGL_ERR, "%s:MMC device %d init failed\n", __func__, dev_id); + return TEE_ERROR_NOT_SUPPORTED; + } + if (!mmc->ext_csd) return TEE_ERROR_GENERIC; |