* [PATCH 0/2] memory: brcmstb: dpfe: skip downloading firmware
@ 2017-10-02 23:13 Markus Mayer
2017-10-02 23:13 ` [PATCH 2/2] memory: brcmstb: dpfe: skip downloading firmware when possible Markus Mayer
[not found] ` <20171002231347.8671-1-code-7CzEARzsJhSsTnJN9+BGXg@public.gmane.org>
0 siblings, 2 replies; 4+ messages in thread
From: Markus Mayer @ 2017-10-02 23:13 UTC (permalink / raw)
To: Florian Fainelli, Gregory Fong, Brian Norris
Cc: Markus Mayer, Broadcom Kernel List, Device Tree List,
ARM Kernel List, Linux Kernel Mailing List
From: Markus Mayer <mmayer@broadcom.com>
This series lets the DPFE driver skip the DPFE firmware download if the
DCPU is already running. If it's running by the time Linux comes up, it
means the boot loader already downloaded the DPFE firmware.
Markus Mayer (2):
memory: brcmstb: dpfe: introduce is_dcpu_enabled()
memory: brcmstb: dpfe: skip downloading firmware when possible
drivers/memory/brcmstb_dpfe.c | 37 +++++++++++++++++++++++++++++--------
1 file changed, 29 insertions(+), 8 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] memory: brcmstb: dpfe: introduce is_dcpu_enabled()
[not found] ` <20171002231347.8671-1-code-7CzEARzsJhSsTnJN9+BGXg@public.gmane.org>
@ 2017-10-02 23:13 ` Markus Mayer
2017-10-06 23:19 ` [PATCH 0/2] memory: brcmstb: dpfe: skip downloading firmware Florian Fainelli
1 sibling, 0 replies; 4+ messages in thread
From: Markus Mayer @ 2017-10-02 23:13 UTC (permalink / raw)
To: Florian Fainelli, Gregory Fong, Brian Norris
Cc: Markus Mayer, Broadcom Kernel List, Device Tree List,
ARM Kernel List, Linux Kernel Mailing List
From: Markus Mayer <mmayer-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
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-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
---
drivers/memory/brcmstb_dpfe.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c
index 21242c4..3516ee8 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)
--
2.7.4
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] memory: brcmstb: dpfe: skip downloading firmware when possible
2017-10-02 23:13 [PATCH 0/2] memory: brcmstb: dpfe: skip downloading firmware Markus Mayer
@ 2017-10-02 23:13 ` Markus Mayer
[not found] ` <20171002231347.8671-1-code-7CzEARzsJhSsTnJN9+BGXg@public.gmane.org>
1 sibling, 0 replies; 4+ messages in thread
From: Markus Mayer @ 2017-10-02 23:13 UTC (permalink / raw)
To: Florian Fainelli, Gregory Fong, Brian Norris
Cc: Markus Mayer, Broadcom Kernel List, Device Tree List,
ARM Kernel List, Linux Kernel Mailing List
From: Markus Mayer <mmayer@broadcom.com>
We want to skip downloading the DPFE firmware from Linux if it was
already downloaded by the boot loader.
The driver now checks if the DCPU is already running and, if so,
whether it can process commands. If the DCPU processes commands
successfully, the driver skips the firmware download step.
Signed-off-by: Markus Mayer <mmayer@broadcom.com>
---
drivers/memory/brcmstb_dpfe.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/memory/brcmstb_dpfe.c b/drivers/memory/brcmstb_dpfe.c
index 3516ee8..0a7bdbe 100644
--- a/drivers/memory/brcmstb_dpfe.c
+++ b/drivers/memory/brcmstb_dpfe.c
@@ -431,13 +431,25 @@ static int brcmstb_dpfe_download_firmware(struct platform_device *pdev,
const void *fw_blob;
int ret;
+ priv = platform_get_drvdata(pdev);
+
+ /*
+ * Skip downloading the firmware if the DCPU is already running and
+ * responding to commands.
+ */
+ if (is_dcpu_enabled(priv->regs)) {
+ u32 response[MSG_FIELD_MAX];
+
+ ret = __send_command(priv, DPFE_CMD_GET_INFO, response);
+ if (!ret)
+ return 0;
+ }
+
ret = request_firmware(&fw, FIRMWARE_NAME, dev);
/* request_firmware() prints its own error messages. */
if (ret)
return ret;
- priv = platform_get_drvdata(pdev);
-
ret = __verify_firmware(init, fw);
if (ret)
return -EFAULT;
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] memory: brcmstb: dpfe: skip downloading firmware
[not found] ` <20171002231347.8671-1-code-7CzEARzsJhSsTnJN9+BGXg@public.gmane.org>
2017-10-02 23:13 ` [PATCH 1/2] memory: brcmstb: dpfe: introduce is_dcpu_enabled() Markus Mayer
@ 2017-10-06 23:19 ` Florian Fainelli
1 sibling, 0 replies; 4+ messages in thread
From: Florian Fainelli @ 2017-10-06 23:19 UTC (permalink / raw)
To: Markus Mayer, Florian Fainelli, Gregory Fong, Brian Norris
Cc: Markus Mayer, Broadcom Kernel List, Device Tree List,
ARM Kernel List, Linux Kernel Mailing List
On 10/02/2017 04:13 PM, Markus Mayer wrote:
> From: Markus Mayer <mmayer-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
>
> This series lets the DPFE driver skip the DPFE firmware download if the
> DCPU is already running. If it's running by the time Linux comes up, it
> means the boot loader already downloaded the DPFE firmware.
Series applied to drivers/next thanks Markus.
--
--
Florian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-10-06 23:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-02 23:13 [PATCH 0/2] memory: brcmstb: dpfe: skip downloading firmware Markus Mayer
2017-10-02 23:13 ` [PATCH 2/2] memory: brcmstb: dpfe: skip downloading firmware when possible Markus Mayer
[not found] ` <20171002231347.8671-1-code-7CzEARzsJhSsTnJN9+BGXg@public.gmane.org>
2017-10-02 23:13 ` [PATCH 1/2] memory: brcmstb: dpfe: introduce is_dcpu_enabled() Markus Mayer
2017-10-06 23:19 ` [PATCH 0/2] memory: brcmstb: dpfe: skip downloading firmware Florian Fainelli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).