]> Pileus Git - ~andy/linux/commitdiff
regmap: Remove indexed cache type
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 18 Nov 2011 16:53:00 +0000 (16:53 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 20 Nov 2011 20:56:34 +0000 (20:56 +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>
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 3dbe5d3ff227e213d946177a0ab5c4411da92cc1..defd57963c84ec5d91ecb756317bb385ae1e3210 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 954f7b73238fdca2b529e1f593cb46bd0c955ab1..1a02b7537c8bbac9d59d21ee51c1361dd03c01c0 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 e21eebd36afab27d884c857bd07b96414ca86f33..1ca2d7a1051fd2f56ea3db00895c27eb67b86128 100644 (file)
@@ -19,7 +19,6 @@
 #include "internal.h"
 
 static const struct regcache_ops *cache_types[] = {
-       &regcache_indexed_ops,
        &regcache_rbtree_ops,
        &regcache_lzo_ops,
 };
@@ -420,22 +419,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 458f15f4c37c6012e230ccb4c16cbc693b6d331c..81dfe0acb20c8dba2c1a6030041a312ff3ec191c 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
 };