summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMarkus Mayer <mmayer@broadcom.com>2017-10-03 02:13:46 +0300
committerFlorian Fainelli <f.fainelli@gmail.com>2017-10-07 02:18:46 +0300
commitd56e746f4b5b101b3c12b8e23d20b0c1ded01a5e (patch)
tree3717f55dbe19c4abce1bb0d0cd7d4c28fad5a34c /drivers
parent0e9b11413262ef3d64273e15f7631d9836c53c1a (diff)
downloadlinux-d56e746f4b5b101b3c12b8e23d20b0c1ded01a5e.tar.xz
memory: brcmstb: dpfe: introduce is_dcpu_enabled()
In order to check whether or not the DCPU is running, we introduce a function called is_dcpu_enabled(). Signed-off-by: Markus Mayer <mmayer@broadcom.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/memory/brcmstb_dpfe.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c
index 21242c401af5..3516ee81ae5c 100644
--- a/drivers/memory/brcmstb_dpfe.c
+++ b/drivers/memory/brcmstb_dpfe.c
@@ -202,17 +202,26 @@ static const u32 dpfe_commands[DPFE_CMD_MAX][MSG_FIELD_MAX] = {
},
};
+static bool is_dcpu_enabled(void __iomem *regs)
+{
+ u32 val;
+
+ val = readl_relaxed(regs + REG_DCPU_RESET);
+
+ return !(val & DCPU_RESET_MASK);
+}
+
static void __disable_dcpu(void __iomem *regs)
{
u32 val;
- /* Check if DCPU is running */
+ if (!is_dcpu_enabled(regs))
+ return;
+
+ /* Put DCPU in reset if it's running. */
val = readl_relaxed(regs + REG_DCPU_RESET);
- if (!(val & DCPU_RESET_MASK)) {
- /* Put DCPU in reset */
- val |= (1 << DCPU_RESET_SHIFT);
- writel_relaxed(val, regs + REG_DCPU_RESET);
- }
+ val |= (1 << DCPU_RESET_SHIFT);
+ writel_relaxed(val, regs + REG_DCPU_RESET);
}
static void __enable_dcpu(void __iomem *regs)