remoteproc/k3-r5: fix probe failure on Split-mode _only_ devices
authorSuman Anna <s-anna@ti.com>
Fri, 20 Dec 2019 21:48:58 +0000 (15:48 -0600)
committerSuman Anna <s-anna@ti.com>
Mon, 23 Dec 2019 16:54:59 +0000 (10:54 -0600)
commit6d9257abc0adfec315d20ee2dbab5fcbc1326d8b
tree8576d9bbba7876f3d4ebdc6c421bd39fb85883b7
parentf4f7150c0a8dc6b577eb2cd6a89f5d81d71e3c64
remoteproc/k3-r5: fix probe failure on Split-mode _only_ devices

The R5F subsystem/cluster on K3 SoCs can support both LockStep and
Split-modes (superset) or just Split-mode depending on an eFUSE
capability register. The k3_r5_rproc_configure() function is used to
configure the R5F remote processors in remoteproc mode, and performs
this by requesting the System Firmware as per the requested DT properties.
This function initializes identical settings for both cores in LockStep
mode by first programming it for Split-mode and then reverting back
to LockStep mode after the settings initialization. The Split-mode
setting is done on Core0 always irrespective of the mode.

The LockStep configuration bit is Read-only though on Split-mode _only_
devices and as such the System Firmware does not allow the LockStep
mode bit to be configured on such devices. The current logic in
k3_r5_rproc_configure() fails on Split-mode devices because of this
unconditional programming of the LockStep mode bit.

Fix this by limiting the LockStep mode bit clear configuration only on
devices supporting both LockStep/Split-modes.

Reported-by: Andreas Dannenberg <dannenberg@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
drivers/remoteproc/ti_k3_r5_remoteproc.c