29 Jul, 2008

1 commit

  • dapm_reg_event() is used by devices using SND_SOC_DAPM_REG() so needs to
    be exported to support building them as modules and prototyped to avoid
    sparse warnings and potential build issues.

    Signed-off-by: Mark Brown
    Signed-off-by: Takashi Iwai

    Mark Brown
     

17 Jul, 2008

2 commits


10 Jul, 2008

5 commits


26 Jun, 2008

1 commit


19 May, 2008

6 commits

  • Currently the ASoC core configures the bias levels in the system using
    a callback on codecs and machines called 'dapm_event', passing it PCI
    style power levels as SNDRV_CTL_POWER_ constants. This is more obscure
    than it needs to be and has caused confusion to driver authors,
    especially given that DAPM is also performing power management.

    Address this by renaming the callback function to 'set_bias_level' and
    using constants explicitly representing the off, standby, pre-on and on
    states which DAPM transitions through.

    Also unexport the API for setting bias level: there are currently no
    in-tree users of this API other than the core itself and it is likely
    that the core would need to be extended to cater for any users.

    Signed-off-by: Mark Brown
    Cc: Jarkko Nikula
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Mark Brown
     
  • The overwhelming majority just say 'initial version' anyway.

    Signed-off-by: Mark Brown
    Acked-by: Ben Dooks
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Mark Brown
     
  • ASoC codecs and machine drivers that use DAPM routes all cut'n'paste a
    loop iterating over a null terminated array of routes. Factor out this
    into a bulk registration function, improving the error reporting for
    most users, and deprecate the old API to help out of tree users pick up
    the changes.

    Signed-off-by: Mark Brown
    Cc: Graeme Gregory
    Cc: Frank Mandarino
    Cc: Jarkko Nikula
    Cc: Richard Purdie
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Mark Brown
     
  • Most SoC drivers cut'n'paste a loop iterating over an array to register
    their DAPM controls. Provide a function they can call instead.

    Signed-off-by: Mark Brown
    Cc: Graeme Gregory
    Cc: Frank Mandarino
    Cc: Jarkko Nikula
    Cc: Richard Purdie
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Mark Brown
     
  • Signed-off-by: Stephen Rothwell
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Stephen Rothwell
     
  • This adds a hook to read the power state of a DAPM widget, I use this
    in the gta02 driver to expose certain DAPM widgets in the mixer for
    ease of audio routing.

    Signed-off-by: Graeme Gregory
    Signed-off-by: Mark Brown
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Graeme Gregory
     

24 Apr, 2008

3 commits


01 Feb, 2008

7 commits


20 Oct, 2007

1 commit


16 Oct, 2007

1 commit

  • Fix schedule_timeout() use in alsa-kernel. Mostly just
    schedule_timeout(1) --> schedule_timeout_uninterruptible(1)
    The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main,
    delete a superfluous set_current_state() and in soc/soc-dapm.c replace an
    _interruptible with _uninterruptible in some debug code; it's not waiting
    for signals.

    Signed-off-by: Rene Herman
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Rene Herman
     

11 May, 2007

1 commit

  • This patch fixes an issue whereby power was applied to any inactive
    analog path that would leave and reenter a codec (e.g. ACOP -> ACIN on
    WM8753). This change now checks for such paths and DAPM will power them
    down when not in use.

    Signed-off-by: Seth Forshee
    Signed-off-by: Liam Girdwood
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Seth Forshee
     

09 Feb, 2007

5 commits

  • Clean up by replacing with kmemdup().

    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Takashi Iwai
     
  • This patch fixes a bug whereby an unnamed stream would cause a NULL
    pointer ref in snd_soc_dapm_stream_event().

    Signed-off-by: Seth Forshee
    Signed-off-by: Liam Girdwood
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Seth Forshee
     
  • soc-dapm
    ·Removed list_for_each since the loop is list_for_each_entry() and
    not list_for_each(). Thanks to Liam Girdwood and Seth Forshee.
    at91-i2s
    ·Fixed typo in dai modes definition.
    ·Fixed struct member name in at91_ssc_info->ssc_state.
    ·Fixed compilation problem, ssc_state is bundled in at91_ssc_info.

    Signed-off-by: Raúl Sánchez Siles
    Signed-off-by: Seth Forshee
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Raúl Sánchez Siles
     
  • Make the following needlessly global functions static:
    - dapm_power_widgets()
    - dapm_mux_update_power()
    - dapm_mixer_update_power()
    - dapm_free_widgets()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Adrian Bunk
     
  • This patch adds Dynamic Audio Power Management (DAPM) to ASoC.
    Dynamic Audio Power Management (DAPM) is designed to allow portable and
    handheld Linux devices to use the minimum amount of power within the
    audio subsystem at all times. It is independent of other kernel PM and
    as such, can easily co-exist with the other PM systems.
    DAPM is also completely transparent to all user space applications as
    all power switching is done within the ASoC core. No code changes or
    recompiling are required for user space applications. DAPM makes power
    switching decisions based upon any audio stream (capture/playback)
    activity and audio mixer settings within the device.
    DAPM spans the whole machine. It covers power control within the entire
    audio subsystem, this includes internal codec power blocks and machine
    level power systems.
    There are 4 power domains within DAPM:-
    1. Codec domain - VREF, VMID (core codec and audio power)
    Usually controlled at codec probe/remove and suspend/resume, although
    can be set at stream time if power is not needed for sidetone, etc.
    2. Platform/Machine domain - physically connected inputs and outputs
    Is platform/machine and user action specific, is configured by the
    machine driver and responds to asynchronous events e.g when HP are
    inserted
    3. Path domain - audio subsystem signal paths
    Automatically set when mixer and mux settings are changed by the user.
    e.g. alsamixer, amixer.
    4. Stream domain - DAC's and ADC's.
    Enabled and disabled when stream playback/capture is started and stopped
    respectively. e.g. aplay, arecord.
    All DAPM power switching decisions are made automatically by consulting
    an audio routing map of the whole machine. This map is specific to each
    machine and consists of the interconnections between every audio
    component (including internal codec components).

    Signed-off-by: Richard Purdie
    Signed-off-by: Liam Girdwood
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Richard Purdie