06 Nov, 2011

1 commit

  • If the device is unplugged while running, it is possible for a PCM
    device to be closed after the disconnect callback has returned. This
    means that kill_stream_urb() and disable_iso_interface() would try to
    access already-invalid or freed USB data structures.

    The function free_usb_related_resources() was intended to prevent this,
    but forgot to clear the affected variables.

    Reported-and-tested-by: Olivier Courtay
    Signed-off-by: Clemens Ladisch
    Cc: 2.6.33+
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

04 Nov, 2011

2 commits


03 Nov, 2011

3 commits


02 Nov, 2011

6 commits


01 Nov, 2011

3 commits


31 Oct, 2011

8 commits

  • Set `invert' bit for Capture Switch. Otherwise analogue is muted when
    Capture Switch is ON.

    Signed-off-by: Hong Xu
    Signed-off-by: Mark Brown
    Cc: stable@kernel.org

    Hong Xu
     
  • Current implementation in wm8711_set_dai_fmt always clear BIT[3:2]
    (the Input Audio Data Bit Length Select) of WM8711_IFACE(07h) register.
    Input Audio Data Bit Length Select bits are set by wm8711_hw_params,
    we should leave BIT[3:2] untouched in wm8711_set_dai_fmt.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown
    Cc: stable@kernel.org

    Axel Lin
     
  • The Input Audio Data Bit Length Select is controlled by BIT[3:2] of
    WM8711_IFACE(07h) register.
    Current code incorrectly masks BIT[1:0] which is for Audio Data Format Select.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown
    Cc: stable@kernel.org

    Axel Lin
     
  • v3: detection code is x86 and KVM specific, hide it under ifdef
    v2: add detection for virtual environments (KVM and Parallels)

    This patch is intended to improve performance in virtualized environments
    like Parallels Desktop or KVM/VirtualBox/QEMU (virtual ICH/AC97 audio).

    I/O access is very time-expensive operation in virtual world: VCPU
    can be rescheduled and in the worst case we get more than 10ms delay on
    each I/O access.

    In the virtual environment loop exit rule
    (old_civ == current_civ && old_picb == current_picb) is never satisfied,
    because old_picb is never the same as current_picb due to delay inspired
    by reading current_civ. As a result loop ended by timeout and we get 10x
    more I/O operations.

    Experimental data from Prallels Desktop 7, RHEL6 guest (I/O ops per
    second):

    Original code:
    In Port Counter Callback
    f014 41550 fffff00000179d00 ac97_bm_read_civ+0x000
    f018 41387 fffff0000017a580 ac97_bm_read_picb+0x000

    With patch:
    In Port Counter Callback
    f014 4090 fffff00000179d00 ac97_bm_read_civ+0x000
    f018 1964 fffff0000017a580 ac97_bm_read_picb+0x000

    Signed-off-by: Konstantin Ozerkov
    Signed-off-by: Denis V. Lunev
    Signed-off-by: Takashi Iwai

    Konstantin Ozerkov
     
  • From the Windows INF file, we know the firmware ranges for all RME
    cards. For PCIe, a single revision ID per device (RayDAT, MADI, AIO,
    AES) is used. Contrary, the older PCI versions use ranges, that is,
    one revision ID per firmware version.

    Instead of listing all possible revisions individually, match the range.

    This commit enables all MADI and AES PCI versions ever shipped.

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     
  • HDSP_VERSION_BIT has to be ORed with HDSP_S_LOAD. This fixes the detection
    of at least some RME RPM boxes.

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     
  • SNDRV_HDSPM_IOCTL_GET_STATUS is supposed to query the current card
    status, so we have to return what we receive on the MADI wire (RX), not
    what we transmit (TX) to others. The latter is a config item to be
    queried via SNDRV_HDSPM_IOCTL_GET_CONFIG.

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     
  • Smatch complains that if device is INT_MAX then device + 1 can
    overflow. It just means we would have an annoying loop while we
    check all the devices from -2147483648 to SNDRV_MINOR_HWDEPS.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

27 Oct, 2011

12 commits


26 Oct, 2011

2 commits


25 Oct, 2011

1 commit


24 Oct, 2011

1 commit

  • The revision 0x100300 was found for ALC662. It seems to work well
    with patch_alc662.

    Cc: stable@kernel.org
    BugLink: http://bugs.launchpad.net/bugs/877373
    Tested-by: Shengyao Xue
    Signed-off-by: David Henningsson
    Acked-by: Kailang Yang
    Signed-off-by: Takashi Iwai

    David Henningsson
     

22 Oct, 2011

1 commit

  • codec->hw_write is broken now, convert codec->hw_write to snd_soc_write.

    The hardware has 2 banks of registers sharing a section in I2C register space.
    The 1st bank is the primary one and is cached.
    The 2nd bank is for loading coefficients only and they do not need cache.
    These coefficients registers are therefore direct writes.
    Thus we set cache_bypass flag to deal with this before calling snd_soc_write.

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

    Axel Lin