1eaa12e351c3fa5d27d00849a665451b476e3dbc
When the M4 coprocessor is not yet running, the driver previously
called rproc_boot() synchronously from probe(), which blocked the
boot process until the rootfs was mounted and the ELF image was
readable.
Switch to request_firmware_nowait() for the firmware-load path
(case b). probe() now returns immediately; the firmware loader
invokes wago_rproc_fw_callback() once the image is available.
rproc_boot() and register_rpmsg_driver() are called from the
callback, which runs in a kthread/workqueue context where blocking
is safe. LEDs become available after the callback fires.
The attach path (case a, M4 already running / RPROC_DETACHED) is
unchanged and still completes synchronously.
Additional fixes in this commit:
- Pass rproc_np->phandle to rproc_get_by_phandle() instead of
the of_node pointer, fixing a type mismatch.
- Add <linux/delay.h> and <linux/firmware.h> includes.
- Improve comments in wago_rproc_start() and probe() to clearly
distinguish the two boot paths.
Signed-off-by: Heinrich Toews <ht@twx-software.de>
…
…
…
…
…
…
…
…
Linux kernel
============
There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.
In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``. The formatted documentation can also be read online at:
https://www.kernel.org/doc/html/latest/
There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.
Description
Languages
C
97.6%
Assembly
1%
Shell
0.5%
Python
0.3%
Makefile
0.3%