Commit f76fe120 authored by Ben Hutchings's avatar Ben Hutchings

sfc: Update and improve kernel-doc for efx_mcdi_state & efx_mcdi_iface

Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
parent 369327fa
...@@ -11,14 +11,14 @@ ...@@ -11,14 +11,14 @@
#define EFX_MCDI_H #define EFX_MCDI_H
/** /**
* enum efx_mcdi_state * enum efx_mcdi_state - MCDI request handling state
* @MCDI_STATE_QUIESCENT: No pending MCDI requests. If the caller holds the * @MCDI_STATE_QUIESCENT: No pending MCDI requests. If the caller holds the
* mcdi_lock then they are able to move to MCDI_STATE_RUNNING * mcdi @iface_lock then they are able to move to %MCDI_STATE_RUNNING
* @MCDI_STATE_RUNNING: There is an MCDI request pending. Only the thread that * @MCDI_STATE_RUNNING: There is an MCDI request pending. Only the thread that
* moved into this state is allowed to move out of it. * moved into this state is allowed to move out of it.
* @MCDI_STATE_COMPLETED: An MCDI request has completed, but the owning thread * @MCDI_STATE_COMPLETED: An MCDI request has completed, but the owning thread
* has not yet consumed the result. For all other threads, equivalent to * has not yet consumed the result. For all other threads, equivalent to
* MCDI_STATE_RUNNING. * %MCDI_STATE_RUNNING.
*/ */
enum efx_mcdi_state { enum efx_mcdi_state {
MCDI_STATE_QUIESCENT, MCDI_STATE_QUIESCENT,
...@@ -32,25 +32,23 @@ enum efx_mcdi_mode { ...@@ -32,25 +32,23 @@ enum efx_mcdi_mode {
}; };
/** /**
* struct efx_mcdi_iface * struct efx_mcdi_iface - MCDI protocol context
* @state: Interface state. Waited for by mcdi_wq. * @state: Request handling state. Waited for by @wq.
* @wq: Wait queue for threads waiting for state != STATE_RUNNING
* @iface_lock: Protects @credits, @seqno, @resprc, @resplen
* @mode: Poll for mcdi completion, or wait for an mcdi_event. * @mode: Poll for mcdi completion, or wait for an mcdi_event.
* Serialised by @lock * @wq: Wait queue for threads waiting for @state != %MCDI_STATE_RUNNING
* @iface_lock: Serialises access to all the following fields
* @seqno: The next sequence number to use for mcdi requests. * @seqno: The next sequence number to use for mcdi requests.
* Serialised by @lock
* @credits: Number of spurious MCDI completion events allowed before we * @credits: Number of spurious MCDI completion events allowed before we
* trigger a fatal error. Protected by @lock * trigger a fatal error
* @resprc: Response error/success code (Linux numbering) * @resprc: Response error/success code (Linux numbering)
* @resp_hdr_len: Response header length * @resp_hdr_len: Response header length
* @resp_data_len: Response data (SDU or error) length * @resp_data_len: Response data (SDU or error) length
*/ */
struct efx_mcdi_iface { struct efx_mcdi_iface {
atomic_t state; atomic_t state;
enum efx_mcdi_mode mode;
wait_queue_head_t wq; wait_queue_head_t wq;
spinlock_t iface_lock; spinlock_t iface_lock;
enum efx_mcdi_mode mode;
unsigned int credits; unsigned int credits;
unsigned int seqno; unsigned int seqno;
int resprc; int resprc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment