15 Dec, 2010

2 commits

  • This patch adds support for reporting twl6040 headset and
    handset jack events.

    The machine driver retrieves and report the status through
    twl6040_hs_jack_detect.

    A workq is used to debounce of the irq.

    Signed-off-by: Jorge Eduardo Candelaria
    Signed-off-by: Misael Lopez Cruz
    Signed-off-by: Margarita Olaya Cabrera
    Signed-off-by: Liam Girdwood

    Jorge Eduardo Candelaria
     
  • twl4030 series of codecs supports S32_LE with msbits=24.
    Replace the S24_LE with S32_LE format, and add constraint
    for 24msbit in case of 32 S32_LE format.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     

11 Dec, 2010

1 commit

  • If the following scenario has been followed:
    1. Enable analog bypass
    amixer sset 'Analog Left Bypass' on
    amixer sset 'Analog Right Bypass' on

    2. Start playback
    aplay -fdat -d3 /dev/zero

    After the playback stopped (3 sec), and the soc timeout (5 sec),
    the digital parts of the codec will remain powered up.
    This means that the DAI clocks are continue to run, the
    oscillator remain operational, etc.

    Use the SND_SOC_DAPM_POST_PMD widget to get notification
    about the stopped stream, and power down the digital
    part of the codec.
    If the analog bypass is enabled, than the codec will remain in
    BIAS_ON level, and things will work correctly.
    In case, if the bypass is disabled, than the codec will
    fall to BIAS_STANDBY than to BIAS_OFF level, as it used
    to.

    The digital part of DAC33 is initialized at every stream start
    (DAPM_PRE:PRE_PMU event), so subsequent streams (within 5 sec)
    will have working DAI.
    When the codec is coming out from BIAS_OFF, the full power-up
    sequence followed by the same DAPM_PRE widget event will power up
    the digital part.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     

09 Dec, 2010

4 commits


02 Dec, 2010

2 commits


30 Nov, 2010

13 commits

  • New DAPM widgets, and paths to enable both channels at the
    same time (for stereo output).
    With this path the switch time difference can be avoided
    between left and right channels.
    The original DAPM paths can be still used, if only one of
    TPA's output has been connected to a speaker, but for most of
    the cases, switching to the stereo path is better.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     
  • Reduce the amount of duplicated code by using single
    event handler for PGA_E to enable the needed channel.
    Use the w->shift to pass the channel information to
    the handler function.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     
  • Do not enable the amplifier right after the power has been
    restored to the amplifier.
    The DAPM_SUPPLY widget turns on the amp early in the DAPM
    power walk, and the unmuting of channel happens quite late.
    Keeping the amp in SW reset state ensures better muting.
    In this way the pop noise coming from other components (codec)
    can be filtered out.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     
  • Use simpler way to avoid setting the same power state
    for the amplifier.
    Simplifies the check introduced by patch:
    ASoC: tpa6130a2: Fix unbalanced regulator disables

    Signed-off-by: Peter Ujfalusi
    Cc: Jarkko Nikula
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     
  • During playback start the codec has been already powered at
    BIAS_ON event time, so there's no need to enable the codec again.

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     
  • No need to enable the codec at this time.
    The codec will be enabled later by other events

    Signed-off-by: Peter Ujfalusi
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Peter Ujfalusi
     
  • Mark Brown
     
  • Otherwise, calling dev_get_drvdata in p1022_ds_remove returns NULL.

    Signed-off-by: Axel Lin
    Acked-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     
  • Otherwise, calling dev_get_drvdata in mpc8610_hpcd_remove returns NULL.

    Signed-off-by: Axel Lin
    Acked-by: Timur Tabi
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     
  • I think this unneededd !! operations just reduce the readability.

    Signed-off-by: Axel Lin
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     
  • This patch fixes below error:

    CC sound/soc/nuc900/nuc900-pcm.o
    sound/soc/nuc900/nuc900-pcm.c: In function 'nuc900_dma_open':
    sound/soc/nuc900/nuc900-pcm.c:267: error: 'nuc900_ac97_data' undeclared (first use in this function)
    sound/soc/nuc900/nuc900-pcm.c:267: error: (Each undeclared identifier is reported only once
    sound/soc/nuc900/nuc900-pcm.c:267: error: for each function it appears in.)
    sound/soc/nuc900/nuc900-pcm.c: At top level:
    sound/soc/nuc900/nuc900-pcm.c:337: error: expected ',' or ';' before 'static'
    sound/soc/nuc900/nuc900-pcm.c:354: error: 'nuc900_soc_platform_probe' undeclared here (not in a function)
    make[3]: *** [sound/soc/nuc900/nuc900-pcm.o] Error 1
    make[2]: *** [sound/soc/nuc900] Error 2
    make[1]: *** [sound/soc] Error 2
    make: *** [sound] Error 2

    Signed-off-by: Axel Lin
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     
  • This patch fixes below compile warning:

    CC sound/soc/nuc900/nuc900-ac97.o
    sound/soc/nuc900/nuc900-ac97.c:300: warning: initialization from incompatible pointer type
    sound/soc/nuc900/nuc900-ac97.c:301: warning: initialization from incompatible pointer type

    Signed-off-by: Axel Lin
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     
  • Fix below compile error by add a missing ';'.

    CC sound/soc/nuc900/nuc900-ac97.o
    sound/soc/nuc900/nuc900-ac97.c:300: warning: initialization from incompatible pointer type
    sound/soc/nuc900/nuc900-ac97.c:301: warning: initialization from incompatible pointer type
    sound/soc/nuc900/nuc900-ac97.c:318: error: expected ',' or ';' before 'static'
    sound/soc/nuc900/nuc900-ac97.c:405: error: 'nuc900_ac97_drvprobe' undeclared here (not in a function)
    make[3]: *** [sound/soc/nuc900/nuc900-ac97.o] Error 1
    make[2]: *** [sound/soc/nuc900] Error 2
    make[1]: *** [sound/soc] Error 2
    make: *** [sound] Error 2

    Signed-off-by: Axel Lin
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Axel Lin
     

29 Nov, 2010

6 commits


27 Nov, 2010

8 commits

  • This allows us to communicate our power management state back to the
    parent device, allowing it to do a full power down when the device is
    idle.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • The WM8994 and WM8958 register map is relatively sparse so benefits
    from compression. The rbtree compression gives better results than
    LZO for both memory and CPU consumption on a map as sparse as this.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • In the process we convert the driver to read registers one at a time
    when initialising the cache. This has the effect of working around
    limitations in the sizes of I2C transactions which can be done by some
    CPUs. Due to the sparseness of the register map the overhead from this
    should be minimual unless I2C transactions are very expensive to start.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • The WM8958 contains an advanced accessory detection feature which allows
    detection of up to seven different impedence levels on the microphone
    bias output, including detection of video outputs. Since some of the
    more involved accessory interfaces may involve noticable interactions
    with external components a simple detection scheme is provided by
    default with the option to provide custom handling of accessory detect.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • The WM8958 features a multi-band compressor which can be enabled on
    any of the AIF inputs. The MBC allows different gains to be applied to
    differnt audio bands, providing an improvement in perceived loudness
    of the signal by avoiding overdriving the output transducers. This
    patch enables support for the MBC.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • Additional audio routing options are available on the WM8958 audio
    interface 3. Add support for these.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • The WM8958 is a WM8994 derivative. This patch merely ensures that some
    revision specific configuration for WM8994 is not enabled on WM8994,
    additional patches will add support for the new features introduced on
    the WM8958.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     
  • Devices which do not have a DCS correction applied can use the explicit
    DC servo startup mode for optimal startup performance. This most
    immediately affects the WM8958.

    Signed-off-by: Mark Brown
    Acked-by: Liam Girdwood

    Mark Brown
     

26 Nov, 2010

4 commits