]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
ARM: stm32mp: Do not acquire RIFSC semaphore if CID filtering is disabled
authorGatien Chevallier <gatien.chevallier@foss.st.com>
Tue, 10 Feb 2026 10:26:03 +0000 (11:26 +0100)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Tue, 24 Feb 2026 16:49:43 +0000 (17:49 +0100)
If the CID filtering is enabled, the semaphore mode is disabled as well.
To avoid an incorrect behavior and error trace, add a check of CID
filtering state before acquiring the semaphore.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
arch/arm/mach-stm32mp/stm32mp2/rifsc.c

index cf8026088f35bab200e066295de7459217110d56..01ffc9f27984438cc35063a53d623fb57fff5adf 100644 (file)
@@ -208,7 +208,7 @@ int stm32_rifsc_grant_access_by_id(ofnode device_node, u32 id)
         * If the peripheral is in semaphore mode, take the semaphore so that
         * the CID1 has the ownership.
         */
-       if (cid_reg_value & CIDCFGR_SEMEN &&
+       if (cid_reg_value & CIDCFGR_CFEN && cid_reg_value & CIDCFGR_SEMEN &&
            (FIELD_GET(RIFSC_RISC_SEMWL_MASK, cid_reg_value) & BIT(RIF_CID1))) {
                err = stm32_rifsc_acquire_semaphore(rifsc_base, id);
                if (err) {