brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 0074d2b Raw
79 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only OR MIT */2/* Copyright (c) 2023 Imagination Technologies Ltd. */3 4#ifndef PVR_FW_TRACE_H5#define PVR_FW_TRACE_H6 7#include <drm/drm_file.h>8#include <linux/types.h>9 10#include "pvr_rogue_fwif.h"11 12/* Forward declaration from pvr_device.h. */13struct pvr_device;14 15/* Forward declaration from pvr_gem.h. */16struct pvr_fw_object;17 18/* Forward declarations from pvr_rogue_fwif.h */19struct rogue_fwif_tracebuf;20struct rogue_fwif_tracebuf_space;21 22/**23 * struct pvr_fw_trace_buffer - Structure representing a trace buffer24 */25struct pvr_fw_trace_buffer {26	/** @buf_obj: FW buffer object representing trace buffer. */27	struct pvr_fw_object *buf_obj;28 29	/** @buf: Pointer to CPU mapping of trace buffer. */30	u32 *buf;31 32	/**33	 * @tracebuf_space: Pointer to FW tracebuf_space structure for this34	 *                  trace buffer.35	 */36	struct rogue_fwif_tracebuf_space *tracebuf_space;37};38 39/**40 * struct pvr_fw_trace - Device firmware trace data41 */42struct pvr_fw_trace {43	/**44	 * @tracebuf_ctrl_obj: Object representing FW trace buffer control45	 *                     structure.46	 */47	struct pvr_fw_object *tracebuf_ctrl_obj;48 49	/**50	 * @tracebuf_ctrl: Pointer to CPU mapping of FW trace buffer control51	 *                 structure.52	 */53	struct rogue_fwif_tracebuf *tracebuf_ctrl;54 55	/**56	 * @buffers: Array representing the actual trace buffers owned by this57	 *           device.58	 */59	struct pvr_fw_trace_buffer buffers[ROGUE_FW_THREAD_MAX];60 61	/** @group_mask: Mask of enabled trace groups. */62	u32 group_mask;63};64 65int pvr_fw_trace_init(struct pvr_device *pvr_dev);66void pvr_fw_trace_fini(struct pvr_device *pvr_dev);67 68#if defined(CONFIG_DEBUG_FS)69/* Forward declaration from <linux/dcache.h>. */70struct dentry;71 72void pvr_fw_trace_mask_update(struct pvr_device *pvr_dev, u32 old_mask,73			      u32 new_mask);74 75void pvr_fw_trace_debugfs_init(struct pvr_device *pvr_dev, struct dentry *dir);76#endif /* defined(CONFIG_DEBUG_FS) */77 78#endif /* PVR_FW_TRACE_H */79