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-2024 Linaro Ltd.
37 * A channel ring consists of TRE entries filled by the AP and passed
38 * to the hardware for processing. For a channel ring, the ring index
39 * identifies the next unused entry to be filled by the AP. In this
40 * case the initial value is assumed by hardware to be 0.
43 * and passed to the AP. For event rings, the ring index identifies
44 * the next ring entry that is not known to have been filled by the
51 * but taken from a fixed-size pool. The number of elements required for
54 * If sufficient TREs are available to reserve for a transaction,
55 * allocation from these pools is guaranteed to succeed. Furthermore,
81 struct gsi_trans **map; /* TRE -> transaction map */
94 GSI_CHANNEL_STATE_FLOW_CONTROLLED = 0x5, /* IPA v4.2-v4.9 */
98 /* We only care about channels between IPA and AP */
102 bool command; /* AP command TX channel or not */
137 struct device *dev; /* Same as IPA device */
146 u32 modem_channel_bitmap; /* modem channels to allocate */
158 * gsi_setup() - Set up the GSI subsystem
159 * @gsi: Address of GSI structure embedded in an IPA structure
169 * gsi_teardown() - Tear down GSI subsystem
170 * @gsi: GSI address previously passed to a successful gsi_setup() call
175 * gsi_channel_tre_max() - Channel maximum number of in-flight TREs
177 * @channel_id: Channel whose limit is to be returned
184 * gsi_channel_start() - Start an allocated GSI channel
186 * @channel_id: Channel to start
193 * gsi_channel_stop() - Stop a started GSI channel
195 * @channel_id: Channel to stop
202 * gsi_modem_channel_flow_control() - Set channel flow control state (IPA v4.2+)
204 * @channel_id: Modem TX channel to control
205 * @enable: Whether to enable flow control (i.e., prevent flow)
211 * gsi_channel_reset() - Reset an allocated GSI channel
213 * @channel_id: Channel to be reset
214 * @doorbell: Whether to (possibly) enable the doorbell engine
225 * gsi_suspend() - Prepare the GSI subsystem for suspend
231 * gsi_resume() - Resume the GSI subsystem following suspend
237 * gsi_channel_suspend() - Suspend a GSI channel
239 * @channel_id: Channel to suspend
241 * For IPA v4.0+, suspend is implemented by stopping the channel.
246 * gsi_channel_resume() - Resume a suspended GSI channel
248 * @channel_id: Channel to resume
250 * For IPA v4.0+, the stopped channel is started again.
255 * gsi_init() - Initialize the GSI subsystem
256 * @gsi: Address of GSI structure embedded in an IPA structure
257 * @pdev: IPA platform device
258 * @version: IPA hardware version (implies GSI version)
265 * that can be done before the GSI hardware is ready to use.
272 * gsi_exit() - Exit the GSI subsystem
273 * @gsi: GSI address previously passed to a successful gsi_init() call