regmap: Remove indexed cache type
Mark Brown [Fri, 18 Nov 2011 16:53:00 +0000 (16:53 +0000)]
There should be no situation where it offers any advantage over rbtree
and there are no current users so remove the code for simplicity.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
(cherry picked from commit 4c691664583ef6a91f9ed0e08a75fbd30a5ffd5c)

Change-Id: I58f92ec9b989b2eaaab767b4201aeb04edec50a8
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: http://git-master/r/87565

drivers/base/regmap/Makefile
drivers/base/regmap/internal.h
drivers/base/regmap/regcache-indexed.c [deleted file]
drivers/base/regmap/regcache.c
include/linux/regmap.h

index 3dbe5d3..defd579 100644 (file)
@@ -1,4 +1,4 @@
-obj-$(CONFIG_REGMAP) += regmap.o regcache.o regcache-indexed.o
+obj-$(CONFIG_REGMAP) += regmap.o regcache.o
 obj-$(CONFIG_REGMAP) += regcache-rbtree.o regcache-lzo.o
 obj-$(CONFIG_DEBUG_FS) += regmap-debugfs.o
 obj-$(CONFIG_REGMAP_I2C) += regmap-i2c.o
index 954f7b7..1a02b75 100644 (file)
@@ -119,10 +119,7 @@ unsigned int regcache_get_val(const void *base, unsigned int idx,
 bool regcache_set_val(void *base, unsigned int idx,
                      unsigned int val, unsigned int word_size);
 int regcache_lookup_reg(struct regmap *map, unsigned int reg);
-int regcache_insert_reg(struct regmap *map, unsigned int reg,
-                       unsigned int val);
 
-extern struct regcache_ops regcache_indexed_ops;
 extern struct regcache_ops regcache_rbtree_ops;
 extern struct regcache_ops regcache_lzo_ops;
 
diff --git a/drivers/base/regmap/regcache-indexed.c b/drivers/base/regmap/regcache-indexed.c
deleted file mode 100644 (file)
index 507731a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Register cache access API - indexed caching support
- *
- * Copyright 2011 Wolfson Microelectronics plc
- *
- * Author: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/slab.h>
-
-#include "internal.h"
-
-static int regcache_indexed_read(struct regmap *map, unsigned int reg,
-                                unsigned int *value)
-{
-       int ret;
-
-       ret = regcache_lookup_reg(map, reg);
-       if (ret >= 0)
-               *value = map->reg_defaults[ret].def;
-
-       return ret;
-}
-
-static int regcache_indexed_write(struct regmap *map, unsigned int reg,
-                                 unsigned int value)
-{
-       int ret;
-
-       ret = regcache_lookup_reg(map, reg);
-       if (ret < 0)
-               return regcache_insert_reg(map, reg, value);
-       map->reg_defaults[ret].def = value;
-       return 0;
-}
-
-static int regcache_indexed_sync(struct regmap *map)
-{
-       unsigned int i;
-       int ret;
-
-       for (i = 0; i < map->num_reg_defaults; i++) {
-               ret = _regmap_write(map, map->reg_defaults[i].reg,
-                                   map->reg_defaults[i].def);
-               if (ret < 0)
-                       return ret;
-               dev_dbg(map->dev, "Synced register %#x, value %#x\n",
-                       map->reg_defaults[i].reg,
-                       map->reg_defaults[i].def);
-       }
-       return 0;
-}
-
-struct regcache_ops regcache_indexed_ops = {
-       .type = REGCACHE_INDEXED,
-       .name = "indexed",
-       .read = regcache_indexed_read,
-       .write = regcache_indexed_write,
-       .sync = regcache_indexed_sync
-};
index 1679d12..741c85d 100644 (file)
@@ -18,7 +18,6 @@
 #include "internal.h"
 
 static const struct regcache_ops *cache_types[] = {
-       &regcache_indexed_ops,
        &regcache_rbtree_ops,
        &regcache_lzo_ops,
 };
@@ -419,22 +418,3 @@ int regcache_lookup_reg(struct regmap *map, unsigned int reg)
        else
                return -ENOENT;
 }
-
-int regcache_insert_reg(struct regmap *map, unsigned int reg,
-                       unsigned int val)
-{
-       void *tmp;
-
-       tmp = krealloc(map->reg_defaults,
-                      (map->num_reg_defaults + 1) * sizeof(struct reg_default),
-                      GFP_KERNEL);
-       if (!tmp)
-               return -ENOMEM;
-       map->reg_defaults = tmp;
-       map->num_reg_defaults++;
-       map->reg_defaults[map->num_reg_defaults - 1].reg = reg;
-       map->reg_defaults[map->num_reg_defaults - 1].def = val;
-       sort(map->reg_defaults, map->num_reg_defaults,
-            sizeof(struct reg_default), regcache_default_cmp, NULL);
-       return 0;
-}
index 164c9dc..5f60221 100644 (file)
@@ -23,7 +23,6 @@ struct spi_device;
 /* An enum of all the supported cache types */
 enum regcache_type {
        REGCACHE_NONE,
-       REGCACHE_INDEXED,
        REGCACHE_RBTREE,
        REGCACHE_COMPRESSED
 };