#include <linux/err.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/pm_runtime.h>
#include <linux/debugfs.h>
#include <linux/platform_data/iommu-omap.h>
#include "omap-iopgtable.h"
#include "omap-iommu.h"
static DEFINE_MUTEX(iommu_debug_lock);
static struct dentry *iommu_debug_root;
static inline bool is_omap_iommu_detached(struct omap_iommu *obj)
{ … }
#define pr_reg(name) …
static ssize_t
omap2_iommu_dump_ctx(struct omap_iommu *obj, char *buf, ssize_t len)
{ … }
static ssize_t omap_iommu_dump_ctx(struct omap_iommu *obj, char *buf,
ssize_t bytes)
{ … }
static ssize_t debug_read_regs(struct file *file, char __user *userbuf,
size_t count, loff_t *ppos)
{ … }
static int
__dump_tlb_entries(struct omap_iommu *obj, struct cr_regs *crs, int num)
{ … }
static ssize_t iotlb_dump_cr(struct omap_iommu *obj, struct cr_regs *cr,
struct seq_file *s)
{ … }
static size_t omap_dump_tlb_entries(struct omap_iommu *obj, struct seq_file *s)
{ … }
static int tlb_show(struct seq_file *s, void *data)
{ … }
static void dump_ioptable(struct seq_file *s)
{ … }
static int pagetable_show(struct seq_file *s, void *data)
{ … }
#define DEBUG_FOPS_RO(name) …
DEBUG_FOPS_RO(…);
DEFINE_SHOW_ATTRIBUTE(…);
DEFINE_SHOW_ATTRIBUTE(…);
void omap_iommu_debugfs_add(struct omap_iommu *obj)
{ … }
void omap_iommu_debugfs_remove(struct omap_iommu *obj)
{ … }
void __init omap_iommu_debugfs_init(void)
{ … }
void __exit omap_iommu_debugfs_exit(void)
{ … }