Lines Matching +full:tcs +full:- +full:wait
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
11 #include <linux/wait.h>
12 #include <soc/qcom/tcs.h>
23 * struct tcs_group: group of Trigger Command Sets (TCS) to send state requests
27 * @type: Type of the TCS in this group - active, sleep, wake.
29 * @offset: Start of the TCS group relative to the TCSes in the RSC.
31 * @ncpt: Number of commands in each TCS.
32 * @req: Requests that are sent from the TCS; only used for ACTIVE_ONLY
33 * transfers (could be on a wake/sleep TCS if we are borrowing for
35 * Start: grab drv->lock, set req, set tcs_in_use, drop drv->lock,
38 * grab drv->lock, clear tcs_in_use, drop drv->lock
42 * MAX_CMDS_PER_TCS = 16 then bit[2] = the first bit in 2nd TCS.
56 * struct rpmh_request: the message to be sent to rpmh-rsc
94 * @tcs_base: Start address of the TCS registers in this controller.
101 * @tcs: TCS groups.
102 * @tcs_in_use: S/W state of the TCS; only set for ACTIVE_ONLY
103 * transfers, but might show a sleep/wake TCS in use if
105 * must hold the lock in this struct (AKA drv->lock) in
108 * lock will also be held, the order is: drv->lock then
110 * @tcs_wait: Wait queue used to wait for @tcs_in_use to free up a
121 struct tcs_group tcs[TCS_TYPE_NR]; member