19 Dec, 2012

1 commit

  • Resuming a switcheroo'd HDA controller hangs since the completion
    is one-shot (thus works the first time). Fix by using completions
    that explictly need rearming, so remain fired before.

    Signed-off-by: Daniel J Blueman
    Signed-off-by: Takashi Iwai

    Daniel J Blueman
     

18 Dec, 2012

3 commits


14 Dec, 2012

1 commit

  • We've seen the broken HDMI *video* output on some machines with GM965,
    and the debugging session pointed that the culprit is the disabled
    audio output pins. Toggling these pins dynamically on demand caused
    flickering of HDMI TV.

    This patch changes the behavior to keep the pin ON constantly.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=51421

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Dec, 2012

1 commit


12 Dec, 2012

5 commits

  • The runtime_idle callback is the right place to check the suspend
    capability, but currently we do it wrongly in the runtime_suspend
    callback. This leads to a kernel error message like:
    pci_pm_runtime_suspend(): azx_runtime_suspend+0x0/0x50 [snd_hda_intel] returns -11
    and the runtime PM core would even repeat the attempts.

    Reported-and-tested-by: Borislav Petkov
    Cc: [v3.7]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Acer Aspire One 522 has the infamous digital mic unit that needs the
    phase inversion fixup for stereo.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=715737

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The HD-audio driver artificially calls the suspend and the resume code
    path in the VGA switcheroo state changes. When a machine goes to
    suspend, it tries to suspend the device again, and it stalls at
    snd_power_wait().

    This patch adds checks whether the devices were already in (forced)
    suspend in PM callbacks for avoiding the doubly suspend.

    Reported-by: Daniel J Blueman
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • When the HD-audio controller is disabled (e.g. via vga switcheroo) but
    the driver is still accessing it, it spews floods of "spurious
    response" kernel messages. It's because CORB/RIRB WP reads 0xff, and
    the driver tries to fill up until this number.

    This patch changes the CORB/RIRB WP reads to word instead of byte, and
    add the check of the read value. If it's 0xffff, the controller is
    supposed to be disabled, so the further action will be skipped.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Reducing the time on HDA link reset can help to reduce the driver loading
    time. So we replace msleep with usleep_range to get more accurate time
    control and change the value to a smaller one. And a 100ms timeout is set
    for both entering and exiting the link reset.

    Signed-off-by: Xingchao Wang
    Signed-off-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     

10 Dec, 2012

2 commits


07 Dec, 2012

3 commits


05 Dec, 2012

1 commit

  • When printing, use a prefix of the PCI domain, bus, device and function
    as in other drivers, to differentiate multiple devices.

    Important for reporting and debugging. A future step is to tidy this up with
    dev_printk et al.

    v2: Move conversion specifier into call site, preventing build issues
    v3: Refactor for Takashi's for-next branch

    Signed-off-by: Daniel J Blueman
    Signed-off-by: Takashi Iwai

    Daniel J Blueman
     

04 Dec, 2012

1 commit

  • The recent fix for vga switcheroo race in commit 128960a9 opened yet
    another race. At the time the audio driver starts probing, user may
    turn off D-GPU off. But at this moment, the audio driver still
    doesn't register the vga switcheroo client, thus the switching isn't
    notified. Then the hardware gets off out of sudden, resulting in
    invalid reads and lots of "spurious response" error messages.

    For solving this situation, the following changes have been done in
    this patch:
    - Move again vga switcheroo registration to the very early stage of
    the probing; this also requires to set pci drvdata properly before
    registration
    - Introduce the completion to synchronize the driver probe at vga
    switcheroo callbacks; this assures that the whole probing finished
    before executing the callbacks

    Reported-by: Daniel J Blueman
    Tested-by: Daniel J Blueman
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

03 Dec, 2012

2 commits

  • The current Realtek driver reconfigures the max PCM channels
    dynamically according to the value of Channel Mode enum if the
    multi-io retasking is available. It works fine for multi-io pins.
    But when multiple speaker pins are available, the channels of speakers
    also have to obey to the channel mode, which isn't nice.
    (That is, when you select "2ch" in Channel Mode so that the line-in
    and mic jack behave as input, you can't play surrounds properly from
    the built-in speaker.)

    This patch fixes the problem by taking the channel number for multiple
    speakers into account in the channel-mode setup code.
    Also it fixes the wrongly set up max_channels value in the case of
    multi-io extension.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • ASoC: Updates for v3.8

    Very quiet release for ASoC really:

    - Standardisation of the logging.
    - DT and dmaengine support for Atmel.
    - Support for Wolfson ADSP cores.
    - New drivers for Freescale/iVeia P1022 and Maxim MAX98090.

    Takashi Iwai
     

01 Dec, 2012

1 commit


30 Nov, 2012

3 commits


28 Nov, 2012

1 commit

  • This is a preliminary patch for introducing a protection to access
    races of snd_array instances. Call snd_array_init() appropriately
    at the initialization time and don't call it twice.

    Also the allocations of codec-spec structs are cleaned up by helper
    functions in patch_sigmatel.c and patch_analog.c.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

24 Nov, 2012

1 commit


23 Nov, 2012

6 commits


21 Nov, 2012

4 commits


20 Nov, 2012

4 commits

  • Merge the recent HD-audio codec change for fixing recursive suspend
    calls.

    Conflicts:
    sound/pci/hda/hda_codec.c

    Takashi Iwai
     
  • We've got a report that the runtime PM may make the codec the
    unresponsive on AMD platforms. Since the feature has been tested only
    on the recent Intel platforms, it's safer to limit the support to such
    devices for now.

    This patch adds a new DCAPS bit flag indicating the runtime PM
    support, and mark it for Intel controllers.

    Reported-and-tested-by: Julian Wollrath
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The Acer Aspire AO756 has an analog built-in mic on nid 0x1b and an
    external mic on nid 0x19. The BIOS doesn't set this up.

    The mic detect on this Acer Aspire netbook and Acer C7 ChromeBook is
    only valid when the headphone is plugged. The detect circuit relies on
    the tip detect switch being closed on the jack. Tell hda_jack to ignore
    the mic sense unless the headphones are plugged.

    Signed-off-by: Dylan Reid
    Signed-off-by: Takashi Iwai

    Dylan Reid
     
  • Introduce the concept of a "gated" jack. The gated jack's pin sense
    is
    only valid when the "gating" jack is plugged. This requires checking
    the gating jack when the gated jack changes and re-checking the gated
    jack when the gating jack is plugged/unplugged.

    This allows handling of devices where the mic jack detect floats when
    the headphone jack is unplugged.

    [Rewritten for fixing the possible snd_array reallocation, covering
    the missing callback calls and jack sync operations, as well as some
    code cleanups -- tiwai]

    Signed-off-by: Dylan Reid
    Signed-off-by: Takashi Iwai

    Dylan Reid