hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/drivers/gpu/arm/bifrost/csf/mali_kbase_csf_trace_buffer.h
....@@ -1,7 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 /*
33 *
4
- * (C) COPYRIGHT 2018-2021 ARM Limited. All rights reserved.
4
+ * (C) COPYRIGHT 2018-2022 ARM Limited. All rights reserved.
55 *
66 * This program is free software and is provided to you under the terms of the
77 * GNU General Public License version 2 as published by the Free Software
....@@ -25,7 +25,7 @@
2525 #include <linux/types.h>
2626
2727 #define CSF_FIRMWARE_TRACE_ENABLE_INIT_MASK_MAX (4)
28
-#define FW_TRACE_BUF_NAME "fwlog"
28
+#define FIRMWARE_LOG_BUF_NAME "fwlog"
2929
3030 /* Forward declarations */
3131 struct firmware_trace_buffer;
....@@ -33,6 +33,8 @@
3333
3434 /**
3535 * kbase_csf_firmware_trace_buffers_init - Initialize trace buffers
36
+ *
37
+ * @kbdev: Device pointer
3638 *
3739 * Allocate resources for trace buffers. In particular:
3840 * - One memory page of GPU-readable, CPU-writable memory is used for
....@@ -52,13 +54,11 @@
5254 * populated with data from the firmware image parsing.
5355 *
5456 * Return: 0 if success, or an error code on failure.
55
- *
56
- * @kbdev: Device pointer
5757 */
5858 int kbase_csf_firmware_trace_buffers_init(struct kbase_device *kbdev);
5959
6060 /**
61
- * kbase_csf_firmware_trace_buffer_term - Terminate trace buffers
61
+ * kbase_csf_firmware_trace_buffers_term - Terminate trace buffers
6262 *
6363 * @kbdev: Device pointer
6464 */
....@@ -67,6 +67,11 @@
6767 /**
6868 * kbase_csf_firmware_parse_trace_buffer_entry - Process a "trace buffer" section
6969 *
70
+ * @kbdev: Kbase device structure
71
+ * @entry: Pointer to the section
72
+ * @size: Size (in bytes) of the section
73
+ * @updatable: Indicates whether config items can be updated with FIRMWARE_CONFIG_UPDATE
74
+ *
7075 * Read a "trace buffer" section adding metadata for the related trace buffer
7176 * to the kbase_device:csf.firmware_trace_buffers list.
7277 *
....@@ -74,11 +79,6 @@
7479 * will not be initialized.
7580 *
7681 * Return: 0 if successful, negative error code on failure.
77
- *
78
- * @kbdev: Kbase device structure
79
- * @entry: Pointer to the section
80
- * @size: Size (in bytes) of the section
81
- * @updatable: Indicates whether config items can be updated with FIRMWARE_CONFIG_UPDATE
8282 */
8383 int kbase_csf_firmware_parse_trace_buffer_entry(struct kbase_device *kbdev,
8484 const u32 *entry,
....@@ -86,8 +86,9 @@
8686 bool updatable);
8787
8888 /**
89
- * kbase_csf_firmware_reload_trace_buffers_data -
90
- * Reload trace buffers data for firmware reboot
89
+ * kbase_csf_firmware_reload_trace_buffers_data - Reload trace buffers data for firmware reboot
90
+ *
91
+ * @kbdev: Device pointer
9192 *
9293 * Helper function used when rebooting the firmware to reload the initial setup
9394 * for all the trace buffers which have been previously parsed and initialized.
....@@ -99,43 +100,39 @@
99100 *
100101 * In other words, the re-initialization done by this function will be
101102 * equivalent but not necessarily identical to the original initialization.
102
- *
103
- * @kbdev: Device pointer
104103 */
105104 void kbase_csf_firmware_reload_trace_buffers_data(struct kbase_device *kbdev);
106105
107106 /**
108107 * kbase_csf_firmware_get_trace_buffer - Get a trace buffer
109108 *
110
- * Return: handle to a trace buffer, given the name, or NULL if a trace buffer
111
- * with that name couldn't be found.
112
- *
113109 * @kbdev: Device pointer
114110 * @name: Name of the trace buffer to find
111
+ *
112
+ * Return: handle to a trace buffer, given the name, or NULL if a trace buffer
113
+ * with that name couldn't be found.
115114 */
116115 struct firmware_trace_buffer *kbase_csf_firmware_get_trace_buffer(
117116 struct kbase_device *kbdev, const char *name);
118117
119118 /**
120
- * kbase_csf_firmware_trace_buffer_get_trace_enable_bits_count -
121
- * Get number of trace enable bits for a trace buffer
122
- *
123
- * Return: Number of trace enable bits in a trace buffer.
119
+ * kbase_csf_firmware_trace_buffer_get_trace_enable_bits_count - Get number of trace enable bits for a trace buffer
124120 *
125121 * @trace_buffer: Trace buffer handle
122
+ *
123
+ * Return: Number of trace enable bits in a trace buffer.
126124 */
127125 unsigned int kbase_csf_firmware_trace_buffer_get_trace_enable_bits_count(
128126 const struct firmware_trace_buffer *trace_buffer);
129127
130128 /**
131
- * kbase_csf_firmware_trace_buffer_update_trace_enable_bit -
132
- * Update a trace enable bit
133
- *
134
- * Update the value of a given trace enable bit.
129
+ * kbase_csf_firmware_trace_buffer_update_trace_enable_bit - Update a trace enable bit
135130 *
136131 * @trace_buffer: Trace buffer handle
137132 * @bit: Bit to update
138133 * @value: New value for the given bit
134
+ *
135
+ * Update the value of a given trace enable bit.
139136 *
140137 * Return: 0 if successful, negative error code on failure.
141138 */
....@@ -146,9 +143,9 @@
146143 /**
147144 * kbase_csf_firmware_trace_buffer_is_empty - Empty trace buffer predicate
148145 *
149
- * Return: True if the trace buffer is empty, or false otherwise.
150
- *
151146 * @trace_buffer: Trace buffer handle
147
+ *
148
+ * Return: True if the trace buffer is empty, or false otherwise.
152149 */
153150 bool kbase_csf_firmware_trace_buffer_is_empty(
154151 const struct firmware_trace_buffer *trace_buffer);
....@@ -156,27 +153,35 @@
156153 /**
157154 * kbase_csf_firmware_trace_buffer_read_data - Read data from a trace buffer
158155 *
156
+ * @trace_buffer: Trace buffer handle
157
+ * @data: Pointer to a client-allocated where data shall be written.
158
+ * @num_bytes: Maximum number of bytes to read from the trace buffer.
159
+ *
159160 * Read available data from a trace buffer. The client provides a data buffer
160161 * of a given size and the maximum number of bytes to read.
161162 *
162163 * Return: Number of bytes read from the trace buffer.
163
- *
164
- * @trace_buffer: Trace buffer handle
165
- * @data: Pointer to a client-allocated where data shall be written.
166
- * @num_bytes: Maximum number of bytes to read from the trace buffer.
167164 */
168165 unsigned int kbase_csf_firmware_trace_buffer_read_data(
169166 struct firmware_trace_buffer *trace_buffer, u8 *data, unsigned int num_bytes);
170167
171
-#if IS_ENABLED(CONFIG_DEBUG_FS)
172168 /**
173
- * kbase_csf_fw_trace_buffer_debugfs_init() - Add debugfs entries for setting
174
- * enable mask and dumping the binary
175
- * firmware trace buffer
169
+ * kbase_csf_firmware_trace_buffer_get_active_mask64 - Get trace buffer active mask
176170 *
177
- * @kbdev: Pointer to the device
171
+ * @tb: Trace buffer handle
172
+ *
173
+ * Return: Trace buffer active mask.
178174 */
179
-void kbase_csf_firmware_trace_buffer_debugfs_init(struct kbase_device *kbdev);
180
-#endif /* CONFIG_DEBUG_FS */
175
+u64 kbase_csf_firmware_trace_buffer_get_active_mask64(struct firmware_trace_buffer *tb);
176
+
177
+/**
178
+ * kbase_csf_firmware_trace_buffer_set_active_mask64 - Set trace buffer active mask
179
+ *
180
+ * @tb: Trace buffer handle
181
+ * @mask: New active mask
182
+ *
183
+ * Return: 0 if successful, negative error code on failure.
184
+ */
185
+int kbase_csf_firmware_trace_buffer_set_active_mask64(struct firmware_trace_buffer *tb, u64 mask);
181186
182187 #endif /* _KBASE_CSF_TRACE_BUFFER_H_ */