16 Oct, 2007

1 commit


16 May, 2007

1 commit

  • This patch fixes a bug whereby AC97 bus device data was being clobbered
    when AC97 codecs using the generic ac97_codec.c driver were being
    registered. Codecs that didn't use the generic driver were unaffected
    (e.g. WM9712, WM9713).
    Changes:-
    o Add new AC97 codec class for custom (or need bus dev registration)
    AC97 codecs.
    o Only register/deregister this custom codec device with the AC97 bus.
    The generic AC97 driver already does this for generic codec devices.
    This may be related to bug #3038 :-
    https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3038

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

    Liam Girdwood
     

09 Feb, 2007

13 commits

  • This patch updates the ASoC core to the new DAI matching and clocking
    API in version 0.13
    Changes:-
    o Removed DAI capabilities matching code in favour of manual matching
    in the machine drivers.
    o Added DAI operations for codec and CPU interfaces.
    o Removed config_sysclk() function and struct snd_soc_clock_info. No
    longer needed as clocking is now configured manually in the machine
    drivers. Also removed other clocking data from structures.
    o Added machine driver prepare callback.

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

    Liam Girdwood
     
  • This very minor patch fixes the snd_soc_new_pcms() function to comply
    with the kernel coding style.

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

    Liam Girdwood
     
  • This patch fixes a bug whereby the power management delayed work would
    never be run at driver suspend() or module remove(). Delayed work would
    be created (after audio had finished) with a long delay (~5 secs) and
    was sometimes never queued before flush_scheduled_work() was being
    called at suspend or module remove. This caused the delayed work to
    queued after the module had been removed or after resume.
    This patch forces any delayed work to complete by cancelling it (timer
    cannot fire and add it to queue later), scheduling it for now and
    waiting on it's completion.
    This is something I probably would like to add to workqueue.c in the
    next merge window, however it's here atm because it can oops.

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

    Liam Girdwood
     
  • This patch fixes a bug whereby some resources were not being freed when
    codec probe() failed.

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

    Liam Girdwood
     
  • Use global workqueue for simplicity instead of own workqueue
    in SoC core and wm8750 codes.

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

    Takashi Iwai
     
  • This patch adds copyright and credit for my good friend Richard Purdie
    from OpenedHand for his help and code contribution throughout the
    development of the core code. Many thanks Richard (I guess we overlooked
    this in trying to get everything working well).
    It also adds some extra comments wrt to DAI clock matching.

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

    Liam Girdwood
     
  • From: Andrew Morton
    I converted the workqueues to per-device while I was there. It seems
    strange to create a new kernel thread (on each CPU!) and to then only
    have a single global work to ever be queued upon it.
    Plus without this, I'd have to use the _NAR stuff, gawd help me.
    Does that workqueue really need to be per-cpu?
    Does that workqueue really need to exist? Why not use keventd?
    Cc: Takashi Iwai
    Cc: David Howells

    Signed-off-by: Andrew Morton
    Signed-off-by: Jaroslav Kysela

    Andrew Morton
     
  • This patch by Philipp Zabel fixes a bug whereby the BCLK matching fails
    when the Codec BCLK is constant and the CPU BCLK is based upon a
    divider.

    Signed-off-by: Philipp Zabel
    Signed-off-by: Liam Girdwood
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jaroslav Kysela

    Philipp Zabel
     
  • This patch adds support for the DAI BCLK to be generated by multiplying
    Rate * Channels * Word Size (RCW).
    This now gives 3 options for BCLK clocking and synchronisation :-
    1. BCLK = Rate * x
    2. BCLK = MCLK / x
    3. BCLK = Rate * Chn * Word Size. (New)
    Changes:-
    o Add support for RCW generation of BCLK
    o Update Documentation to include RCW.
    o Update DAI documentation for label = value DAI modes.
    o Add RCW support to wm8731, wm8750 and pxa2xx-i2s drivers.

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

    Liam Girdwood
     
  • This patch fixes some build warnings in soc-core.c
    Changes:-
    o Check the return value of soc_ac97_dev_register()
    o Check return value of calls to device_create_file()

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

    Liam Girdwood
     
  • This patch fixes a build failure when ASoC debug is enabled.

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

    Liam Girdwood
     
  • Properly quote a string that had an embedded newline.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Jaroslav Kysela

    Clemens Ladisch
     
  • This patch is the core of ASoC functionality.
    The ASoC core is designed to provide the following features :-
    o Codec independence. Allows reuse of codec drivers on other platforms
    and machines.
    o Platform driver code reuse. Reuse of platform specific audio DMA and
    DAI drivers on different machines.
    o Easy I2S/PCM digital audio interface configuration between codec and
    SoC. Each SoC interface and codec registers their audio interface
    capabilities with the core at initialisation. The capabilities are
    subsequently matched and configured at run time for best power and
    performance when the application hw params are known.
    o Machine specific controls/operations: Allow machines to add controls
    and operations to the audio subsystem. e.g. volume control for speaker
    amp.
    To achieve all this, ASoC splits an embedded audio system into 3
    components :-
    1. Codec driver: The codec driver is platform independent and contains
    audio controls, audio interface capabilities, codec dapm and codec IO
    functions.
    2. Platform driver: The platform driver contains the audio dma engine
    and audio interface drivers (e.g. I2S, AC97, PCM) for that platform.
    3. Machine driver: The machine driver handles any machine specific
    controls and audio events. i.e. turning on an amp at start of playback.

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

    Frank Mandarino