18 Aug, 2010

1 commit

  • With some hardware combinations, the PCM interrupts are acknowledged
    before the period boundary from the emu10k1 chip. The midlevel PCM code
    gets confused and the playback stream is interrupted.

    It seems that the interrupt processing shift by 2 samples is enough
    to fix this issue. This default value does not harm other,
    non-affected hardware.

    More information: Kernel bugzilla bug#16300

    [A copmile warning fixed by tiwai]

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

    Jaroslav Kysela
     

15 Aug, 2010

1 commit


08 Aug, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)
    ALSA: hda - Add pin-fix for HP dc5750
    ALSA: als4000: Fix potentially invalid DMA mode setup
    ALSA: als4000: enable burst mode
    ALSA: hda - Fix initial capsrc selection in patch_alc269()
    ASoC: TWL4030: Capture route runtime DAPM ordering fix
    ALSA: hda - Add PC-beep whitelist for an Intel board
    ALSA: hda - More relax for pending period handling
    ALSA: hda - Define AC_FMT_* constants
    ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs
    ALSA: hda - Add support for HDMI HBR passthrough
    ALSA: hda - Set Stream Type in Stream Format according to AES0
    ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed
    ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF
    ASoC: wm9081: fix resource reclaim in wm9081_register error path
    ASoC: wm8978: fix a memory leak if a wm8978_register fail
    ASoC: wm8974: fix a memory leak if another WM8974 is registered
    ASoC: wm8961: fix resource reclaim in wm8961_register error path
    ASoC: wm8955: fix resource reclaim in wm8955_register error path
    ASoC: wm8940: fix a memory leak if wm8940_register return error
    ASoC: wm8904: fix resource reclaim in wm8904_register error path
    ...

    Linus Torvalds
     

05 Aug, 2010

1 commit


02 Aug, 2010

1 commit


30 Jul, 2010

1 commit


29 Jul, 2010

2 commits

  • Platform parameter to enable automatic FIFO configuration when
    the codec is in Mode1 or Mode7 FIFO mode.
    When this mode is selected, the controls for changing
    nSample (in Mode1), and UTHR (in Mode7) are not added.
    The driver configures the FIFO configuration based on
    the stream's period size in a way, that every burst will
    read period size of data from the host.
    In Mode7 we need to use a formula, which gives close enough
    aproximation for the burst length from the host point
    of view.

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

    Peter Ujfalusi
     
  • Replace the hardwired latency definition with platform data
    parameter, and simplify the nSample parameter calculation.

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

    Peter Ujfalusi
     

19 Jul, 2010

1 commit

  • All current users of pm_qos_add_request() have the ability to supply
    the memory required by the pm_qos routines, so make them do this and
    eliminate the kmalloc() with pm_qos_add_request(). This has the
    double benefit of making the call never fail and allowing it to be
    called from atomic context.

    Signed-off-by: James Bottomley
    Signed-off-by: mark gross
    Signed-off-by: Rafael J. Wysocki

    James Bottomley
     

18 Jul, 2010

1 commit


13 Jul, 2010

2 commits


05 Jul, 2010

1 commit


28 Jun, 2010

1 commit

  • When using poll() to wait for the next period -- or avail_min samples --
    one gets a consistent delay for each system call that is usually just a
    little short of the selected period time. However, When using
    snd_pcm_read/write(), one gets a jittery delay that alternates between
    less than a millisecond and approximately two period times. This is
    caused by snd_pcm_lib_{read,write}1() transferring any available samples
    to the user's buffer and adjusting the application pointer prior to
    sleeping to the end of the current period. When the next period
    interrupt occurs, there is then less than avail_min samples remaining to
    be transferred in the period, so we end up sleeping until a second
    period occurs.

    This is solved by using runtime->twake as the number of samples needed
    for a wakeup in addition to selecting the proper wait queue to wake in
    snd_pcm_update_state(). This requires twake to be non-zero when used
    by snd_pcm_lib_{read,write}1() even if avail_min is zero.

    Signed-off-by: Dave Dillow
    Signed-off-by: Jaroslav Kysela

    David Dillow
     

25 Jun, 2010

1 commit


31 May, 2010

3 commits


21 May, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (250 commits)
    ALSA: hda: Storage class should be before const qualifier
    ASoC: tpa6130a2: Remove CPVSS and HPVdd supplies
    ASoC: tpa6130a2: Define output pins with SND_SOC_DAPM_OUTPUT
    ASoC: sdp4430 - add sdp4430 pcm ops to DAI.
    ASoC: TWL6040: Enable earphone path in codec
    ASoC: SDP4430: Add support for Earphone speaker
    ASoC: SDP4430: Add sdp4430 machine driver
    ASoC: tlv320dac33: Avoid powering off while in BIAS_OFF
    ASoC: tlv320dac33: Use dev_dbg in dac33_hard_power function
    ALSA: sound/pci/asihpi: Use kzalloc
    ALSA: hdmi - dont fail on extra nodes
    ALSA: intelhdmi - add id for the CougarPoint chipset
    ALSA: intelhdmi - user friendly codec name
    ALSA: intelhdmi - add dependency on SND_DYNAMIC_MINORS
    ALSA: asihpi: incorrect range check
    ALSA: asihpi: testing the wrong variable
    ALSA: es1688: add pedantic range checks
    ARM: McBSP: Add support for omap4 in McBSP driver
    ARM: McBSP: Fix request for irq in OMAP4
    OMAP: McBSP: Add 32-bit mode support
    ...

    Linus Torvalds
     

20 May, 2010

3 commits


17 May, 2010

1 commit


12 May, 2010

1 commit


11 May, 2010

2 commits

  • If the register for the volume needs invert, than the inversion
    need to be done from the chip maximum, and not from the platform
    dependent limit.
    Introduce soc_mixer_control.platform_max value, which initially
    equals to chip maximum.
    The snd_soc_limit_volume function only modify the platform_max,
    all volsw_info call returns this as well.
    The .max value holds the chip default (maximum), and it is used
    for the inversion, if it is needed.

    Additional check in the volsw_info call has been added to check
    the validity of the platform_max in case, when custom macros
    used by codec drivers are not initializing it correctly.

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

    Peter Ujfalusi
     
  • This patch changes the string based list management to a handle base
    implementation to help with the hot path use of pm-qos, it also renames
    much of the API to use "request" as opposed to "requirement" that was
    used in the initial implementation. I did this because request more
    accurately represents what it actually does.

    Also, I added a string based ABI for users wanting to use a string
    interface. So if the user writes 0xDDDDDDDD formatted hex it will be
    accepted by the interface. (someone asked me for it and I don't think
    it hurts anything.)

    This patch updates some documentation input I got from Randy.

    Signed-off-by: markgross
    Signed-off-by: Rafael J. Wysocki

    Mark Gross
     

10 May, 2010

5 commits

  • As well as allowing DAPM pins to be marked as ignoring suspend allow DAI
    links to be similarly marked. This is primarily intended for digital
    links between CODECs and non-CPU devices such as basebands in mobile
    phones and will suppress all suspend calls for the DAI link. It is
    likely that this will need to be revisited if used with devices which
    are part of the SoC CPU.

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

    Mark Brown
     
  • Some devices can usefully run audio while the Linux system is suspended.
    One of the most common examples is smartphone systems, which are normally
    designed to allow audio to be run between the baseband and the CODEC
    without passing through the CPU and so can suspend the CPU when on a
    voice call for additional power savings.

    Support such systems by providing an API snd_soc_dapm_ignore_suspend().
    This can be used to mark DAPM endpoints as not being sensitive to
    system suspend. When the system is being suspended paths between
    endpoints which are marked as ignoring suspend will be kept active.
    Both source and sink must be marked, and there must already be an
    active path between the two endpoints prior to suspend.

    When paths are active over suspend the bias management will hold the
    device bias in the ON state. This is used to avoid suspending the
    CODEC while it is still in use.

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

    Mark Brown
     
  • We now manage suspend within the main power analysis rather than by
    flipping the state of widgets.

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

    Mark Brown
     
  • The ESS ES968 chip is nothing more then a PnP companion
    for a non-PnP audio chip. It was paired with non-PnP ESS' chips:
    ES688 and ES1688. The ESS' audio chips are handled by the es1688
    driver in native mode. The PnP cards are handled by the ES968
    driver in SB compatible mode.

    Move the ES968 chip handling to the es1688 driver so the driver
    can handle both PnP and non-PnP cards. The es968 is removed.

    Also, a new PnP id is added for the card I acquired (the change
    was tested on this card).

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai

    Krzysztof Helt
     
  • Allocate the snd_es1688 during the snd_card allocation.
    This allows to remove the card pointer from the snd_es1688 structure.

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Takashi Iwai

    Krzysztof Helt
     

07 May, 2010

2 commits

  • This reverts commit 6f3991152f20933b77eff30413e893bf1a15e578.

    Since core has now support for limiting the volume on controls this
    patch is not needed. Furthermore, this patch actually prevents the core
    to set new volume on the TPA.

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

    Peter Ujfalusi
     
  • Add support for the core to limit the maximum volume on an
    existing control.
    The function will modify the soc_mixer_control.max value
    of the given control.
    The new value must be lower than the original one (chip maximum)

    If there is a need for limiting a gain on a given control,
    than machine drivers can do the following in their
    snd_soc_dai_link.init function:

    snd_soc_limit_volume(codec, "TPA6140A2 Headphone Playback Volume", 21);

    This will modify the original 31 (chip maximum) to 21, so user
    space will not be able to set the gain higher than this.

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

    Peter Ujfalusi
     

06 May, 2010

3 commits


30 Apr, 2010

1 commit

  • The WM9090 is a high performance low power audio subsystem, including
    headphone and class D speaker drivers.

    Note that this driver is a standalone CODEC driver and so is only
    immediately suitable for use with the WM9090 as a standalone sound card
    taking line inputs, or with a DAC with no software control. The pending
    ASoC multi-CODEC support will expand the range of systems that can use
    the driver, or system-specific adaptations can be made.

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

    Mark Brown
     

26 Apr, 2010

1 commit


17 Apr, 2010

1 commit

  • One of the features of the multi CODEC work is that it embeds a struct
    device in the CODEC to provide diagnostics via a sysfs class rather than
    via the device tree, at which point it's much better to use the struct
    device private data rather than having two places to store it. Provide
    an accessor function to allow this change to be made more easily, and
    update all the CODEC drivers are updated.

    To ensure use of the accessor the private data structure member is
    renamed, meaning that if code developed with older an older core that
    still uses private_data is merged it will fail to build.

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

    Mark Brown
     

16 Apr, 2010

1 commit