xref: /wlan-dirver/qca-wifi-host-cmn/qdf/inc/qdf_dev.h (revision 302a1d9701784af5f4797b1a9fe07ae820b51907)
1 /*
2  * Copyright (c) 2018 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /**
20  * DOC: qdf_dev
21  * QCA driver framework (QDF) device management APIs
22  */
23 
24 #if !defined(__QDF_DEV_H)
25 #define __QDF_DEV_H
26 
27 /* Include Files */
28 #include <qdf_types.h>
29 
30 struct qdf_cpu_mask;
31 struct qdf_devm;
32 struct qdf_dev;
33 
34 /**
35  * qdf_dev_alloc_mem() - allocate memory
36  * @qdfdev: Device handle
37  * @mrptr: Pointer to the allocated memory
38  * @reqsize: Allocation request in bytes
39  * @mask: Property mask to be associated to the allocated memory
40  *
41  * This function will acquire memory to be associated with a device
42  *
43  * Return: QDF_STATUS_SUCCESS on success
44  */
45 QDF_STATUS
46 qdf_dev_alloc_mem(struct qdf_dev *qdfdev, struct qdf_devm **mrptr,
47 		  uint32_t reqsize, uint32_t mask);
48 
49 /**
50  * qdf_dev_release_mem() - release memory
51  * @qdfdev: Device handle
52  * @mrptr: Pointer to the allocated memory
53  *
54  * This function will acquire memory to be associated with a device
55  *
56  * Return: QDF_STATUS_SUCCESS on success
57  */
58 QDF_STATUS
59 qdf_dev_release_mem(struct qdf_dev *qdfdev, struct qdf_devm *mrptr);
60 
61 /**
62  * qdf_dev_modify_irq() - modify irq
63  * @irnum: irq number
64  * @cmask: Bitmap to be cleared for the property mask
65  * @smask: Bitmap to be set for the property mask
66  *
67  * This function will acquire memory to be associated with a device
68  *
69  * Return: QDF_STATUS_SUCCESS on success
70  */
71 QDF_STATUS
72 qdf_dev_modify_irq_status(uint32_t irnum, unsigned long cmask,
73 			  unsigned long smask);
74 
75 /**
76  * qdf_dev_set_irq_affinity() - set irq affinity
77  * @irnum: irq number
78  * @cpmask: cpu affinity bitmap
79  *
80  * This function will set the affinity level for an irq
81  *
82  * Return: QDF_STATUS_SUCCESS on success
83  */
84 QDF_STATUS
85 qdf_dev_set_irq_affinity(uint32_t irnum, struct qdf_cpu_mask *cpmask);
86 #endif
87