]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Merge branch 'for-3.1' into for-3.2
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 21 Sep 2011 13:54:34 +0000 (14:54 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 21 Sep 2011 13:54:34 +0000 (14:54 +0100)
1  2 
sound/soc/soc-core.c

diff --combined sound/soc/soc-core.c
index 10e5cdeeb18ed1da0bc191aaa35574be8702ca04,ef69f5a0270991e7990055b109282cd6e66afa08..bd20154e8b344caa8565f520a4cc4b1588a50fc8
@@@ -30,6 -30,7 +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>
@@@ -105,7 -106,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';
@@@ -143,7 -144,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,
@@@ -244,6 -245,7 +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);
@@@ -952,8 -957,6 +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) {
@@@ -1432,9 -1435,20 +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);
@@@ -2666,7 -2680,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;
@@@ -2677,18 -2691,16 +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;
  }
@@@ -3141,7 -3153,6 +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);
@@@ -3254,7 -3265,6 +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;