Splite the minimal stride parsing into one signal function.

Signed-off-by: Xiubo Li <lixi...@cmss.chinamobile.com>
---
 drivers/base/regmap/regmap-mmio.c | 49 ++++++++++++++++++++++++---------------
 1 file changed, 30 insertions(+), 19 deletions(-)

diff --git a/drivers/base/regmap/regmap-mmio.c 
b/drivers/base/regmap/regmap-mmio.c
index 38d0dc0..eea5156 100644
--- a/drivers/base/regmap/regmap-mmio.c
+++ b/drivers/base/regmap/regmap-mmio.c
@@ -61,6 +61,33 @@ static int regmap_mmio_regbits_check(size_t reg_bits)
        }
 }
 
+static int regmap_mmio_get_min_stride(size_t val_bits)
+{
+       int min_stride;
+
+       switch (val_bits) {
+       case 8:
+               /* The core treats 0 as 1 */
+               min_stride = 0;
+               return 0;
+       case 16:
+               min_stride = 2;
+               break;
+       case 32:
+               min_stride = 4;
+               break;
+#ifdef CONFIG_64BIT
+       case 64:
+               min_stride = 8;
+               break;
+#endif
+       default:
+               return -EINVAL;
+       }
+
+       return min_stride;
+}
+
 static inline void regmap_mmio_count_check(size_t count, u32 offset)
 {
        BUG_ON(count <= offset);
@@ -231,25 +258,9 @@ static struct regmap_mmio_context 
*regmap_mmio_gen_context(struct device *dev,
        if (config->pad_bits)
                return ERR_PTR(-EINVAL);
 
-       switch (config->val_bits) {
-       case 8:
-               /* The core treats 0 as 1 */
-               min_stride = 0;
-               break;
-       case 16:
-               min_stride = 2;
-               break;
-       case 32:
-               min_stride = 4;
-               break;
-#ifdef CONFIG_64BIT
-       case 64:
-               min_stride = 8;
-               break;
-#endif
-       default:
-               return ERR_PTR(-EINVAL);
-       }
+       min_stride = regmap_mmio_get_min_stride(config->val_bits);
+       if (min_stride < 0)
+               return ERR_PTR(min_stride);
 
        if (config->reg_stride < min_stride)
                return ERR_PTR(-EINVAL);
-- 
1.8.3.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to