regmap: Use reg_sequence for multi_reg_write / register_patch
authorNariman Poushin <nariman@opensource.wolfsonmicro.com>
Thu, 16 Jul 2015 15:36:21 +0000 (16:36 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 16 Jul 2015 21:02:55 +0000 (22:02 +0100)
Separate the functionality using sequences of register writes from the
functions that take register defaults. This change renames the arguments
in order to support the extension of reg_sequence to take an optional
delay to be applied after any given register in a sequence is written.
This avoids adding an int to all register defaults, which could
substantially increase memory usage for regmaps with large default tables.

This also updates all the clients of multi_reg_write/register_patch.

Signed-off-by: Nariman Poushin <nariman@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
27 files changed:
drivers/base/regmap/internal.h
drivers/base/regmap/regmap.c
drivers/gpu/drm/i2c/adv7511.c
drivers/input/misc/drv260x.c
drivers/input/misc/drv2665.c
drivers/input/misc/drv2667.c
drivers/mfd/arizona-core.c
drivers/mfd/twl6040.c
drivers/mfd/wm5102-tables.c
drivers/mfd/wm5110-tables.c
drivers/mfd/wm8994-core.c
drivers/mfd/wm8997-tables.c
include/linux/regmap.h
sound/soc/codecs/arizona.c
sound/soc/codecs/cs35l32.c
sound/soc/codecs/cs42l52.c
sound/soc/codecs/da7210.c
sound/soc/codecs/rt5640.c
sound/soc/codecs/rt5645.c
sound/soc/codecs/rt5651.c
sound/soc/codecs/rt5670.c
sound/soc/codecs/rt5677.c
sound/soc/codecs/tlv320aic3x.c
sound/soc/codecs/wm2200.c
sound/soc/codecs/wm5100.c
sound/soc/codecs/wm8962.c
sound/soc/codecs/wm8993.c

index b2b2849fc6d3b34d1294a02ef009a10af86d49de..873ddf91c9d3ec742ceb1c3a9959ac322adc16db 100644 (file)
@@ -136,7 +136,7 @@ struct regmap {
        /* 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 */
index 7111d04f26218be0529f4702cb1b361ae07a0b00..2cbb4502747d8356417b2dc1faec6b94d04f3dff 100644 (file)
@@ -1743,7 +1743,7 @@ EXPORT_SYMBOL_GPL(regmap_bulk_write);
  * relative. The page register has been written if that was neccessary.
  */
 static int _regmap_raw_multi_reg_write(struct regmap *map,
-                                      const struct reg_default *regs,
+                                      const struct reg_sequence *regs,
                                       size_t num_regs)
 {
        int ret;
@@ -1800,12 +1800,12 @@ static unsigned int _regmap_register_page(struct regmap *map,
 }
 
 static int _regmap_range_multi_paged_reg_write(struct regmap *map,
-                                              struct reg_default *regs,
+                                              struct reg_sequence *regs,
                                               size_t num_regs)
 {
        int ret;
        int i, n;
-       struct reg_default *base;
+       struct reg_sequence *base;
        unsigned int this_page = 0;
        /*
         * the set of registers are not neccessarily in order, but
@@ -1843,7 +1843,7 @@ static int _regmap_range_multi_paged_reg_write(struct regmap *map,
 }
 
 static int _regmap_multi_reg_write(struct regmap *map,
-                                  const struct reg_default *regs,
+                                  const struct reg_sequence *regs,
                                   size_t num_regs)
 {
        int i;
@@ -1895,8 +1895,8 @@ static int _regmap_multi_reg_write(struct regmap *map,
                struct regmap_range_node *range;
                range = _regmap_range_lookup(map, reg);
                if (range) {
-                       size_t len = sizeof(struct reg_default)*num_regs;
-                       struct reg_default *base = kmemdup(regs, len,
+                       size_t len = sizeof(struct reg_sequence)*num_regs;
+                       struct reg_sequence *base = kmemdup(regs, len,
                                                           GFP_KERNEL);
                        if (!base)
                                return -ENOMEM;
@@ -1929,7 +1929,7 @@ static int _regmap_multi_reg_write(struct regmap *map,
  * A value of zero will be returned on success, a negative errno will be
  * returned in error cases.
  */
-int regmap_multi_reg_write(struct regmap *map, const struct reg_default *regs,
+int regmap_multi_reg_write(struct regmap *map, const struct reg_sequence *regs,
                           int num_regs)
 {
        int ret;
@@ -1962,7 +1962,7 @@ EXPORT_SYMBOL_GPL(regmap_multi_reg_write);
  * be returned in error cases.
  */
 int regmap_multi_reg_write_bypassed(struct regmap *map,
-                                   const struct reg_default *regs,
+                                   const struct reg_sequence *regs,
                                    int num_regs)
 {
        int ret;
@@ -2552,10 +2552,10 @@ EXPORT_SYMBOL_GPL(regmap_async_complete);
  * The caller must ensure that this function cannot be called
  * concurrently with either itself or regcache_sync().
  */
-int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
+int regmap_register_patch(struct regmap *map, const struct reg_sequence *regs,
                          int num_regs)
 {
-       struct reg_default *p;
+       struct reg_sequence *p;
        int ret;
        bool bypass;
 
@@ -2564,7 +2564,7 @@ int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
                return 0;
 
        p = krealloc(map->patch,
-                    sizeof(struct reg_default) * (map->patch_regs + num_regs),
+                    sizeof(struct reg_sequence) * (map->patch_regs + num_regs),
                     GFP_KERNEL);
        if (p) {
                memcpy(p + map->patch_regs, regs, num_regs * sizeof(*regs));
index 2aaa3c88999e32c0f951312b48aedded13f837e0..00416f23b5cb5fef4bbdf9ade8d2a794737d6789 100644 (file)
@@ -54,7 +54,7 @@ static struct adv7511 *encoder_to_adv7511(struct drm_encoder *encoder)
 }
 
 /* ADI recommended values for proper operation. */
-static const struct reg_default adv7511_fixed_registers[] = {
+static const struct reg_sequence adv7511_fixed_registers[] = {
        { 0x98, 0x03 },
        { 0x9a, 0xe0 },
        { 0x9c, 0x30 },
index e5d60ecd29a4d6adc2ae63cdfe69fea935edeb58..f5c9cf2f4073adf8671aaae0287dcf83e64d8c52 100644 (file)
@@ -313,14 +313,14 @@ static void drv260x_close(struct input_dev *input)
        gpiod_set_value(haptics->enable_gpio, 0);
 }
 
-static const struct reg_default drv260x_lra_cal_regs[] = {
+static const struct reg_sequence drv260x_lra_cal_regs[] = {
        { DRV260X_MODE, DRV260X_AUTO_CAL },
        { DRV260X_CTRL3, DRV260X_NG_THRESH_2 },
        { DRV260X_FEEDBACK_CTRL, DRV260X_FB_REG_LRA_MODE |
                DRV260X_BRAKE_FACTOR_4X | DRV260X_LOOP_GAIN_HIGH },
 };
 
-static const struct reg_default drv260x_lra_init_regs[] = {
+static const struct reg_sequence drv260x_lra_init_regs[] = {
        { DRV260X_MODE, DRV260X_RT_PLAYBACK },
        { DRV260X_A_TO_V_CTRL, DRV260X_AUDIO_HAPTICS_PEAK_20MS |
                DRV260X_AUDIO_HAPTICS_FILTER_125HZ },
@@ -337,7 +337,7 @@ static const struct reg_default drv260x_lra_init_regs[] = {
        { DRV260X_CTRL4, DRV260X_AUTOCAL_TIME_500MS },
 };
 
-static const struct reg_default drv260x_erm_cal_regs[] = {
+static const struct reg_sequence drv260x_erm_cal_regs[] = {
        { DRV260X_MODE, DRV260X_AUTO_CAL },
        { DRV260X_A_TO_V_MIN_INPUT, DRV260X_AUDIO_HAPTICS_MIN_IN_VOLT },
        { DRV260X_A_TO_V_MAX_INPUT, DRV260X_AUDIO_HAPTICS_MAX_IN_VOLT },
index 0afaa33de07d2d46e59e3a44d204ec4322e035ba..924456e3ca75d71af762287f28f8b15d71024692 100644 (file)
@@ -132,7 +132,7 @@ static void drv2665_close(struct input_dev *input)
                        "Failed to enter standby mode: %d\n", error);
 }
 
-static const struct reg_default drv2665_init_regs[] = {
+static const struct reg_sequence drv2665_init_regs[] = {
        { DRV2665_CTRL_2, 0 | DRV2665_10_MS_IDLE_TOUT },
        { DRV2665_CTRL_1, DRV2665_25_VPP_GAIN },
 };
index fc0fddf0896a772f911f36decd1fdbadaa727f7d..047136aa646f28c9b5f52dd3d988a0d5e2b9aeef 100644 (file)
@@ -262,14 +262,14 @@ static void drv2667_close(struct input_dev *input)
                        "Failed to enter standby mode: %d\n", error);
 }
 
-static const struct reg_default drv2667_init_regs[] = {
+static const struct reg_sequence drv2667_init_regs[] = {
        { DRV2667_CTRL_2, 0 },
        { DRV2667_CTRL_1, DRV2667_25_VPP_GAIN },
        { DRV2667_WV_SEQ_0, 1 },
        { DRV2667_WV_SEQ_1, 0 }
 };
 
-static const struct reg_default drv2667_page1_init[] = {
+static const struct reg_sequence drv2667_page1_init[] = {
        { DRV2667_RAM_HDR_SZ, 0x05 },
        { DRV2667_RAM_START_HI, 0x80 },
        { DRV2667_RAM_START_LO, 0x06 },
index bebf58a06a6b2932d57798c0b5b81a31a12e9b7a..66d50be119604fcfc677753e0dadc27962aa90b6 100644 (file)
@@ -392,7 +392,7 @@ err:
  * Register patch to some of the CODECs internal write sequences
  * to ensure a clean exit from the low power sleep state.
  */
-static const struct reg_default wm5110_sleep_patch[] = {
+static const struct reg_sequence wm5110_sleep_patch[] = {
        { 0x337A, 0xC100 },
        { 0x337B, 0x0041 },
        { 0x3300, 0xA210 },
index c5265c1262c50c3496f9142c07704d78d799a1b0..583dc33432f31ed056aa53e4e37582fefc4f7e71 100644 (file)
@@ -86,7 +86,7 @@ static const struct reg_default twl6040_defaults[] = {
        { 0x2E, 0x00 }, /* REG_STATUS   (ro) */
 };
 
-static struct reg_default twl6040_patch[] = {
+static struct reg_sequence twl6040_patch[] = {
        /*
         * Select I2C bus access to dual access registers
         * Interrupt register is cleared on read
index aeae6ec123b3ad76c8d7eec6f4ba326c1419907e..423fb3730dc714f17accd85d9aa9eda9b29b8ebf 100644 (file)
@@ -21,7 +21,7 @@
 #define WM5102_NUM_AOD_ISR 2
 #define WM5102_NUM_ISR 5
 
-static const struct reg_default wm5102_reva_patch[] = {
+static const struct reg_sequence wm5102_reva_patch[] = {
        { 0x80, 0x0003 },
        { 0x221, 0x0090 },
        { 0x211, 0x0014 },
@@ -57,7 +57,7 @@ static const struct reg_default wm5102_reva_patch[] = {
        { 0x80, 0x0000 },
 };
 
-static const struct reg_default wm5102_revb_patch[] = {
+static const struct reg_sequence wm5102_revb_patch[] = {
        { 0x19, 0x0001 },
        { 0x80, 0x0003 },
        { 0x081, 0xE022 },
@@ -80,7 +80,7 @@ static const struct reg_default wm5102_revb_patch[] = {
 /* We use a function so we can use ARRAY_SIZE() */
 int wm5102_patch(struct arizona *arizona)
 {
-       const struct reg_default *wm5102_patch;
+       const struct reg_sequence *wm5102_patch;
        int patch_size;
 
        switch (arizona->rev) {
index 12cad94b40354d8d548ab8974156f8c5c625f4db..26ce14f903fee5d6ea57c8d260f6c081ce93dca8 100644 (file)
@@ -21,7 +21,7 @@
 #define WM5110_NUM_AOD_ISR 2
 #define WM5110_NUM_ISR 5
 
-static const struct reg_default wm5110_reva_patch[] = {
+static const struct reg_sequence wm5110_reva_patch[] = {
        { 0x80, 0x3 },
        { 0x44, 0x20 },
        { 0x45, 0x40 },
@@ -134,7 +134,7 @@ static const struct reg_default wm5110_reva_patch[] = {
        { 0x209, 0x002A },
 };
 
-static const struct reg_default wm5110_revb_patch[] = {
+static const struct reg_sequence wm5110_revb_patch[] = {
        { 0x80, 0x3 },
        { 0x36e, 0x0210 },
        { 0x370, 0x0210 },
@@ -224,7 +224,7 @@ static const struct reg_default wm5110_revb_patch[] = {
        { 0x80, 0x0 },
 };
 
-static const struct reg_default wm5110_revd_patch[] = {
+static const struct reg_sequence wm5110_revd_patch[] = {
        { 0x80, 0x3 },
        { 0x80, 0x3 },
        { 0x393, 0x27 },
index 53ae5af5d6e4f97b88c19543a3ec81df09de64da..0f4169a3a5d4c181017ab22ac40a1cb1dfd1fad2 100644 (file)
@@ -243,21 +243,21 @@ static int wm8994_ldo_in_use(struct wm8994_pdata *pdata, int ldo)
 }
 #endif
 
-static const struct reg_default wm8994_revc_patch[] = {
+static const struct reg_sequence wm8994_revc_patch[] = {
        { 0x102, 0x3 },
        { 0x56, 0x3 },
        { 0x817, 0x0 },
        { 0x102, 0x0 },
 };
 
-static const struct reg_default wm8958_reva_patch[] = {
+static const struct reg_sequence wm8958_reva_patch[] = {
        { 0x102, 0x3 },
        { 0xcb, 0x81 },
        { 0x817, 0x0 },
        { 0x102, 0x0 },
 };
 
-static const struct reg_default wm1811_reva_patch[] = {
+static const struct reg_sequence wm1811_reva_patch[] = {
        { 0x102, 0x3 },
        { 0x56, 0xc07 },
        { 0x5d, 0x7e },
@@ -326,7 +326,7 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq)
 {
        struct wm8994_pdata *pdata;
        struct regmap_config *regmap_config;
-       const struct reg_default *regmap_patch = NULL;
+       const struct reg_sequence *regmap_patch = NULL;
        const char *devname;
        int ret, i, patch_regs = 0;
        int pulls = 0;
index c0c25d75aaccbf3a53218b71d5ea18f0b24c9d0d..cab2c68f17378eff6efd0a0da54153a094584b73 100644 (file)
@@ -17,7 +17,7 @@
 
 #include "arizona.h"
 
-static const struct reg_default wm8997_reva_patch[] = {
+static const struct reg_sequence wm8997_reva_patch[] = {
        { 0x80, 0x0003 },
        { 0x214, 0x0008 },
        { 0x458, 0x0000 },
index 59c55ea0f0b50c270d64bebe9dd6c25a717ca5ec..c9ef2ec69142e2309b5fc80784657f5abe79d4c7 100644 (file)
@@ -50,6 +50,17 @@ struct reg_default {
        unsigned int def;
 };
 
+/**
+ * Register/value pairs for sequences of writes
+ *
+ * @reg: Register address.
+ * @def: Register value.
+ */
+struct reg_sequence {
+       unsigned int reg;
+       unsigned int def;
+};
+
 #ifdef CONFIG_REGMAP
 
 enum regmap_endian {
@@ -410,10 +421,10 @@ int regmap_raw_write(struct regmap *map, unsigned int reg,
                     const void *val, size_t val_len);
 int regmap_bulk_write(struct regmap *map, unsigned int reg, const void *val,
                        size_t val_count);
-int regmap_multi_reg_write(struct regmap *map, const struct reg_default *regs,
+int regmap_multi_reg_write(struct regmap *map, const struct reg_sequence *regs,
                        int num_regs);
 int regmap_multi_reg_write_bypassed(struct regmap *map,
-                                   const struct reg_default *regs,
+                                   const struct reg_sequence *regs,
                                    int num_regs);
 int regmap_raw_write_async(struct regmap *map, unsigned int reg,
                           const void *val, size_t val_len);
@@ -450,7 +461,7 @@ void regcache_mark_dirty(struct regmap *map);
 bool regmap_check_range_table(struct regmap *map, unsigned int reg,
                              const struct regmap_access_table *table);
 
-int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
+int regmap_register_patch(struct regmap *map, const struct reg_sequence *regs,
                          int num_regs);
 int regmap_parse_val(struct regmap *map, const void *buf,
                                unsigned int *val);
index 802e05eae3e9d498d643e9f97f951730b201e96f..5edd33fcd68c6d4f461e6999bb8b8f0d905baaa9 100644 (file)
@@ -1366,7 +1366,7 @@ static void arizona_wm5102_set_dac_comp(struct snd_soc_codec *codec,
 {
        struct arizona_priv *priv = snd_soc_codec_get_drvdata(codec);
        struct arizona *arizona = priv->arizona;
-       struct reg_default dac_comp[] = {
+       struct reg_sequence dac_comp[] = {
                { 0x80, 0x3 },
                { ARIZONA_DAC_COMP_1, 0 },
                { ARIZONA_DAC_COMP_2, 0 },
index 8f40025b7e7ca457f4f65eaca2f64a59e468a4a9..2813a1b0c949d86bea59c08dd154edc6271fb84f 100644 (file)
@@ -276,7 +276,7 @@ static const struct snd_soc_codec_driver soc_codec_dev_cs35l32 = {
 };
 
 /* Current and threshold powerup sequence Pg37 in datasheet */
-static const struct reg_default cs35l32_monitor_patch[] = {
+static const struct reg_sequence cs35l32_monitor_patch[] = {
 
        { 0x00, 0x99 },
        { 0x48, 0x17 },
index 4de52c9957ac5a53c321b6eef5b805ad199a60b4..8b2d059335949e9647d6533fdacb8ab3acefc6c2 100644 (file)
@@ -1118,7 +1118,7 @@ static const struct snd_soc_codec_driver soc_codec_dev_cs42l52 = {
 };
 
 /* Current and threshold powerup sequence Pg37 */
-static const struct reg_default cs42l52_threshold_patch[] = {
+static const struct reg_sequence cs42l52_threshold_patch[] = {
 
        { 0x00, 0x99 },
        { 0x3E, 0xBA },
index 21810e5f3321c863c48ec00bab4f1bbfddc203d8..bf0fb3d4df22724923b307dbd6336576da6f3368 100644 (file)
@@ -1182,7 +1182,7 @@ static struct snd_soc_codec_driver soc_codec_dev_da7210 = {
 
 #if IS_ENABLED(CONFIG_I2C)
 
-static struct reg_default da7210_regmap_i2c_patch[] = {
+static struct reg_sequence da7210_regmap_i2c_patch[] = {
 
        /* System controller master disable */
        { DA7210_STARTUP1, 0x00 },
@@ -1269,7 +1269,7 @@ static struct i2c_driver da7210_i2c_driver = {
 
 #if defined(CONFIG_SPI_MASTER)
 
-static struct reg_default da7210_regmap_spi_patch[] = {
+static struct reg_sequence da7210_regmap_spi_patch[] = {
        /* Dummy read to give two pulses over nCS for SPI */
        { DA7210_AUX2, 0x00 },
        { DA7210_AUX2, 0x00 },
index 9bc78e57513d74e40c5a4f9bda59c34625b15715..1ed1f8895e1244857d2980c14a5560a03d6110d9 100644 (file)
@@ -51,7 +51,7 @@ static const struct regmap_range_cfg rt5640_ranges[] = {
          .window_len = 0x1, },
 };
 
-static const struct reg_default init_list[] = {
+static const struct reg_sequence init_list[] = {
        {RT5640_PR_BASE + 0x3d, 0x3600},
        {RT5640_PR_BASE + 0x12, 0x0aa8},
        {RT5640_PR_BASE + 0x14, 0x0aaa},
index 9ce311e088fc514bf8cde70dd120a3074f78bfe5..c0f4be430e703a2edfa6c9de4b0b5f2e9adb7acf 100644 (file)
@@ -54,7 +54,7 @@ static const struct regmap_range_cfg rt5645_ranges[] = {
        },
 };
 
-static const struct reg_default init_list[] = {
+static const struct reg_sequence init_list[] = {
        {RT5645_PR_BASE + 0x3d, 0x3600},
        {RT5645_PR_BASE + 0x1c, 0xfd20},
        {RT5645_PR_BASE + 0x20, 0x611f},
@@ -63,7 +63,7 @@ static const struct reg_default init_list[] = {
 };
 #define RT5645_INIT_REG_LEN ARRAY_SIZE(init_list)
 
-static const struct reg_default rt5650_init_list[] = {
+static const struct reg_sequence rt5650_init_list[] = {
        {0xf6,  0x0100},
 };
 
index a3506e193abcd26f90884bf592154a980b797f6a..db9b8667f136bcd5fa41949a6a09aea61f2a6ada 100644 (file)
@@ -46,7 +46,7 @@ static const struct regmap_range_cfg rt5651_ranges[] = {
          .window_len = 0x1, },
 };
 
-static struct reg_default init_list[] = {
+static struct reg_sequence init_list[] = {
        {RT5651_PR_BASE + 0x3d, 0x3e00},
 };
 
index a9123d41417875a0a5788a3106b6bcd03bb10c9b..462a91f7cf6838c8ba16e938a375bc4aed1c7211 100644 (file)
@@ -51,7 +51,7 @@ static const struct regmap_range_cfg rt5670_ranges[] = {
          .window_len = 0x1, },
 };
 
-static const struct reg_default init_list[] = {
+static const struct reg_sequence init_list[] = {
        { RT5670_PR_BASE + 0x14, 0x9a8a },
        { RT5670_PR_BASE + 0x38, 0x3ba1 },
        { RT5670_PR_BASE + 0x3d, 0x3640 },
index 31d969ac11920ff419981caee098a234baf4d0f7..b8977525147028794646c18b897ea28c26d7c1db 100644 (file)
@@ -54,7 +54,7 @@ static const struct regmap_range_cfg rt5677_ranges[] = {
        },
 };
 
-static const struct reg_default init_list[] = {
+static const struct reg_sequence init_list[] = {
        {RT5677_ASRC_12,        0x0018},
        {RT5677_PR_BASE + 0x3d, 0x364d},
        {RT5677_PR_BASE + 0x17, 0x4fc0},
index a7cf19b53fb2d44d3cdefc6ef15f058b3da44bf5..83ae1eb44d4fb432aaa04611dd95675df3733f7d 100644 (file)
@@ -1668,7 +1668,7 @@ static const struct i2c_device_id aic3x_i2c_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, aic3x_i2c_id);
 
-static const struct reg_default aic3007_class_d[] = {
+static const struct reg_sequence aic3007_class_d[] = {
        /* Class-D speaker driver init; datasheet p. 46 */
        { AIC3X_PAGE_SELECT, 0x0D },
        { 0xD, 0x0D },
index c83083285e532711406422b2f8e1619f6f4de7fa..6c607928fb9b2b9ca4defc7849acd69122171f60 100644 (file)
@@ -897,7 +897,7 @@ static bool wm2200_readable_register(struct device *dev, unsigned int reg)
        }
 }
 
-static const struct reg_default wm2200_reva_patch[] = {
+static const struct reg_sequence wm2200_reva_patch[] = {
        { 0x07, 0x0003 },
        { 0x102, 0x0200 },
        { 0x203, 0x0084 },
index 4c10cd88c1af66a1a54b168c34844c190e077b9d..26d79bbb75999ca706d6958b2dd9f484fbda182c 100644 (file)
@@ -1247,7 +1247,7 @@ static const struct snd_soc_dapm_route wm5100_dapm_routes[] = {
        { "PWM2", NULL, "PWM2 Driver" },
 };
 
-static const struct reg_default wm5100_reva_patches[] = {
+static const struct reg_sequence wm5100_reva_patches[] = {
        { WM5100_AUDIO_IF_1_10, 0 },
        { WM5100_AUDIO_IF_1_11, 1 },
        { WM5100_AUDIO_IF_1_12, 2 },
index c5748fd4f2962a816308faf605f7aee7116b970a..05492e826aea7ee207a1349dfbf80c9d629c65d5 100644 (file)
@@ -3495,7 +3495,7 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8962 = {
 };
 
 /* Improve power consumption for IN4 DC measurement mode */
-static const struct reg_default wm8962_dc_measure[] = {
+static const struct reg_sequence wm8962_dc_measure[] = {
        { 0xfd, 0x1 },
        { 0xcc, 0x40 },
        { 0xfd, 0 },
index 8a8db8605dc2e72acd5ab0e70149834d06ba7bf0..52ec64d8502d2fa82117634ec7390ff755470048 100644 (file)
@@ -1595,7 +1595,7 @@ static int wm8993_resume(struct snd_soc_codec *codec)
 #endif
 
 /* Tune DC servo configuration */
-static struct reg_default wm8993_regmap_patch[] = {
+static struct reg_sequence wm8993_regmap_patch[] = {
        { 0x44, 3 },
        { 0x56, 3 },
        { 0x44, 0 },