Lines Matching +full:ipa +full:- +full:ap +full:- +full:to +full:- +full:modem

1 /* SPDX-License-Identifier: GPL-2.0 */
3 /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2023 Linaro Ltd.
41 * A channel ring consists of TRE entries filled by the AP and passed
42 * to the hardware for processing. For a channel ring, the ring index
43 * identifies the next unused entry to be filled by the AP. In this
44 * case the initial value is assumed by hardware to be 0.
47 * and passed to the AP. For event rings, the ring index identifies
48 * the next ring entry that is not known to have been filled by the
55 * but taken from a fixed-size pool. The number of elements required for
58 * If sufficient TREs are available to reserve for a transaction,
59 * allocation from these pools is guaranteed to succeed. Furthermore,
85 struct gsi_trans **map; /* TRE -> transaction map */
98 GSI_CHANNEL_STATE_FLOW_CONTROLLED = 0x5, /* IPA v4.2-v4.9 */
102 /* We only care about channels between IPA and AP */
106 bool command; /* AP command TX channel or not */
141 struct device *dev; /* Same as IPA device */
150 u32 modem_channel_bitmap; /* modem channels to allocate */
162 * gsi_setup() - Set up the GSI subsystem
163 * @gsi: Address of GSI structure embedded in an IPA structure
173 * gsi_teardown() - Tear down GSI subsystem
174 * @gsi: GSI address previously passed to a successful gsi_setup() call
179 * gsi_channel_tre_max() - Channel maximum number of in-flight TREs
181 * @channel_id: Channel whose limit is to be returned
188 * gsi_channel_start() - Start an allocated GSI channel
190 * @channel_id: Channel to start
197 * gsi_channel_stop() - Stop a started GSI channel
199 * @channel_id: Channel to stop
206 * gsi_modem_channel_flow_control() - Set channel flow control state (IPA v4.2+)
208 * @channel_id: Modem TX channel to control
209 * @enable: Whether to enable flow control (i.e., prevent flow)
215 * gsi_channel_reset() - Reset an allocated GSI channel
217 * @channel_id: Channel to be reset
218 * @doorbell: Whether to (possibly) enable the doorbell engine
229 * gsi_suspend() - Prepare the GSI subsystem for suspend
235 * gsi_resume() - Resume the GSI subsystem following suspend
241 * gsi_channel_suspend() - Suspend a GSI channel
243 * @channel_id: Channel to suspend
245 * For IPA v4.0+, suspend is implemented by stopping the channel.
250 * gsi_channel_resume() - Resume a suspended GSI channel
252 * @channel_id: Channel to resume
254 * For IPA v4.0+, the stopped channel is started again.
259 * gsi_init() - Initialize the GSI subsystem
260 * @gsi: Address of GSI structure embedded in an IPA structure
261 * @pdev: IPA platform device
262 * @version: IPA hardware version (implies GSI version)
269 * that can be done before the GSI hardware is ready to use.
276 * gsi_exit() - Exit the GSI subsystem
277 * @gsi: GSI address previously passed to a successful gsi_init() call