brintos

brintos / linux-shallow public Read only

0
0
Text · 1.8 KiB · 8b2c92b Raw
74 lines · c
1/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */2/* Copyright(c) 2014 - 2020 Intel Corporation */3#ifndef ADF_TRANSPORT_INTRN_H4#define ADF_TRANSPORT_INTRN_H5 6#include <linux/interrupt.h>7#include <linux/spinlock_types.h>8#include "adf_transport.h"9 10struct adf_etr_ring_debug_entry {11	char ring_name[ADF_CFG_MAX_KEY_LEN_IN_BYTES];12	struct dentry *debug;13};14 15struct adf_etr_ring_data {16	void *base_addr;17	atomic_t *inflights;18	adf_callback_fn callback;19	struct adf_etr_bank_data *bank;20	dma_addr_t dma_addr;21	struct adf_etr_ring_debug_entry *ring_debug;22	spinlock_t lock;	/* protects ring data struct */23	u16 head;24	u16 tail;25	u32 threshold;26	u8 ring_number;27	u8 ring_size;28	u8 msg_size;29};30 31struct adf_etr_bank_data {32	struct adf_etr_ring_data *rings;33	struct tasklet_struct resp_handler;34	void __iomem *csr_addr;35	u32 irq_coalesc_timer;36	u32 bank_number;37	u16 ring_mask;38	u16 irq_mask;39	spinlock_t lock;	/* protects bank data struct */40	struct adf_accel_dev *accel_dev;41	struct dentry *bank_debug_dir;42	struct dentry *bank_debug_cfg;43};44 45struct adf_etr_data {46	struct adf_etr_bank_data *banks;47	struct dentry *debug;48};49 50void adf_response_handler(uintptr_t bank_addr);51#ifdef CONFIG_DEBUG_FS52#include <linux/debugfs.h>53int adf_bank_debugfs_add(struct adf_etr_bank_data *bank);54void adf_bank_debugfs_rm(struct adf_etr_bank_data *bank);55int adf_ring_debugfs_add(struct adf_etr_ring_data *ring, const char *name);56void adf_ring_debugfs_rm(struct adf_etr_ring_data *ring);57#else58static inline int adf_bank_debugfs_add(struct adf_etr_bank_data *bank)59{60	return 0;61}62 63#define adf_bank_debugfs_rm(bank) do {} while (0)64 65static inline int adf_ring_debugfs_add(struct adf_etr_ring_data *ring,66				       const char *name)67{68	return 0;69}70 71#define adf_ring_debugfs_rm(ring) do {} while (0)72#endif73#endif74