15 Dec, 2011

1 commit


13 Dec, 2011

1 commit


12 Dec, 2011

1 commit

  • For the Asus 1101HA, reporting position by reading the DMA position
    buffer map seems unstable and often wrong. The reporter says that
    position_fix=LPIB works much better (although not 100%, but this is
    probably due to other issues).

    The controller chip is an Intel Poulsbo 8086:811b (rev 07) controller,
    and complete alsa-info is available here:
    https://launchpadlibrarian.net/86691768/alsa-info.txt.1TNwyE5Ea7

    Cc: stable@kernel.org (3.0+)
    BugLink: http://bugs.launchpad.net/bugs/825709
    Tested-by: Stefano Lodi
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     

08 Dec, 2011

3 commits

  • When there are the same or more number of HP pins are available, HP pins
    are used as the primary outputs instead of the speaker pins. But, in
    some cases (especially with ALC663 & co), some DACs are available only
    with a later pin and it's assigned to a speaker, and since the driver
    parses the pins from the lower NID, such a DAC was skipped eventually
    without assignments. This resulted in a regression, the missing speaker
    volume control in the new parser.

    As a workaround for this, now the driver retries the pin->DAC mapping
    again after restoring the speaker-pins as primary. This is still an ad
    hoc fix, but it works so far for most of Realtek codecs.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • On systems with two speaker pins, the secondary speaker pin is mostly
    assigned to a bass speaker instead of a surround. Thus it makes more
    sense to rename the control properly.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The multiple headphone or speaker pins are usually provided to
    output the same stream unlike line-out jacks (which are supposed
    to be multi-channel surrounds). Thus giving a mixer name like
    "Headphone Surround" is rather confusing. Instead, when multiple
    headphone volumes are available, use index with the same "Headphone"
    name.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

06 Dec, 2011

3 commits


02 Dec, 2011

1 commit


01 Dec, 2011

1 commit

  • The verb command in stac92xx_post_suspend caused the audio to stop
    working after resuming from S3 mode on HP laptops with the VREF-pin
    mute-LED control. Removing relevant post_suspend registering.

    Although removing D3 on AFG is no optimal solution, the impact should
    be small in comparison with the broken S3/S4.

    Signed-off-by: Charles Chin
    Cc:
    Signed-off-by: Takashi Iwai

    Charles Chin
     

29 Nov, 2011

2 commits

  • This quirk sould be reverted. It has the following probems:

    1) The quirk was intended to "ASUS MV2-MX SE" motherboards only, but the
    ID used matches a much broader range, potentially all boards containing a
    VIA chipset model in the family of vendor VIA 0x1106 and audio device ID
    0x3288, which encompasses VIA-VT82xx, VIA-VT1xx and VIA-VT20xx chipsets.

    2) VIA chipsets rely on azx_via_get_position() to handle correctly dma
    transfers during capture. Using POS_FIX_LPIB instead of POS_FIX_VIACOMBO
    leads to partially corrupted input buffers during capture. The effects
    of this bug are not immediately visible, it took strong DSP expertise,
    some expensive signal generator and a spectrum analyzer to identify it
    and verify correct behaviour using original default.

    3) It's almost certain that the quirk did not fix the real problem,
    if there was one. Refer to original submission:
    http://mailman.alsa-project.org/pipermail/alsa-devel/2010-February/025109.html

    Signed-of-by: Marc Vertes
    Signed-off-by: Takashi Iwai

    Marc Vertes
     
  • Some HP laptops use a pin VREF for controlling the mute LED, and such a
    pin shouldn't be powered off.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

28 Nov, 2011

2 commits

  • VT1708 has no support for unsolicited events per jack-plug, the driver
    implements the workq for polling the jack-detection. The mixer element
    "Jack Detect" was supposed to control this behavior on/off, but this
    doesn't work properly as is now. The workq is always started and the
    HP automute is always enabled.

    This patch fixes the jack-detect control behavior by triggering / stopping
    the work appropriately at the state change. Also the work checks the
    internal state to continue scheduling or not.

    Cc: [v3.1]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The CS420X_IMAC27 was copied from the line before but CS420X_APPLE
    was clearly intented.

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

    Dan Carpenter
     

23 Nov, 2011

4 commits

  • Use an inline function for the common pattern for assigning a capsrc.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • When the imux entries are rebuilt in alc_rebuild_imux_for_auto_mic(),
    the initialization of index field is missing. It may work without it
    casually when the original imux was created by the auto-parser, but
    it's definitely broken in the case of static configs where no imux was
    parsed beforehand. Because of this, the auto-mic switching doesn't
    work properly on some model options.

    This patch adds the missing initialization of index field.

    Reported-by: Dmitry Nezhevenko
    Cc: [v3.1]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The PCI SSID 8086:7270 is commonly used for multiple Apple machines,
    thus we can't use it as identifier for a unique model. Because of this
    conflict, some machines show weird behavior. For example, MacBook Air
    shows Front and Surround speakers although only Surround works due to
    the wrongly overridden pin-configuration for imac27.

    This patch fixes two things:
    - Stop the wrong pin-config override of imac27 by removing PCI SSID
    entry for avoiding the wrong mappings,
    - Add the generic GPIO setup for Apple machines by checking the codec
    SSID vendor bits

    Tested-by: Linus Torvalds
    Tested-by: Dirk Hohndel
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • In snd_hda_check_board_codec_sid_config(), not only comparing with the
    exact value but allow the bit-mask comparison for vendor-only, etc.

    Tested-by: Linus Torvalds
    Tested-by: Dirk Hohndel
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

22 Nov, 2011

2 commits


19 Nov, 2011

1 commit


17 Nov, 2011

1 commit

  • spec->cur_adc isn't set until cs_capture_pcm_prepare() is called although
    the driver tries to select the connection at init time and at auto-mic
    switch. This results in the access to the widget NID 0, which is
    obviously invalid, also a wrong capture source.

    This patch fixes the issue by issuing the connect-select verb conditionally
    at appropriate places.

    Reported-and-tested-by: Dylan Reid
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

16 Nov, 2011

3 commits

  • It looks more natural and saves two lines of code.

    Signed-off-by: Wu Fengguang
    Signed-off-by: Takashi Iwai

    Wu Fengguang
     
  • The Intel HDMI chips (ironlake at least) are found to have ~250ms delay
    between the ELD_Valid=1 hotplug event is send and the ELD buffer becomes
    actually readable. During the time the ELD buffer is mysteriously all 0.

    Fix it by scheduling a delayed work to re-read ELD buffer after 300ms.

    Signed-off-by: Wu Fengguang
    Signed-off-by: Takashi Iwai

    Wu Fengguang
     
  • memset(eld) clears eld->proc_entry which will leak the struct
    snd_info_entry when unloading module.

    Fix it by
    - memset only the fields before eld->eld_buffer
    - set eld->eld_valid to true _after_ all eld fields have been filled

    Cc:
    Cc: Pierre-louis Bossart
    Acked-by: Stephen Warren
    Signed-off-by: Wu Fengguang
    Signed-off-by: Takashi Iwai

    Wu Fengguang
     

14 Nov, 2011

1 commit


11 Nov, 2011

1 commit

  • Clean up and fix pwr_nids for 92HD71 / 73 / 83 family codecs; remove
    pwr_mapping which was incorrect.

    The original pwr_nids support of 92HD83xxx was incorrect and never
    actually worked before. Now we should have things working correctly
    without having to hack by DID anymore.

    It is also not necessary to explicitly turn on all the pins near the
    beginning of patch_stac92hd83xxx() now, the pins will go though
    initialization properly.

    Tested on 92HD66 / 71 / 73 / 75 / 83 / 89 / 91 demo boards.

    Signed-off-by: Charles Chin
    Signed-off-by: Takashi Iwai

    Charles Chin
     

10 Nov, 2011

2 commits

  • We disabled the check of NO_PRESENCE bit of the default pin-config
    in commit f4419172 temporarily. One problem was that the first
    implementation was wrong -- the bit after the shift must be checked.
    However, this would still give many regressions on machines with broken
    BIOS. They set this bit wrongly even on active pins.

    A workaround is to check whether all pins contain this bit. As far as
    I've checked, broken BIOSen set this bit on all pins, no matter whether
    active or not. In such a case, the driver should ignore this bit check.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • When a virtual mater control is created, the driver looks for slave
    elements from the assigned card instance. But this may include the
    elements of other codecs when multiple codecs are on the same HD-audio
    bus. This works at the first time, but it'll give Oops when it's once
    freed and re-created via reconfig sysfs.

    This patch changes the element-look-up strategy to limit only to the
    mixer elements of the same codec.

    Reported-by: David Henningsson
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Nov, 2011

2 commits


08 Nov, 2011

1 commit

  • When a Realtek codec has a matrix-style capture-source selection, we
    need to scan all connections instead of only imux items. Otherwise some
    input might be kept unmuted. Although the corresponding input must be
    dead so there should be no input from it, it's still safer to mute the
    route completely.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

06 Nov, 2011

3 commits

  • The implementation on commit [08a1f5eb: ALSA: hda - Check NO_PRESENCE
    pincfg default bit] seems like a mis-interpretation of specification.
    The spec gives the reversed bit definition. But, following the spec
    also causes to change so many existing device configurations, thus we
    can't change it so easily for now. For 3.2-rc1, it's safer to revert
    this check (actually this patch comments out the code).

    We may re-introduced the fixed version once after the wider test-case
    coverages are done.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The regression-fix in 3.1 for the check of DMA-position validity caused
    yet another regression for CA0110. As usual, this hardware seems working
    only with LPIB properly. Adding the appropriate driver-caps bit to force
    LPIB fixes the problem.

    Reported-and-tested-by: Andres Freund
    Cc: [v3.1]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The 3.1 kernel has a regression for ALC861 codec where no sound output
    is heard with the default setup. It's because the amps in DACs aren't
    properly unmuted while the output mixers are assigned only to pins.

    This patch fixes the missing initialization of DACs when no mixer is
    assigned to them.

    Tested-by: Andrea Iob
    Cc: [v3.1+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

04 Nov, 2011

1 commit

  • Some BIOS report invalid pins as digital output pins. The driver checks
    the connection but it doesn't do it fully correctly, and it leaves some
    undefined value as the audio-out widget, which makes the driver spewing
    warnings. This patch fixes the issue.

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

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

03 Nov, 2011

2 commits