On Sat, Aug 28, 2021 at 3:07 PM Andrew Lunn [off-list ref] wrote:
On Sat, Aug 28, 2021 at 05:58:19PM -0400, Michael Chan wrote:
quoted
The current driver APIs to send messages to the firmware allow only one
outstanding message in flight. There is only one buffer for the firmware
response for each firmware channel. To send a firmware message, all
callers must take a mutex and it is released after the firmware response
has been read. This scheme does not allow multiple firmware messages
in flight. Firmware may take a long time to respond to some messages
(e.g. NVRAM related ones) and this causes the mutex to be held for
a long time, blocking other callers.
This patchset intoduces the new driver APIs to address the above
shortcomings. All callers are then updated to use the new APIs.
Hi Michael
Does the firmware already support this? Or is a firmware upgrade also
required.
These changes are compatible with new and old firmware. With newer
firmware, the code introduced in patch 11 will take advantage of the
deferred firmware responses for commands that take longer to complete.
The APIs will then allow another command to be sent to the firmware.
Thanks.