diff options
author | Markus Mayer <mmayer@broadcom.com> | 2017-10-03 02:13:46 +0300 |
---|---|---|
committer | Florian Fainelli <f.fainelli@gmail.com> | 2017-10-07 02:18:46 +0300 |
commit | d56e746f4b5b101b3c12b8e23d20b0c1ded01a5e (patch) | |
tree | 3717f55dbe19c4abce1bb0d0cd7d4c28fad5a34c /drivers | |
parent | 0e9b11413262ef3d64273e15f7631d9836c53c1a (diff) | |
download | linux-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.c | 21 |
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) |