linux/drivers/net/wwan/t7xx/t7xx_hif_dpmaif.h

/* SPDX-License-Identifier: GPL-2.0-only
 *
 * Copyright (c) 2021, MediaTek Inc.
 * Copyright (c) 2021-2022, Intel Corporation.
 *
 * Authors:
 *  Amir Hanania <[email protected]>
 *  Haijun Liu <[email protected]>
 *  Moises Veleta <[email protected]>
 *  Ricardo Martinez <[email protected]>
 *
 * Contributors:
 *  Chiranjeevi Rapolu <[email protected]>
 *  Eliot Lee <[email protected]>
 *  Sreehari Kancharla <[email protected]>
 */

#ifndef __T7XX_HIF_DPMAIF_H__
#define __T7XX_HIF_DPMAIF_H__

#include <linux/bitmap.h>
#include <linux/mm_types.h>
#include <linux/netdevice.h>
#include <linux/sched.h>
#include <linux/skbuff.h>
#include <linux/spinlock.h>
#include <linux/types.h>
#include <linux/wait.h>
#include <linux/workqueue.h>

#include "t7xx_dpmaif.h"
#include "t7xx_pci.h"
#include "t7xx_state_monitor.h"

/* SKB control buffer */
struct t7xx_skb_cb {};

#define T7XX_SKB_CB(__skb)

enum dpmaif_rdwr {};

/* Structure of DL BAT */
struct dpmaif_cur_rx_skb_info {};

struct dpmaif_bat {};

struct dpmaif_bat_skb {};

struct dpmaif_bat_page {};

enum bat_type {};

struct dpmaif_bat_request {};

struct dpmaif_rx_queue {};

struct dpmaif_tx_queue {};

struct dpmaif_isr_para {};

enum dpmaif_state {};

enum dpmaif_txq_state {};

struct dpmaif_callbacks {};

struct dpmaif_ctrl {};

struct dpmaif_ctrl *t7xx_dpmaif_hif_init(struct t7xx_pci_dev *t7xx_dev,
					 struct dpmaif_callbacks *callbacks);
void t7xx_dpmaif_hif_exit(struct dpmaif_ctrl *dpmaif_ctrl);
int t7xx_dpmaif_md_state_callback(struct dpmaif_ctrl *dpmaif_ctrl, enum md_state state);
unsigned int t7xx_ring_buf_get_next_wr_idx(unsigned int buf_len, unsigned int buf_idx);
unsigned int t7xx_ring_buf_rd_wr_count(unsigned int total_cnt, unsigned int rd_idx,
				       unsigned int wr_idx, enum dpmaif_rdwr);

#endif /* __T7XX_HIF_DPMAIF_H__ */