#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/io.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include <linux/iopoll.h>
#include <linux/pci.h>
#include <linux/sizes.h>
#include <linux/time.h>
#include "pmc.h"
#define VALID_MSG …
#define VALID_RESPONSE …
#define AMD_C2P_MSG0 …
#define AMD_C2P_MSG1 …
#define AMD_P2C_MSG0 …
#define AMD_P2C_MSG1 …
#define MP2_RESP_SLEEP_US …
#define MP2_RESP_TIMEOUT_US …
#define MP2_STB_DATA_LEN_2KB …
#define MP2_STB_DATA_LEN_16KB …
#define MP2_MMIO_BAR …
struct mp2_cmd_base { … };
struct mp2_cmd_response { … };
struct mp2_stb_data_valid { … };
static int amd_mp2_wait_response(struct amd_mp2_dev *mp2, u8 cmd_id, u32 command_sts)
{ … }
static void amd_mp2_stb_send_cmd(struct amd_mp2_dev *mp2, u8 cmd_id, bool is_dma_used)
{ … }
static int amd_mp2_stb_region(struct amd_mp2_dev *mp2)
{ … }
static int amd_mp2_process_cmd(struct amd_mp2_dev *mp2, struct file *filp)
{ … }
static int amd_mp2_stb_debugfs_open(struct inode *inode, struct file *filp)
{ … }
static ssize_t amd_mp2_stb_debugfs_read(struct file *filp, char __user *buf, size_t size,
loff_t *pos)
{ … }
static const struct file_operations amd_mp2_stb_debugfs_fops = …;
static void amd_mp2_dbgfs_register(struct amd_pmc_dev *dev)
{ … }
void amd_mp2_stb_deinit(struct amd_pmc_dev *dev)
{ … }
void amd_mp2_stb_init(struct amd_pmc_dev *dev)
{ … }