]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 Oct 2008 17:06:58 +0000 (10:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 Oct 2008 17:06:58 +0000 (10:06 -0700)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (33 commits)
  ALSA: ASoC codec: remove unused #include <version.h>
  ALSA: ASoC: update email address for Liam Girdwood
  ALSA: hda: corrected invalid mixer values
  ALSA: hda: add mixers for analog mixer on 92hd75xx codecs
  ALSA: ASoC: Add destination and source port for DMA on OMAP1
  ALSA: ASoC: Drop device registration from GTA01 lm4857 driver
  ALSA: ASoC: Fix build of GTA01 audio driver
  ALSA: ASoC: Add widgets before setting endpoints on GTA01
  ALSA: ASoC: Fix inverted input PGA mute bits in WM8903
  ALSA: ASoC: OMAP: Set DMA stream name at runtime in McBSP DAI driver
  ALSA: ASoC: OMAP: Add support for OMAP2430 and OMAP34xx in McBSP DAI driver
  ALSA: ASoC: OMAP: Add multilink support to McBSP DAI driver
  ALSA: ASoC: Make TLV320AIC26 user-visible
  ALSA: ASoC - clean up Kconfig for TLV320AIC2
  ALSA: ASoC: Make WM8510 microphone input a DAPM mixer
  ALSA: ASoC: Implement WM8510 bias level control
  ALSA: ASoC: Remove unused AUDIO_NAME define from codec drivers
  ALSA: ASoC: tlv320aic3x: Use uniform tlv320aic naming
  ALSA: ASoC: Add WM8510 SPI support
  ALSA: ASoC: Add WM8753 SPI support
  ...

1  2 
sound/soc/pxa/corgi.c
sound/soc/pxa/pxa2xx-i2s.c
sound/soc/pxa/spitz.c

diff --combined sound/soc/pxa/corgi.c
index 1a8373de7f3a3badc8a58b5f3559186cff21c584,dd7fa0b329c7e6fd99d75ffce523c7d7674e804a..2718eaf7895f39d4db2e5d93e4227400b995b1a7
@@@ -4,7 -4,7 +4,7 @@@
   * Copyright 2005 Wolfson Microelectronics PLC.
   * Copyright 2005 Openedhand Ltd.
   *
-  * Authors: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
+  * Authors: Liam Girdwood <lrg@slimlogic.co.uk>
   *          Richard Purdie <richard@openedhand.com>
   *
   *  This program is free software; you can redistribute  it and/or modify it
  #include <linux/timer.h>
  #include <linux/interrupt.h>
  #include <linux/platform_device.h>
 +#include <linux/gpio.h>
  #include <sound/core.h>
  #include <sound/pcm.h>
  #include <sound/soc.h>
  #include <sound/soc-dapm.h>
  
  #include <asm/mach-types.h>
 -#include <asm/hardware/scoop.h>
  #include <mach/pxa-regs.h>
  #include <mach/hardware.h>
  #include <mach/corgi.h>
@@@ -54,8 -54,8 +54,8 @@@ static void corgi_ext_control(struct sn
        switch (corgi_jack_func) {
        case CORGI_HP:
                /* set = unmute headphone */
 -              set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
 -              set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 +              gpio_set_value(CORGI_GPIO_MUTE_L, 1);
 +              gpio_set_value(CORGI_GPIO_MUTE_R, 1);
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Headphone Jack");
                break;
        case CORGI_MIC:
                /* reset = mute headphone */
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 +              gpio_set_value(CORGI_GPIO_MUTE_L, 0);
 +              gpio_set_value(CORGI_GPIO_MUTE_R, 0);
                snd_soc_dapm_enable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_disable_pin(codec, "Headphone Jack");
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                break;
        case CORGI_LINE:
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 +              gpio_set_value(CORGI_GPIO_MUTE_L, 0);
 +              gpio_set_value(CORGI_GPIO_MUTE_R, 0);
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_enable_pin(codec, "Line Jack");
                snd_soc_dapm_disable_pin(codec, "Headphone Jack");
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                break;
        case CORGI_HEADSET:
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
 -              set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 +              gpio_set_value(CORGI_GPIO_MUTE_L, 0);
 +              gpio_set_value(CORGI_GPIO_MUTE_R, 1);
                snd_soc_dapm_enable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_disable_pin(codec, "Headphone Jack");
@@@ -114,8 -114,8 +114,8 @@@ static int corgi_shutdown(struct snd_pc
        struct snd_soc_codec *codec = rtd->socdev->codec;
  
        /* set = unmute headphone */
 -      set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
 -      set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 +      gpio_set_value(CORGI_GPIO_MUTE_L, 1);
 +      gpio_set_value(CORGI_GPIO_MUTE_R, 1);
        return 0;
  }
  
@@@ -218,14 -218,22 +218,14 @@@ static int corgi_set_spk(struct snd_kco
  static int corgi_amp_event(struct snd_soc_dapm_widget *w,
        struct snd_kcontrol *k, int event)
  {
 -      if (SND_SOC_DAPM_EVENT_ON(event))
 -              set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
 -      else
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
 -
 +      gpio_set_value(CORGI_GPIO_APM_ON, SND_SOC_DAPM_EVENT_ON(event));
        return 0;
  }
  
  static int corgi_mic_event(struct snd_soc_dapm_widget *w,
        struct snd_kcontrol *k, int event)
  {
 -      if (SND_SOC_DAPM_EVENT_ON(event))
 -              set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
 -      else
 -              reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
 -
 +      gpio_set_value(CORGI_GPIO_MIC_BIAS, SND_SOC_DAPM_EVENT_ON(event));
        return 0;
  }
  
@@@ -281,8 -289,8 +281,8 @@@ static int corgi_wm8731_init(struct snd
  {
        int i, err;
  
-       snd_soc_dapm_disable_pin(codec, "LLINEIN");
-       snd_soc_dapm_disable_pin(codec, "RLINEIN");
+       snd_soc_dapm_nc_pin(codec, "LLINEIN");
+       snd_soc_dapm_nc_pin(codec, "RLINEIN");
  
        /* Add corgi specific controls */
        for (i = 0; i < ARRAY_SIZE(wm8731_corgi_controls); i++) {
index 2fb58298513b32c88e5cf2f74184db37a883d163,64057b1d220df8f133114743210098963c4e486f..e758034db5c3ba38422e07592b2a933dc3e50b81
@@@ -3,7 -3,7 +3,7 @@@
   *
   * Copyright 2005 Wolfson Microelectronics PLC.
   * Author: Liam Girdwood
-  *         liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
+  *         lrg@slimlogic.co.uk
   *
   *  This program is free software; you can redistribute  it and/or modify it
   *  under  the terms of  the GNU General  Public License as published by the
@@@ -39,45 -39,6 +39,45 @@@ struct pxa2xx_gpio 
        u32 frm;
  };
  
 +/*
 + * I2S Controller Register and Bit Definitions
 + */
 +#define SACR0         __REG(0x40400000)  /* Global Control Register */
 +#define SACR1         __REG(0x40400004)  /* Serial Audio I 2 S/MSB-Justified Control Register */
 +#define SASR0         __REG(0x4040000C)  /* Serial Audio I 2 S/MSB-Justified Interface and FIFO Status Register */
 +#define SAIMR         __REG(0x40400014)  /* Serial Audio Interrupt Mask Register */
 +#define SAICR         __REG(0x40400018)  /* Serial Audio Interrupt Clear Register */
 +#define SADIV         __REG(0x40400060)  /* Audio Clock Divider Register. */
 +#define SADR          __REG(0x40400080)  /* Serial Audio Data Register (TX and RX FIFO access Register). */
 +
 +#define SACR0_RFTH(x) ((x) << 12)     /* Rx FIFO Interrupt or DMA Trigger Threshold */
 +#define SACR0_TFTH(x) ((x) << 8)      /* Tx FIFO Interrupt or DMA Trigger Threshold */
 +#define SACR0_STRF    (1 << 5)        /* FIFO Select for EFWR Special Function */
 +#define SACR0_EFWR    (1 << 4)        /* Enable EFWR Function  */
 +#define SACR0_RST     (1 << 3)        /* FIFO, i2s Register Reset */
 +#define SACR0_BCKD    (1 << 2)        /* Bit Clock Direction */
 +#define SACR0_ENB     (1 << 0)        /* Enable I2S Link */
 +#define SACR1_ENLBF   (1 << 5)        /* Enable Loopback */
 +#define SACR1_DRPL    (1 << 4)        /* Disable Replaying Function */
 +#define SACR1_DREC    (1 << 3)        /* Disable Recording Function */
 +#define SACR1_AMSL    (1 << 0)        /* Specify Alternate Mode */
 +
 +#define SASR0_I2SOFF  (1 << 7)        /* Controller Status */
 +#define SASR0_ROR     (1 << 6)        /* Rx FIFO Overrun */
 +#define SASR0_TUR     (1 << 5)        /* Tx FIFO Underrun */
 +#define SASR0_RFS     (1 << 4)        /* Rx FIFO Service Request */
 +#define SASR0_TFS     (1 << 3)        /* Tx FIFO Service Request */
 +#define SASR0_BSY     (1 << 2)        /* I2S Busy */
 +#define SASR0_RNE     (1 << 1)        /* Rx FIFO Not Empty */
 +#define SASR0_TNF     (1 << 0)        /* Tx FIFO Not Empty */
 +
 +#define SAICR_ROR     (1 << 6)        /* Clear Rx FIFO Overrun Interrupt */
 +#define SAICR_TUR     (1 << 5)        /* Clear Tx FIFO Underrun Interrupt */
 +
 +#define SAIMR_ROR     (1 << 6)        /* Enable Rx FIFO Overrun Condition Interrupt */
 +#define SAIMR_TUR     (1 << 5)        /* Enable Tx FIFO Underrun Condition Interrupt */
 +#define SAIMR_RFS     (1 << 4)        /* Enable Rx FIFO Service Interrupt */
 +#define SAIMR_TFS     (1 << 3)        /* Enable Tx FIFO Service Interrupt */
  
  struct pxa_i2s_port {
        u32 sadiv;
@@@ -93,7 -54,7 +93,7 @@@ static struct clk *clk_i2s
  static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_out = {
        .name                   = "I2S PCM Stereo out",
        .dev_addr               = __PREG(SADR),
 -      .drcmr                  = &DRCMRTXSADR,
 +      .drcmr                  = &DRCMR(3),
        .dcmd                   = DCMD_INCSRCADDR | DCMD_FLOWTRG |
                                  DCMD_BURST32 | DCMD_WIDTH4,
  };
  static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_in = {
        .name                   = "I2S PCM Stereo in",
        .dev_addr               = __PREG(SADR),
 -      .drcmr                  = &DRCMRRXSADR,
 +      .drcmr                  = &DRCMR(2),
        .dcmd                   = DCMD_INCTRGADDR | DCMD_FLOWSRC |
                                  DCMD_BURST32 | DCMD_WIDTH4,
  };
@@@ -405,6 -366,6 +405,6 @@@ module_init(pxa2xx_i2s_init)
  module_exit(pxa2xx_i2s_exit);
  
  /* Module information */
- MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
+ MODULE_AUTHOR("Liam Girdwood, lrg@slimlogic.co.uk");
  MODULE_DESCRIPTION("pxa2xx I2S SoC Interface");
  MODULE_LICENSE("GPL");
diff --combined sound/soc/pxa/spitz.c
index 9a70b00fc30e6d8100c2698b56adad67f2d08594,8f89188e541e90c06f28eacd0bd5a8b8d5f028ad..d307b6757e9550646b565a4cffaac5abc0a02007
@@@ -4,7 -4,7 +4,7 @@@
   * Copyright 2005 Wolfson Microelectronics PLC.
   * Copyright 2005 Openedhand Ltd.
   *
-  * Authors: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
+  * Authors: Liam Girdwood <lrg@slimlogic.co.uk>
   *          Richard Purdie <richard@openedhand.com>
   *
   *  This program is free software; you can redistribute  it and/or modify it
  #include <linux/timer.h>
  #include <linux/interrupt.h>
  #include <linux/platform_device.h>
 +#include <linux/gpio.h>
  #include <sound/core.h>
  #include <sound/pcm.h>
  #include <sound/soc.h>
  #include <sound/soc-dapm.h>
  
  #include <asm/mach-types.h>
 -#include <asm/hardware/scoop.h>
  #include <mach/pxa-regs.h>
  #include <mach/hardware.h>
 -#include <mach/akita.h>
  #include <mach/spitz.h>
  #include "../codecs/wm8750.h"
  #include "pxa2xx-pcm.h"
@@@ -62,8 -63,8 +62,8 @@@ static void spitz_ext_control(struct sn
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Headphone Jack");
 -              set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
 -              set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
 +              gpio_set_value(SPITZ_GPIO_MUTE_L, 1);
 +              gpio_set_value(SPITZ_GPIO_MUTE_R, 1);
                break;
        case SPITZ_MIC:
                /* enable mic jack and bias, mute hp */
@@@ -71,8 -72,8 +71,8 @@@
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Mic Jack");
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
 +              gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
 +              gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
                break;
        case SPITZ_LINE:
                /* enable line jack, disable mic bias and mute hp */
@@@ -80,8 -81,8 +80,8 @@@
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_enable_pin(codec, "Line Jack");
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
 +              gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
 +              gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
                break;
        case SPITZ_HEADSET:
                /* enable and unmute headset jack enable mic bias, mute L hp */
@@@ -89,8 -90,8 +89,8 @@@
                snd_soc_dapm_enable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Headset Jack");
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
 -              set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
 +              gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
 +              gpio_set_value(SPITZ_GPIO_MUTE_R, 1);
                break;
        case SPITZ_HP_OFF:
  
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
 -              reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
 +              gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
 +              gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
                break;
        }
        snd_soc_dapm_sync(codec);
@@@ -214,14 -215,23 +214,14 @@@ static int spitz_set_spk(struct snd_kco
  static int spitz_mic_bias(struct snd_soc_dapm_widget *w,
        struct snd_kcontrol *k, int event)
  {
 -      if (machine_is_borzoi() || machine_is_spitz()) {
 -              if (SND_SOC_DAPM_EVENT_ON(event))
 -                      set_scoop_gpio(&spitzscoop2_device.dev,
 -                              SPITZ_SCP2_MIC_BIAS);
 -              else
 -                      reset_scoop_gpio(&spitzscoop2_device.dev,
 -                              SPITZ_SCP2_MIC_BIAS);
 -      }
 +      if (machine_is_borzoi() || machine_is_spitz())
 +              gpio_set_value(SPITZ_GPIO_MIC_BIAS,
 +                              SND_SOC_DAPM_EVENT_ON(event));
 +
 +      if (machine_is_akita())
 +              gpio_set_value(AKITA_GPIO_MIC_BIAS,
 +                              SND_SOC_DAPM_EVENT_ON(event));
  
 -      if (machine_is_akita()) {
 -              if (SND_SOC_DAPM_EVENT_ON(event))
 -                      akita_set_ioexp(&akitaioexp_device.dev,
 -                              AKITA_IOEXP_MIC_BIAS);
 -              else
 -                      akita_reset_ioexp(&akitaioexp_device.dev,
 -                              AKITA_IOEXP_MIC_BIAS);
 -      }
        return 0;
  }
  
@@@ -281,13 -291,13 +281,13 @@@ static int spitz_wm8750_init(struct snd
        int i, err;
  
        /* NC codec pins */
-       snd_soc_dapm_disable_pin(codec, "RINPUT1");
-       snd_soc_dapm_disable_pin(codec, "LINPUT2");
-       snd_soc_dapm_disable_pin(codec, "RINPUT2");
-       snd_soc_dapm_disable_pin(codec, "LINPUT3");
-       snd_soc_dapm_disable_pin(codec, "RINPUT3");
-       snd_soc_dapm_disable_pin(codec, "OUT3");
-       snd_soc_dapm_disable_pin(codec, "MONO1");
+       snd_soc_dapm_nc_pin(codec, "RINPUT1");
+       snd_soc_dapm_nc_pin(codec, "LINPUT2");
+       snd_soc_dapm_nc_pin(codec, "RINPUT2");
+       snd_soc_dapm_nc_pin(codec, "LINPUT3");
+       snd_soc_dapm_nc_pin(codec, "RINPUT3");
+       snd_soc_dapm_nc_pin(codec, "OUT3");
+       snd_soc_dapm_nc_pin(codec, "MONO1");
  
        /* Add spitz specific controls */
        for (i = 0; i < ARRAY_SIZE(wm8750_spitz_controls); i++) {