diff options
author | Jacob Stiffler | 2020-01-02 13:35:49 -0600 |
---|---|---|
committer | Jacob Stiffler | 2020-01-02 13:35:49 -0600 |
commit | d25b062e691dfac662bb72fa6d5f93309e3ac42d (patch) | |
tree | 2d8eaff9f055a6e73a11706aa72ed36be3fdabdf | |
parent | a141f7abfd346f2e0e5a5864620d8f528436c860 (diff) | |
parent | 8182f2054da291169fe488c09791a8203932dfde (diff) | |
download | processor-sdk-u-boot-d25b062e691dfac662bb72fa6d5f93309e3ac42d.tar.gz processor-sdk-u-boot-d25b062e691dfac662bb72fa6d5f93309e3ac42d.tar.xz processor-sdk-u-boot-d25b062e691dfac662bb72fa6d5f93309e3ac42d.zip |
Merge pull request #14 in PROCESSOR-SDK/processor-sdk-u-boot from LCPD-17792 to processor-sdk-u-boot-2019.01
* commit '8182f2054da291169fe488c09791a8203932dfde':
remoteproc: k3-r5: Fix rproc init failure on Split-mode _only_ devices
-rw-r--r-- | drivers/remoteproc/ti_k3_r5f_rproc.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c b/drivers/remoteproc/ti_k3_r5f_rproc.c index 9e6f6c179a..d7fa67e0da 100644 --- a/drivers/remoteproc/ti_k3_r5f_rproc.c +++ b/drivers/remoteproc/ti_k3_r5f_rproc.c | |||
@@ -542,6 +542,7 @@ static int k3_r5f_rproc_configure(struct k3_r5f_core *core) | |||
542 | { | 542 | { |
543 | struct k3_r5f_cluster *cluster = core->cluster; | 543 | struct k3_r5f_cluster *cluster = core->cluster; |
544 | u32 set_cfg = 0, clr_cfg = 0, cfg, ctrl, sts; | 544 | u32 set_cfg = 0, clr_cfg = 0, cfg, ctrl, sts; |
545 | bool lockstep_permitted; | ||
545 | u64 boot_vec = 0; | 546 | u64 boot_vec = 0; |
546 | int ret; | 547 | int ret; |
547 | 548 | ||
@@ -559,8 +560,9 @@ static int k3_r5f_rproc_configure(struct k3_r5f_core *core) | |||
559 | goto out; | 560 | goto out; |
560 | 561 | ||
561 | /* Sanity check for Lockstep mode */ | 562 | /* Sanity check for Lockstep mode */ |
562 | if (cluster->mode && is_primary_core(core) && | 563 | lockstep_permitted = !!(sts & |
563 | !(sts & PROC_BOOT_STATUS_FLAG_R5_LOCKSTEP_PERMITTED)) { | 564 | PROC_BOOT_STATUS_FLAG_R5_LOCKSTEP_PERMITTED); |
565 | if (cluster->mode && is_primary_core(core) && !lockstep_permitted) { | ||
564 | dev_err(core->dev, "LockStep mode not permitted on this device\n"); | 566 | dev_err(core->dev, "LockStep mode not permitted on this device\n"); |
565 | ret = -EINVAL; | 567 | ret = -EINVAL; |
566 | goto out; | 568 | goto out; |
@@ -572,7 +574,7 @@ static int k3_r5f_rproc_configure(struct k3_r5f_core *core) | |||
572 | clr_cfg |= PROC_BOOT_CFG_FLAG_R5_TEINIT; | 574 | clr_cfg |= PROC_BOOT_CFG_FLAG_R5_TEINIT; |
573 | if (cluster->mode == CLUSTER_MODE_LOCKSTEP) | 575 | if (cluster->mode == CLUSTER_MODE_LOCKSTEP) |
574 | set_cfg |= PROC_BOOT_CFG_FLAG_R5_LOCKSTEP; | 576 | set_cfg |= PROC_BOOT_CFG_FLAG_R5_LOCKSTEP; |
575 | else | 577 | else if (lockstep_permitted) |
576 | clr_cfg |= PROC_BOOT_CFG_FLAG_R5_LOCKSTEP; | 578 | clr_cfg |= PROC_BOOT_CFG_FLAG_R5_LOCKSTEP; |
577 | } | 579 | } |
578 | 580 | ||