Skip to content

Commit

Permalink
memory: brcmstb: dpfe: skip downloading firmware when possible
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>
  • Loading branch information
Markus Mayer authored and ffainelli committed Oct 6, 2017
1 parent d56e746 commit a56d339
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions drivers/memory/brcmstb_dpfe.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit a56d339

Please sign in to comment.