These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / sound / soc / codecs / ssm2518.c
index 67ea55a..86b81a6 100644 (file)
@@ -510,7 +510,7 @@ static int ssm2518_set_bias_level(struct snd_soc_codec *codec,
        case SND_SOC_BIAS_PREPARE:
                break;
        case SND_SOC_BIAS_STANDBY:
-               if (codec->dapm.bias_level == SND_SOC_BIAS_OFF)
+               if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF)
                        ret = ssm2518_set_power(ssm2518, true);
                break;
        case SND_SOC_BIAS_OFF:
@@ -518,12 +518,7 @@ static int ssm2518_set_bias_level(struct snd_soc_codec *codec,
                break;
        }
 
-       if (ret)
-               return ret;
-
-       codec->dapm.bias_level = level;
-
-       return 0;
+       return ret;
 }
 
 static int ssm2518_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
@@ -728,17 +723,11 @@ static struct snd_soc_codec_driver ssm2518_codec_driver = {
        .num_dapm_routes = ARRAY_SIZE(ssm2518_routes),
 };
 
-static bool ssm2518_register_volatile(struct device *dev, unsigned int reg)
-{
-       return false;
-}
-
 static const struct regmap_config ssm2518_regmap_config = {
        .val_bits = 8,
        .reg_bits = 8,
 
        .max_register = SSM2518_REG_DRC_9,
-       .volatile_reg = ssm2518_register_volatile,
 
        .cache_type = REGCACHE_RBTREE,
        .reg_defaults = ssm2518_reg_defaults,
@@ -811,6 +800,14 @@ static int ssm2518_i2c_remove(struct i2c_client *client)
        return 0;
 }
 
+#ifdef CONFIG_OF
+static const struct of_device_id ssm2518_dt_ids[] = {
+       { .compatible = "adi,ssm2518", },
+       { }
+};
+MODULE_DEVICE_TABLE(of, ssm2518_dt_ids);
+#endif
+
 static const struct i2c_device_id ssm2518_i2c_ids[] = {
        { "ssm2518", 0 },
        { }
@@ -820,7 +817,7 @@ MODULE_DEVICE_TABLE(i2c, ssm2518_i2c_ids);
 static struct i2c_driver ssm2518_driver = {
        .driver = {
                .name = "ssm2518",
-               .owner = THIS_MODULE,
+               .of_match_table = of_match_ptr(ssm2518_dt_ids),
        },
        .probe = ssm2518_i2c_probe,
        .remove = ssm2518_i2c_remove,