#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/rbtree.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include "internal.h"
static int regcache_rbtree_write(struct regmap *map, unsigned int reg,
unsigned int value);
static int regcache_rbtree_exit(struct regmap *map);
struct regcache_rbtree_node { … };
struct regcache_rbtree_ctx { … };
static inline void regcache_rbtree_get_base_top_reg(
struct regmap *map,
struct regcache_rbtree_node *rbnode,
unsigned int *base, unsigned int *top)
{ … }
static unsigned int regcache_rbtree_get_register(struct regmap *map,
struct regcache_rbtree_node *rbnode, unsigned int idx)
{ … }
static void regcache_rbtree_set_register(struct regmap *map,
struct regcache_rbtree_node *rbnode,
unsigned int idx, unsigned int val)
{ … }
static struct regcache_rbtree_node *regcache_rbtree_lookup(struct regmap *map,
unsigned int reg)
{ … }
static int regcache_rbtree_insert(struct regmap *map, struct rb_root *root,
struct regcache_rbtree_node *rbnode)
{ … }
#ifdef CONFIG_DEBUG_FS
static int rbtree_show(struct seq_file *s, void *ignored)
{ … }
DEFINE_SHOW_ATTRIBUTE(…);
static void rbtree_debugfs_init(struct regmap *map)
{ … }
#endif
static int regcache_rbtree_init(struct regmap *map)
{ … }
static int regcache_rbtree_exit(struct regmap *map)
{ … }
static int regcache_rbtree_read(struct regmap *map,
unsigned int reg, unsigned int *value)
{ … }
static int regcache_rbtree_insert_to_block(struct regmap *map,
struct regcache_rbtree_node *rbnode,
unsigned int base_reg,
unsigned int top_reg,
unsigned int reg,
unsigned int value)
{ … }
static struct regcache_rbtree_node *
regcache_rbtree_node_alloc(struct regmap *map, unsigned int reg)
{ … }
static int regcache_rbtree_write(struct regmap *map, unsigned int reg,
unsigned int value)
{ … }
static int regcache_rbtree_sync(struct regmap *map, unsigned int min,
unsigned int max)
{ … }
static int regcache_rbtree_drop(struct regmap *map, unsigned int min,
unsigned int max)
{ … }
struct regcache_ops regcache_rbtree_ops = …;