Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v5.7 53 lines 1.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2020 Linaro Ltd. 5 */ 6#ifndef _IPA_CLOCK_H_ 7#define _IPA_CLOCK_H_ 8 9struct device; 10 11struct ipa; 12 13/** 14 * ipa_clock_init() - Initialize IPA clocking 15 * @dev: IPA device 16 * 17 * @Return: A pointer to an ipa_clock structure, or a pointer-coded error 18 */ 19struct ipa_clock *ipa_clock_init(struct device *dev); 20 21/** 22 * ipa_clock_exit() - Inverse of ipa_clock_init() 23 * @clock: IPA clock pointer 24 */ 25void ipa_clock_exit(struct ipa_clock *clock); 26 27/** 28 * ipa_clock_get() - Get an IPA clock reference 29 * @ipa: IPA pointer 30 * 31 * This call blocks if this is the first reference. 32 */ 33void ipa_clock_get(struct ipa *ipa); 34 35/** 36 * ipa_clock_get_additional() - Get an IPA clock reference if not first 37 * @ipa: IPA pointer 38 * 39 * This returns immediately, and only takes a reference if not the first 40 */ 41bool ipa_clock_get_additional(struct ipa *ipa); 42 43/** 44 * ipa_clock_put() - Drop an IPA clock reference 45 * @ipa: IPA pointer 46 * 47 * This drops a clock reference. If the last reference is being dropped, 48 * the clock is stopped and RX endpoints are suspended. This call will 49 * not block unless the last reference is dropped. 50 */ 51void ipa_clock_put(struct ipa *ipa); 52 53#endif /* _IPA_CLOCK_H_ */