]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/sound/soc.h
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
[karo-tx-linux.git] / include / sound / soc.h
index fadcb351f3e1cd6df0dd1d39ea4b263285cdfb2b..38769cc900c902cde7b6cdb654f9d09cf45884ad 100644 (file)
        {.reg = xreg, .rreg = xreg, .shift = shift_left, \
        .rshift = shift_right, .max = xmax, .platform_max = xmax, \
        .invert = xinvert, .autodisable = xautodisable})
+#define SOC_DOUBLE_S_VALUE(xreg, shift_left, shift_right, xmin, xmax, xsign_bit, xinvert, xautodisable) \
+       ((unsigned long)&(struct soc_mixer_control) \
+       {.reg = xreg, .rreg = xreg, .shift = shift_left, \
+       .rshift = shift_right, .min = xmin, .max = xmax, .platform_max = xmax, \
+       .sign_bit = xsign_bit, .invert = xinvert, .autodisable = xautodisable})
 #define SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert, xautodisable) \
        SOC_DOUBLE_VALUE(xreg, xshift, xshift, xmax, xinvert, xautodisable)
 #define SOC_SINGLE_VALUE_EXT(xreg, xmax, xinvert) \
        .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
                  SNDRV_CTL_ELEM_ACCESS_READWRITE, \
        .tlv.p  = (tlv_array), \
-       .info   = snd_soc_info_volsw_s8, .get = snd_soc_get_volsw_s8, \
-       .put    = snd_soc_put_volsw_s8, \
-       .private_value = (unsigned long)&(struct soc_mixer_control) \
-               {.reg = xreg, .min = xmin, .max = xmax, \
-                .platform_max = xmax} }
+       .info = snd_soc_info_volsw, .get = snd_soc_get_volsw,\
+       .put = snd_soc_put_volsw, \
+       .private_value = SOC_DOUBLE_S_VALUE(xreg, 0, 8, xmin, xmax, 7, 0, 0) }
 #define SOC_ENUM_DOUBLE(xreg, xshift_l, xshift_r, xitems, xtexts) \
 {      .reg = xreg, .shift_l = xshift_l, .shift_r = xshift_r, \
        .items = xitems, .texts = xtexts, \
@@ -541,12 +544,6 @@ int snd_soc_get_volsw_sx(struct snd_kcontrol *kcontrol,
        struct snd_ctl_elem_value *ucontrol);
 int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol,
        struct snd_ctl_elem_value *ucontrol);
-int snd_soc_info_volsw_s8(struct snd_kcontrol *kcontrol,
-       struct snd_ctl_elem_info *uinfo);
-int snd_soc_get_volsw_s8(struct snd_kcontrol *kcontrol,
-       struct snd_ctl_elem_value *ucontrol);
-int snd_soc_put_volsw_s8(struct snd_kcontrol *kcontrol,
-       struct snd_ctl_elem_value *ucontrol);
 int snd_soc_info_volsw_range(struct snd_kcontrol *kcontrol,
        struct snd_ctl_elem_info *uinfo);
 int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol,
@@ -854,8 +851,6 @@ struct snd_soc_platform_driver {
 
        int (*probe)(struct snd_soc_platform *);
        int (*remove)(struct snd_soc_platform *);
-       int (*suspend)(struct snd_soc_dai *dai);
-       int (*resume)(struct snd_soc_dai *dai);
        struct snd_soc_component_driver component_driver;
 
        /* pcm creation and destruction */
@@ -880,7 +875,7 @@ struct snd_soc_platform_driver {
 
 struct snd_soc_dai_link_component {
        const char *name;
-       const struct device_node *of_node;
+       struct device_node *of_node;
        const char *dai_name;
 };
 
@@ -888,8 +883,6 @@ struct snd_soc_platform {
        struct device *dev;
        const struct snd_soc_platform_driver *driver;
 
-       unsigned int suspended:1; /* platform is suspended */
-
        struct list_head list;
 
        struct snd_soc_component component;
@@ -984,7 +977,7 @@ struct snd_soc_codec_conf {
         * DT/OF node, but not both.
         */
        const char *dev_name;
-       const struct device_node *of_node;
+       struct device_node *of_node;
 
        /*
         * optional map of kcontrol, widget and path name prefixes that are
@@ -1001,7 +994,7 @@ struct snd_soc_aux_dev {
         * DT/OF node, but not both.
         */
        const char *codec_name;
-       const struct device_node *codec_of_node;
+       struct device_node *codec_of_node;
 
        /* codec/machine specific init - e.g. add machine controls */
        int (*init)(struct snd_soc_component *component);