Lines Matching +full:multi +full:- +full:layer

1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright (C) 2005-2014, 2018-2021, 2024-2025 Intel Corporation
4 * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
12 #include "iwl-dbg-tlv.h"
23 * DOC: Operational mode - what is it ?
25 * The operational mode (a.k.a. op_mode) is the layer that implements
28 * underlying HW works, since the transport layer takes care of that.
39 * 1) The driver layer (iwl-drv.c) chooses the op_mode based on the
41 * 2) The driver layer starts the op_mode (ops->start)
44 * 5) The driver layer stops the op_mode
48 * enum iwl_fw_error_type - FW error types/sources
72 * enum iwl_fw_error_context - error dump context
93 * struct iwl_fw_error_dump_mode - error dump mode for callback
97 * and after acquiring any locks in the op-mode!
105 * struct iwl_op_mode_ops - op_mode specific operations
108 * interact with it. The driver layer typically calls the start and stop
109 * handlers, the transport layer calls the others.
112 * out *iff* the opmode will never run on hardware with multi-queue capability.
114 * @start: start the op_mode. The transport layer is already allocated.
122 * RSS queues received this frame; it will always be non-zero.
133 * @free_skb: allows the transport layer to free skbs that haven't been
135 * there are Tx packets pending in the transport layer.
145 * @time_point: called when transport layer wants to collect debug data
186 * struct iwl_op_mode - operational mode
200 op_mode->ops->stop(op_mode); in iwl_op_mode_stop()
207 return op_mode->ops->rx(op_mode, napi, rxb); in iwl_op_mode_rx()
215 op_mode->ops->rx_rss(op_mode, napi, rxb, queue); in iwl_op_mode_rx_rss()
221 op_mode->ops->queue_full(op_mode, queue); in iwl_op_mode_queue_full()
227 op_mode->ops->queue_not_full(op_mode, queue); in iwl_op_mode_queue_not_full()
234 return op_mode->ops->hw_rf_kill(op_mode, state); in iwl_op_mode_hw_rf_kill()
242 op_mode->ops->free_skb(op_mode, skb); in iwl_op_mode_free_skb()
248 op_mode->ops->nic_error(op_mode, type); in iwl_op_mode_nic_error()
256 if (WARN_ON(mode->type == IWL_ERR_TYPE_TOP_RESET_BY_BT)) in iwl_op_mode_dump_error()
259 if (op_mode->ops->dump_error) in iwl_op_mode_dump_error()
260 op_mode->ops->dump_error(op_mode, mode); in iwl_op_mode_dump_error()
266 if (op_mode->ops->nic_config) in iwl_op_mode_nic_config()
267 op_mode->ops->nic_config(op_mode); in iwl_op_mode_nic_config()
273 op_mode->ops->wimax_active(op_mode); in iwl_op_mode_wimax_active()
280 if (!op_mode || !op_mode->ops || !op_mode->ops->time_point) in iwl_op_mode_time_point()
282 op_mode->ops->time_point(op_mode, tp_id, tp_data); in iwl_op_mode_time_point()
287 if (!op_mode || !op_mode->ops || !op_mode->ops->device_powered_off) in iwl_op_mode_device_powered_off()
289 op_mode->ops->device_powered_off(op_mode); in iwl_op_mode_device_powered_off()
294 if (!op_mode || !op_mode->ops || !op_mode->ops->dump) in iwl_op_mode_dump()
296 op_mode->ops->dump(op_mode); in iwl_op_mode_dump()