Merge remote-tracking branches 'regmap/topic/irq', 'regmap/topic/le', 'regmap/topic...
authorMark Brown <broonie@linaro.org>
Mon, 2 Jun 2014 16:07:39 +0000 (17:07 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 2 Jun 2014 16:07:39 +0000 (17:07 +0100)
1  2  3  4  5 
drivers/base/regmap/regmap-mmio.c
drivers/base/regmap/regmap.c

@@@@@@ -61,11 -61,11 -61,11 -61,30 -61,11 +61,30 @@@@@@ static int regmap_mmio_regbits_check(si
        }
     }
     
 ----static inline void regmap_mmio_count_check(size_t count)
 ++++static inline void regmap_mmio_count_check(size_t count, u32 offset)
     {
 ----   BUG_ON(count % 2 != 0);
 ++++   BUG_ON(count <= offset);
 ++ +}
 ++ +
+++ +static inline unsigned int
+++ +regmap_mmio_get_offset(const void *reg, size_t reg_size)
+++ +{
+++ +   switch (reg_size) {
+++ +   case 1:
+++ +           return *(u8 *)reg;
+++ +   case 2:
+++ +           return *(u16 *)reg;
+++ +   case 4:
+++ +           return *(u32 *)reg;
+++ +#ifdef CONFIG_64BIT
+++ +   case 8:
+++ +           return *(u64 *)reg;
+++ +#endif
+++ +   default:
+++ +           BUG();
+++ +   }
+    }
+    
     static int regmap_mmio_gather_write(void *context,
                                    const void *reg, size_t reg_size,
                                    const void *val, size_t val_size)
     static int regmap_mmio_write(void *context, const void *data, size_t count)
     {
        struct regmap_mmio_context *ctx = context;
--- -   u32 offset = ctx->reg_bytes + ctx->pad_bytes;
+++ +   unsigned int offset = ctx->reg_bytes + ctx->pad_bytes;
     
 ----   regmap_mmio_count_check(count);
 ++++   regmap_mmio_count_check(count, offset);
     
        return regmap_mmio_gather_write(context, data, ctx->reg_bytes,
                                        data + offset, count - offset);
Simple merge