Merge branch 'topic/remove-irqf_disable' into for-linus
authorTakashi Iwai <tiwai@suse.de>
Wed, 26 Oct 2011 21:51:48 +0000 (23:51 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 26 Oct 2011 21:51:48 +0000 (23:51 +0200)
1  2 
sound/soc/codecs/ssm2602.c
sound/soc/soc-core.c

@@@ -294,7 -294,6 +294,6 @@@ static int ssm2602_startup(struct snd_p
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct snd_soc_codec *codec = rtd->codec;
        struct ssm2602_priv *ssm2602 = snd_soc_codec_get_drvdata(codec);
-       struct i2c_client *i2c = codec->control_data;
        struct snd_pcm_runtime *master_runtime;
  
        /* The DAI has shared clocks so if we already have a playback or
         */
        if (ssm2602->master_substream) {
                master_runtime = ssm2602->master_substream->runtime;
-               dev_dbg(&i2c->dev, "Constraining to %d bits at %dHz\n",
+               dev_dbg(codec->dev, "Constraining to %d bits at %dHz\n",
                        master_runtime->sample_bits,
                        master_runtime->rate);
  
@@@ -431,8 -430,7 +430,8 @@@ static int ssm2602_set_dai_fmt(struct s
  static int ssm2602_set_bias_level(struct snd_soc_codec *codec,
                                 enum snd_soc_bias_level level)
  {
 -      u16 reg = snd_soc_read(codec, SSM2602_PWR) & 0xff7f;
 +      u16 reg = snd_soc_read(codec, SSM2602_PWR);
 +      reg &= ~(PWR_POWER_OFF | PWR_OSC_PDN);
  
        switch (level) {
        case SND_SOC_BIAS_ON:
diff --combined sound/soc/soc-core.c
@@@ -30,7 -30,6 +30,7 @@@
  #include <linux/bitops.h>
  #include <linux/debugfs.h>
  #include <linux/platform_device.h>
 +#include <linux/ctype.h>
  #include <linux/slab.h>
  #include <sound/ac97_codec.h>
  #include <sound/core.h>
@@@ -106,7 -105,7 +106,7 @@@ static int format_register_str(struct s
        if (wordsize + regsize + 2 + 1 != len)
                return -EINVAL;
  
-       ret = snd_soc_read(codec , reg);
+       ret = snd_soc_read(codec, reg);
        if (ret < 0) {
                memset(regbuf, 'X', regsize);
                regbuf[regsize] = '\0';
@@@ -144,7 -143,7 +144,7 @@@ static ssize_t soc_codec_reg_show(struc
                step = codec->driver->reg_cache_step;
  
        for (i = 0; i < codec->driver->reg_cache_size; i += step) {
-               if (codec->readable_register && !codec->readable_register(codec, i))
+               if (!snd_soc_codec_readable_register(codec, i))
                        continue;
                if (codec->driver->display_register) {
                        count += codec->driver->display_register(codec, buf + count,
@@@ -245,7 -244,6 +245,6 @@@ static ssize_t codec_reg_write_file(str
        size_t buf_size;
        char *start = buf;
        unsigned long reg, value;
-       int step = 1;
        struct snd_soc_codec *codec = file->private_data;
  
        buf_size = min(count, (sizeof(buf)-1));
                return -EFAULT;
        buf[buf_size] = 0;
  
-       if (codec->driver->reg_cache_step)
-               step = codec->driver->reg_cache_step;
        while (*start == ' ')
                start++;
        reg = simple_strtoul(start, &start, 16);
@@@ -957,6 -952,8 +953,8 @@@ static int soc_probe_codec(struct snd_s
                snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
                                          driver->num_dapm_widgets);
  
+       codec->dapm.idle_bias_off = driver->idle_bias_off;
        if (driver->probe) {
                ret = driver->probe(codec);
                if (ret < 0) {
@@@ -1435,20 -1432,9 +1433,20 @@@ static void snd_soc_instantiate_card(st
                 "%s", card->name);
        snprintf(card->snd_card->longname, sizeof(card->snd_card->longname),
                 "%s", card->long_name ? card->long_name : card->name);
 -      if (card->driver_name)
 -              strlcpy(card->snd_card->driver, card->driver_name,
 -                      sizeof(card->snd_card->driver));
 +      snprintf(card->snd_card->driver, sizeof(card->snd_card->driver),
 +               "%s", card->driver_name ? card->driver_name : card->name);
 +      for (i = 0; i < ARRAY_SIZE(card->snd_card->driver); i++) {
 +              switch (card->snd_card->driver[i]) {
 +              case '_':
 +              case '-':
 +              case '\0':
 +                      break;
 +              default:
 +                      if (!isalnum(card->snd_card->driver[i]))
 +                              card->snd_card->driver[i] = '_';
 +                      break;
 +              }
 +      }
  
        if (card->late_probe) {
                ret = card->late_probe(card);
@@@ -2680,7 -2666,7 +2678,7 @@@ int snd_soc_dai_set_sysclk(struct snd_s
        if (dai->driver && dai->driver->ops->set_sysclk)
                return dai->driver->ops->set_sysclk(dai, clk_id, freq, dir);
        else if (dai->codec && dai->codec->driver->set_sysclk)
-               return dai->codec->driver->set_sysclk(dai->codec, clk_id,
+               return dai->codec->driver->set_sysclk(dai->codec, clk_id, 0,
                                                      freq, dir);
        else
                return -EINVAL;
@@@ -2691,16 -2677,18 +2689,18 @@@ EXPORT_SYMBOL_GPL(snd_soc_dai_set_syscl
   * snd_soc_codec_set_sysclk - configure CODEC system or master clock.
   * @codec: CODEC
   * @clk_id: DAI specific clock ID
+  * @source: Source for the clock
   * @freq: new clock frequency in Hz
   * @dir: new clock direction - input/output.
   *
   * Configures the CODEC master (MCLK) or system (SYSCLK) clocking.
   */
  int snd_soc_codec_set_sysclk(struct snd_soc_codec *codec, int clk_id,
-       unsigned int freq, int dir)
+                            int source, unsigned int freq, int dir)
  {
        if (codec->driver->set_sysclk)
-               return codec->driver->set_sysclk(codec, clk_id, freq, dir);
+               return codec->driver->set_sysclk(codec, clk_id, source,
+                                                freq, dir);
        else
                return -EINVAL;
  }
@@@ -3153,6 -3141,7 +3153,7 @@@ int snd_soc_register_platform(struct de
        platform->driver = platform_drv;
        platform->dapm.dev = dev;
        platform->dapm.platform = platform;
+       platform->dapm.stream_event = platform_drv->stream_event;
  
        mutex_lock(&client_mutex);
        list_add(&platform->list, &platform_list);
@@@ -3265,6 -3254,7 +3266,7 @@@ int snd_soc_register_codec(struct devic
        codec->dapm.dev = dev;
        codec->dapm.codec = codec;
        codec->dapm.seq_notifier = codec_drv->seq_notifier;
+       codec->dapm.stream_event = codec_drv->stream_event;
        codec->dev = dev;
        codec->driver = codec_drv;
        codec->num_dai = num_dai;