27 Oct, 2011

7 commits

  • FIFO should be flushed before it is enabled for the first time
    This fixes the I/O errors reported by the ASoC core on a fresh boot

    Signed-off-by: Vaibhav Bedia

    Vaibhav Bedia
     
  • This patch adds the machine driver for AM335x EVM in conformance with the new
    ASoC framework.

    Signed-off-by: Hebbar, Gururaja

    Hebbar, Gururaja
     
  • AM33xx uses same McASP IP as the Davinci Platform. This patch adds
    config option to enable the McASP driver for AM335x (Kconfig & Makefile)

    Signed-off-by: Hebbar, Gururaja

    Hebbar, Gururaja
     
  • Few OMAP platform has a new Variant of McASP than those found on Davinci
    Platform.

    This patch adds support for the same.

    Changes
    - Add new MCASP_VERSION_3 to identify new IP
    - The FIFO offsets for the McASP in new platform are different from the
    ones seen on previous varianats. Use version member to identify and
    process accordingly

    This has been tested on DM365 platform to make sure nothing existing
    breaks

    Signed-off-by: Hebbar, Gururaja
    Signed-off-by: Vaibhav Hiremath

    Hebbar, Gururaja
     
  • parameters from isnt used anywhere. Hence removed

    Signed-off-by: Hebbar, Gururaja
    Signed-off-by: Vaibhav Hiremath

    Hebbar, Gururaja
     
  • Davinci McASP IP & its Driver is shared by few OMAP platforms. Moving the
    McASP ddefines to a common place, helps to share the same header file
    across platforms

    This patch moves asp.h from
    arch/arm/mach-davinci/include/mach/asp.h -> arch/arm/include/asm/hardware/asp.h

    Header define check is also updated to reflect hardware name rather than
    platform

    Signed-off-by: Hebbar, Gururaja
    Signed-off-by: Vaibhav Hiremath

    Hebbar, Gururaja
     
  • We have two SoCs using SRAM, both with their own allocation systems,
    and both with their own ways of copying functions into the SRAM.

    Let's unify this before we have additional SoCs re-implementing this
    obviously common functionality themselves.

    For this use the generic allocator and the newly introduce
    gen_pool_add_virt and gen_pool_virt_to_phys

    Uio_pruss should probably take the SRAM pool pointer via
    platform data so that it doesn't have to include Davinci specific
    includes.

    Signed-off-by: Russell King
    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: Sekhar Nori
    Cc: Kevin Hilman
    Cc: Tony Lindgren
    Cc: Sascha Hauer

    Signed-off-by: Hebbar, Gururaja

    Jean-Christophe PLAGNIOL-VILLARD
     

21 Oct, 2011

1 commit


18 Oct, 2011

2 commits

  • This is patch for Conexant codec of Intel HDA driver, adding new quirk
    for Lenovo Thinkpad T520 and W520. Conexant autodetection works fine for
    T520 (similar subsystem ID is used also in W520 model) and detects more
    mixer features compared to generic (fallback) Lenovo quirk with
    hardcoded options in Conexant codec.

    Patch was activelly tested with Linux 3.0.4, 3.0.6 and 3.0.7 without any
    problems.

    Signed-off-by: Daniel Suchy
    Cc: [3.0+]
    Signed-off-by: Takashi Iwai

    Daniel Suchy
     
  • The previous fix for the position-buffer check gives yet another
    regression on a Dell laptop. The safest fix right now is to add a
    static quirk for this device (and better to apply it for stable
    kernels too).

    Reported-by: Éric Piel
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

05 Oct, 2011

1 commit


03 Oct, 2011

3 commits


30 Sep, 2011

1 commit

  • The commit a810364a0424c297242c6c66071a42f7675a5568
    ALSA: hda - Handle -1 as invalid position, too
    caused a regression on some machines that require the position-buffer
    instead of LPIB, e.g. resulting in noises with mic recording with
    PulseAudio.

    This patch fixes the detection by delaying the test at the timing as
    same as 3.0, i.e. doing the position check only when requested in
    azx_position_ok().

    Reported-and-tested-by: Rocko Requin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

28 Sep, 2011

1 commit


27 Sep, 2011

1 commit

  • Currently the the internal oscillator is powered down when entering BIAS_OFF
    state, but not re-enabled when going back to BIAS_STANDBY. As a result the
    CODEC will stop working after suspend if the internal oscillator is used to
    generate the sysclock signal. This patch fixes it by clearing the appropriate
    bit in the power down register when the CODEC is re-enabled.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown
    Cc: stable@kernel.org

    Lars-Peter Clausen
     

26 Sep, 2011

3 commits

  • Before clearing the probing flag in the error exit path, check that the
    chip pointer is not NULL.

    Signed-off-by: Thomas Pfaff
    Cc: [2.6.39+]
    Signed-off-by: Takashi Iwai

    Thomas Pfaff
     
  • The spec->autocfg.line_out_pins[] may contain the same pins as hp_pins[]
    depending on the configuration. When they are identical, detecting the
    line_jack_present flag screws up the auto-mute because alc_line_automute()
    is called unconditionally at initialization while it won't be triggered
    by unsol events, thus the old line_jack_present flag is kept for the
    whole run.

    For fixing this buggy behavior, the driver needs to check whether the
    line-outs are really individual, and skip if same as headphone jacks.

    Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • When the headphone pin is assigned as primary output to line_out_pins[],
    the automatic HP-pin assignment by ASSID must be suppressed. Otherwise
    a wrong pin might be assigned to the headphone and breaks the auto-mute.

    Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

    Signed-off-by: Takashi Iwai
    Cc:

    Takashi Iwai
     

24 Sep, 2011

1 commit


23 Sep, 2011

3 commits

  • Takashi Iwai
     
  • The Terratec Aureon 5.1 USB sound card support is broken since kernel
    2.6.39.
    2.6.39 introduced power management support for USB sound cards that added
    a probing flag in struct snd_usb_audio.

    During the probe of the card it gives following error message :

    usb 7-2: new full speed USB device number 2 using uhci_hcd
    cannot find UAC_HEADER
    snd-usb-audio: probe of 7-2:1.3 failed with error -5
    input: USB Audio as
    /devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.3/input/input6
    generic-usb 0003:0CCD:0028.0001: input: USB HID v1.00 Device [USB Audio]
    on usb-0000:00:1d.1-2/input3

    I can not comment about that "cannot find UAC_HEADER" error, but until
    2.6.38 the card worked anyway.
    With 2.6.39 chip->probing remains 1 on error exit, and any later ioctl
    stops in snd_usb_autoresume with -ENODEV.

    Signed-off-by: Thomas Pfaff
    Cc: [2.6.39+]
    Signed-off-by: Takashi Iwai

    Thomas Pfaff
     
  • Attempt to change McBSP CLKS source while another stream is active is not
    safe after commit d135865 ("OMAP: McBSP: implement functional clock
    switching via clock framework") in 2.6.37.

    CLKS parent clock switching using clock framework have to idle the McBSP
    before switching and then activate it again. This short break can cause a
    DMA transaction error to already running stream which halts and recovers
    only by closing and restarting the stream.

    This goes more fatal after commit e2fa61d ("OMAP3: l3: Introduce
    l3-interconnect error handling driver") in 2.6.39 where l3 driver detects a
    severe timeout error and does BUG_ON().

    Fix this by not changing any configuration in omap_mcbsp_dai_set_dai_sysclk
    if the McBSP is already active. This test should have been here just from
    the beginning anyway.

    Signed-off-by: Jarkko Nikula
    Acked-by: Peter Ujfalusi
    Signed-off-by: Mark Brown
    Cc: stable@kernel.org

    Jarkko Nikula
     

22 Sep, 2011

2 commits

  • Commit 9676001559fce06e37c7dc230ab275f605556176
    ("ALSA: fm801: add error handling if auto-detect fails") seems to
    break systems that were previously working without a tuner.

    As a bonus, this should fix init and cleanup for the case where the
    tuner is explicitly disabled.

    Reported-and-tested-by: Hor Jiun Shyong
    References: http://bugs.debian.org/641946
    Signed-off-by: Ben Hutchings
    Cc: stable@kernel.org [v3.0+]
    Signed-off-by: Takashi Iwai

    Ben Hutchings
     
  • Commit 9676001559fce06e37c7dc230ab275f605556176
    ("ALSA: fm801: add error handling if auto-detect fails") added
    incorrect error handling.

    Once we have successfully called snd_device_new(), the cleanup
    function fm801_free() will automatically be called by snd_card_free()
    and we must *not* also call fm801_free() directly.

    Reported-by: Hor Jiun Shyong
    References: http://bugs.debian.org/641946
    Signed-off-by: Ben Hutchings
    Cc: stable@kernel.org [v3.0+]
    Signed-off-by: Takashi Iwai

    Ben Hutchings
     

21 Sep, 2011

1 commit

  • Commit 873bd4c (ASoC: Don't set invalid name string to snd_card->driver
    field) broke generation of a driver name for all ASoC cards relying on the
    automatic generation of one. Fix this by using the old default with spaces
    replaced by underscores.

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

    Mark Brown
     

20 Sep, 2011

2 commits


19 Sep, 2011

1 commit

  • When the system has only the headphone and the line-out jacks without
    speakers, the current auto-mute code doesn't work. It's because the
    spec->automute_lines flag is wrongly referred in update_speakers().
    This flag must be meaningless when spec->automute_hp_lo isn't set, thus
    they should be always coupled.

    The patch fixes the problem and add a comment to indicate the
    relationship briefly.

    BugLink: http://bugs.launchpad.net/bugs/851697

    Reported-by: David Henningsson
    Tested-By: Jayne Han
    Cc: stable@kernel.org (3.0)
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

16 Sep, 2011

1 commit


15 Sep, 2011

2 commits

  • wait_for_avail() in pcm_lib.c has a race in it (observed in practice by an
    Intel validation group).

    The function is supposed to return once space in the buffer has become
    available, or if some timeout happens. The entity that creates space (irq
    handler of sound driver and some such) will do a wake up on a waitqueue
    that this function registers for.

    However there are two races in the existing code

    1) If space became available between the caller noticing there was no
    space and this function actually sleeping, the wakeup is missed and the
    timeout condition will happen instead

    2) If a wakeup happened but not sufficient space became available, the
    code will loop again and wait for more space. However, if the second
    wake comes in prior to hitting the schedule_timeout_interruptible(), it
    will be missed, and potentially you'll wait out until the timeout
    happens.

    The fix consists of using more careful setting of the current state (so
    that if a wakeup happens in the main loop window, the schedule_timeout()
    falls through) and by checking for available space prior to going into the
    schedule_timeout() loop, but after being on the waitqueue and having the
    state set to interruptible.

    [tiwai: the following changes have been added to Arjan's original patch:
    - merged akpm's fix for waitqueue adding order into a single patch
    - reduction of duplicated code of avail check
    ]

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Andrew Morton
    Cc:
    Signed-off-by: Takashi Iwai

    Arjan van de Ven
     
  • Takashi Iwai
     

14 Sep, 2011

1 commit


13 Sep, 2011

1 commit


12 Sep, 2011

1 commit


06 Sep, 2011

2 commits


31 Aug, 2011

2 commits

  • Fixes the following warning:

    CC sound/soc/imx/imx-pcm-fiq.o
    sound/soc/imx/imx-pcm-fiq.c: In function 'imx_pcm_fiq_new':
    sound/soc/imx/imx-pcm-fiq.c:243: warning: unused variable 'card'
    CC sound/soc/imx/imx-pcm-dma-mx2.o

    Signed-off-by: Fabio Estevam
    Signed-off-by: Mark Brown

    Fabio Estevam
     
  • Currently the condition for these WARN_ONs is reversed and they are placed
    before the actual check whether we are going to write to that register. So if
    the codec implements the register_writable callback we'll get a warning for each
    writable register when syncing the register cache.

    While we are at it change the check to use snd_soc_codec_writable_register
    instead of open-coding it.

    Signed-off-by: Lars-Peter Clausen
    Acked-by: Liam Girdwood
    Signed-off-by: Mark Brown

    Lars-Peter Clausen