These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / base / regmap / internal.h
index a13587b..3df9770 100644 (file)
@@ -59,6 +59,7 @@ struct regmap {
        regmap_lock lock;
        regmap_unlock unlock;
        void *lock_arg; /* This is passed to lock/unlock functions */
+       gfp_t alloc_flags;
 
        struct device *dev; /* Device we do I/O on */
        void *work_buf;     /* Scratch buffer used to format I/O */
@@ -98,6 +99,8 @@ struct regmap {
 
        int (*reg_read)(void *context, unsigned int reg, unsigned int *val);
        int (*reg_write)(void *context, unsigned int reg, unsigned int val);
+       int (*reg_update_bits)(void *context, unsigned int reg,
+                              unsigned int mask, unsigned int val);
 
        bool defer_caching;
 
@@ -122,25 +125,34 @@ struct regmap {
        unsigned int num_reg_defaults_raw;
 
        /* if set, only the cache is modified not the HW */
-       u32 cache_only;
+       bool cache_only;
        /* if set, only the HW is modified not the cache */
-       u32 cache_bypass;
+       bool cache_bypass;
        /* if set, remember to free reg_defaults_raw */
        bool cache_free;
 
        struct reg_default *reg_defaults;
        const void *reg_defaults_raw;
        void *cache;
-       u32 cache_dirty;
+       /* if set, the cache contains newer data than the HW */
+       bool cache_dirty;
+       /* if set, the HW registers are known to match map->reg_defaults */
+       bool no_sync_defaults;
 
-       struct reg_default *patch;
+       struct reg_sequence *patch;
        int patch_regs;
 
-       /* if set, converts bulk rw to single rw */
-       bool use_single_rw;
+       /* if set, converts bulk read to single read */
+       bool use_single_read;
+       /* if set, converts bulk read to single read */
+       bool use_single_write;
        /* if set, the device supports multi write mode */
        bool can_multi_write;
 
+       /* if set, raw reads/writes are limited to this size */
+       size_t max_raw_read;
+       size_t max_raw_write;
+
        struct rb_root range_tree;
        void *selector_work_buf;        /* Scratch buffer used for selector */
 };