12 Jul, 2010

2 commits

  • This moves the lock_kernel() call from soundcore_open
    to the individual OSS device drivers, where we can deal
    with it one driver at a time if needed, or just kill
    off the drivers.

    All core components in ALSA already provide
    adequate locking in their open()-functions
    and do not require the big kernel lock, so
    there is no need to add the BKL there.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Takashi Iwai

    Arnd Bergmann
     
  • As per-stream volume controls, the DXS controls are not intended to
    adjust the overall sound level and so are initialized every time
    a stream is opened. However, there are special situations where one
    wants to reduce the overall volume in the digital domain, i.e., before
    the AC'97 codec's PCM volume control. To allow this, add a module
    parameter that sets the initial DXS volume.

    Signed-off-by: Clemens Ladisch
    Tested-by: Soeren D. Schulze
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

09 Jul, 2010

1 commit

  • It is not advisable to print a warning when a device does not support
    setting the sample rate because this is perfectly valid for devices with
    a single rate or where rates are implicitly changed by selecting another
    alternate setting.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

06 Jul, 2010

7 commits


05 Jul, 2010

1 commit


28 Jun, 2010

3 commits

  • A few boards using this controller are reported to need a little extra
    time during their reset cycle.

    Reported-by: Michael Goeke
    Signed-off-by: Dave Dillow
    Signed-off-by: Jaroslav Kysela

    David Dillow
     
  • When using a timing voice to clock out periods during capture, the
    driver would slowly loose synchronization and never catch up, eventually
    reaching a point where it no longer generated interrupts. To avoid
    this situation, the virtual period clocking was changed to shorten the
    next timing period when our timing voice falls too far behind the
    capture voice. In addition, the first virtual period for the timing
    voice was slightly too short, causing the timing voice to initially be
    ahead of the capture voice.

    While tracking down this problem, I noticed that the expected sample
    offset was being incorrectly initialized, causing an overrun to be
    incorrectly reported when the timing voice happened to be perfectly
    synchronized.

    Reported-by: Hans Schou
    Signed-off-by: Dave Dillow
    Signed-off-by: Jaroslav Kysela

    David Dillow
     
  • 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
     

24 Jun, 2010

1 commit


23 Jun, 2010

7 commits


21 Jun, 2010

1 commit

  • Stanse found that in snd_usb_parse_audio_endpoints, there is a
    dangling pointer dereference. When snd_usb_parse_audio_format fails,
    fp is freed, and continue invoked. On the next loop, there is
    "fp && fp->altsetting == 1 && fp->channels == 1" test, but fp is set
    from the last iteration (but is bogus) and thus ilegally dereferenced.

    Set fp to NULL before "continue".

    Signed-off-by: Jiri Slaby
    Acked-by: Daniel Mack
    Signed-off-by: Takashi Iwai

    Jiri Slaby
     

17 Jun, 2010

2 commits


12 Jun, 2010

4 commits


08 Jun, 2010

2 commits


05 Jun, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda-intel - fix wallclk variable update and condition
    ALSA: asihpi - Fix uninitialized variable
    ALSA: hda: Use LPIB for ASUS M2V
    usb/gadget: Replace the old USB audio FU definitions in f_audio.c
    ASoC: MX31ads sound support should depend on MACH_MX31ADS_WM1133_EV1
    ASoC: Add missing Kconfig entry for Phytec boards
    ALSA: usb-audio: export UAC2 clock selectors as mixer controls
    ALSA: usb-audio: clean up find_audio_control_unit()
    ALSA: usb-audio: add UAC2 sepecific Feature Unit controls
    ALSA: usb-audio: unify constants from specification
    ALSA: usb-audio: parse clock topology of UAC2 devices
    ALSA: usb-audio: fix selector unit string index accessor
    include/linux/usb/audio-v2.h: add more UAC2 details
    ALSA: usb-audio: support partially write-protected UAC2 controls
    ALSA: usb-audio: UAC2: clean up parsing of bmaControls
    ALSA: hda: Use LPIB for another mainboard
    ALSA: hda: Use mb31 quirk for an iMac model
    ALSA: hda: Use LPIB for an ASUS device

    Linus Torvalds
     

02 Jun, 2010

8 commits