--- zzzz-none-000/linux-4.4.271/include/linux/regmap.h 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/include/linux/regmap.h 2023-04-19 10:22:30.000000000 +0000 @@ -29,6 +29,7 @@ struct regmap_range_cfg; struct regmap_field; struct snd_ac97; +struct swr_device; /* An enum of all the supported cache types */ enum regcache_type { @@ -65,7 +66,7 @@ unsigned int delay_us; }; -#ifdef CONFIG_REGMAP +#if IS_ENABLED(CONFIG_REGMAP) enum regmap_endian { /* Unspecified -> 0 -> Backwards compatible default */ @@ -387,7 +388,10 @@ const struct regmap_config *config, struct lock_class_key *lock_key, const char *lock_name); - +struct regmap *__regmap_init_swr(struct swr_device *dev, + const struct regmap_config *config, + struct lock_class_key *lock_key, + const char *lock_name); struct regmap *__devm_regmap_init(struct device *dev, const struct regmap_bus *bus, void *bus_context, @@ -420,6 +424,10 @@ const struct regmap_config *config, struct lock_class_key *lock_key, const char *lock_name); +struct regmap *__devm_regmap_init_swr(struct swr_device *dev, + const struct regmap_config *config, + struct lock_class_key *lock_key, + const char *lock_name); /* * Wrapper for regmap_init macros to include a unique lockdep key and name @@ -554,6 +562,18 @@ bool regmap_ac97_default_volatile(struct device *dev, unsigned int reg); /** + * regmap_init_swr(): Initialise register map + * + * @swr: Device that will be interacted with + * @config: Configuration for register map + * + * The return value will be an ERR_PTR() on error or a valid pointer to + * a struct regmap. + */ +#define regmap_init_swr(swr, config) \ + __regmap_lockdep_wrapper(__regmap_init_swr, #config, \ + swr, config) +/** * devm_regmap_init(): Initialise managed register map * * @dev: Device that will be interacted with @@ -668,6 +688,20 @@ __regmap_lockdep_wrapper(__devm_regmap_init_ac97, #config, \ ac97, config) +/** + * devm_regmap_init_swr(): Initialise managed register map + * + * @swr: Device that will be interacted with + * @config: Configuration for register map + * + * The return value will be an ERR_PTR() on error or a valid pointer + * to a struct regmap. The regmap will be automatically freed by the + * device management code. + */ +#define devm_regmap_init_swr(swr, config) \ + __regmap_lockdep_wrapper(__devm_regmap_init_swr, #config, \ + swr, config) + void regmap_exit(struct regmap *map); int regmap_reinit_cache(struct regmap *map, const struct regmap_config *config);