Tegra210: SE: remove logic to enable atomic save/restore
This patch removes the logic to set the bit that enables atomic context save/restore when we enter System suspend. The bootrom enables this bit during cold boot and exit from System Suspend, so we can remove this setting from the driver. Change-Id: Id4e08d5048155c970f5e31d9c9dd676c07182ade Signed-off-by: Samuel Payne <spayne@nvidia.com>
This commit is contained in:
parent
11c5b2733a
commit
76a7cd3346
|
@ -186,33 +186,17 @@ static int32_t tegra_se_operation_complete(const tegra_se_dev_t *se_dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Verify the SE context save auto has been enabled.
|
* Returns true if the SE engine is configured to perform SE context save in
|
||||||
* SE_CTX_SAVE_AUTO.ENABLE == ENABLE
|
* hardware.
|
||||||
* If the SE context save auto is not enabled, then set
|
|
||||||
* the context save auto enable and lock the setting.
|
|
||||||
* If the SE context save auto is not enabled and the
|
|
||||||
* enable setting is locked, then return an error.
|
|
||||||
*/
|
*/
|
||||||
static inline int32_t tegra_se_ctx_save_auto_enable(const tegra_se_dev_t *se_dev)
|
static inline int32_t tegra_se_atomic_save_enabled(const tegra_se_dev_t *se_dev)
|
||||||
{
|
{
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
int32_t ret = 0;
|
int32_t ret = 0;
|
||||||
|
|
||||||
val = tegra_se_read_32(se_dev, SE_CTX_SAVE_AUTO_REG_OFFSET);
|
val = tegra_se_read_32(se_dev, SE_CTX_SAVE_AUTO_REG_OFFSET);
|
||||||
if (SE_CTX_SAVE_AUTO_ENABLE(val) == SE_CTX_SAVE_AUTO_DIS) {
|
if (SE_CTX_SAVE_AUTO_ENABLE(val) == SE_CTX_SAVE_AUTO_EN)
|
||||||
if (SE_CTX_SAVE_AUTO_LOCK(val) == SE_CTX_SAVE_AUTO_LOCK_EN) {
|
ret = 1;
|
||||||
ERROR("%s: ERR: Cannot enable atomic. Write locked!\n",
|
|
||||||
__func__);
|
|
||||||
ret = -EACCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Program SE_CTX_SAVE_AUTO */
|
|
||||||
if (ret == 0) {
|
|
||||||
tegra_se_write_32(se_dev, SE_CTX_SAVE_AUTO_REG_OFFSET,
|
|
||||||
SE_CTX_SAVE_AUTO_LOCK_EN |
|
|
||||||
SE_CTX_SAVE_AUTO_EN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -264,7 +248,7 @@ static int32_t tegra_se_context_save_atomic(const tegra_se_dev_t *se_dev)
|
||||||
* SE_CTX_SAVE_AUTO.ENABLE == ENABLE
|
* SE_CTX_SAVE_AUTO.ENABLE == ENABLE
|
||||||
*/
|
*/
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
ret = tegra_se_ctx_save_auto_enable(se_dev);
|
ret = tegra_se_atomic_save_enabled(se_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read the context save progress counter: block_count
|
/* Read the context save progress counter: block_count
|
||||||
|
@ -483,12 +467,6 @@ static void tegra_se_warm_boot_resume(const tegra_se_dev_t *se_dev)
|
||||||
DRBG_RO_ENT_SRC_ENABLE;
|
DRBG_RO_ENT_SRC_ENABLE;
|
||||||
tegra_se_write_32(se_dev, SE_RNG_SRC_CONFIG_REG_OFFSET, val);
|
tegra_se_write_32(se_dev, SE_RNG_SRC_CONFIG_REG_OFFSET, val);
|
||||||
|
|
||||||
/* Enable and lock the SE atomic context save setting */
|
|
||||||
if (tegra_se_ctx_save_auto_enable(se_dev) != 0) {
|
|
||||||
ERROR("%s: ERR: enable SE%d context save auto failed!\n",
|
|
||||||
__func__, se_dev->se_num);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set a random value to SRK to initialize DRBG */
|
/* Set a random value to SRK to initialize DRBG */
|
||||||
tegra_se_generate_srk(se_dev);
|
tegra_se_generate_srk(se_dev);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue