12 Jul, 2013

1 commit

  • Pull sound fixes from Takashi Iwai:
    "A few small fixes (and cleanups) for HD-audio, USB-audio and ASoC"

    * tag 'sound-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: usb-audio: fix regression for fixed stream quirk
    ALSA: hda - Keep halting ALC5505 DSP
    ASoC: wm8962: fix NULL pdata pointer
    ASoC: imx-sgtl5000: return E_PROBE_DEFER if ssi/codec not found
    ASoC: Samsung: Remove redundant comment
    ALSA: hda - Fix EAPD vmaster hook for AD1884 & co
    ASoC: samsung: Remove obsolete GPIO based DT pinmuxing
    ASoC: mxs: register saif mclk to clock framework

    Linus Torvalds
     

10 Jul, 2013

1 commit

  • Pull drm updates from Dave Airlie:
    "Okay this is the big one, I was stalled on the fbdev pull req as I
    stupidly let fbdev guys merge a patch I required to fix a warning with
    some patches I had, they ended up merging the patch from the wrong
    place, but the warning should be fixed. In future I'll just take the
    patch myself!

    Outside drm:

    There are some snd changes for the HDMI audio interactions on haswell,
    they've been acked for inclusion via my tree. This relies on the
    wound/wait tree from Ingo which is already merged.

    Major changes:

    AMD finally released the dynamic power management code for all their
    GPUs from r600->present day, this is great, off by default for now but
    also a huge amount of code, in fact it is most of this pull request.

    Since it landed there has been a lot of community testing and Alex has
    sent a lot of fixes for any bugs found so far. I suspect radeon might
    now be the biggest kernel driver ever :-P p.s. radeon.dpm=1 to enable
    dynamic powermanagement for anyone.

    New drivers:

    Renesas r-car display unit.

    Other highlights:

    - core: GEM CMA prime support, use new w/w mutexs for TTM
    reservations, cursor hotspot, doc updates
    - dvo chips: chrontel 7010B support
    - i915: Haswell (fbc, ips, vecs, watermarks, audio powerwell),
    Valleyview (enabled by default, rc6), lots of pll reworking, 30bpp
    support (this time for sure)
    - nouveau: async buffer object deletion, context/register init
    updates, kernel vp2 engine support, GF117 support, GK110 accel
    support (with external nvidia ucode), context cleanups.
    - exynos: memory leak fixes, Add S3C64XX SoC series support, device
    tree updates, common clock framework support,
    - qxl: cursor hotspot support, multi-monitor support, suspend/resume
    support
    - mgag200: hw cursor support, g200 mode limiting
    - shmobile: prime support
    - tegra: fixes mostly

    I've been banging on this quite a lot due to the size of it, and it
    seems to okay on everything I've tested it on."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (811 commits)
    drm/radeon/dpm: implement vblank_too_short callback for si
    drm/radeon/dpm: implement vblank_too_short callback for cayman
    drm/radeon/dpm: implement vblank_too_short callback for btc
    drm/radeon/dpm: implement vblank_too_short callback for evergreen
    drm/radeon/dpm: implement vblank_too_short callback for 7xx
    drm/radeon/dpm: add checks against vblank time
    drm/radeon/dpm: add helper to calculate vblank time
    drm/radeon: remove stray line in old pm code
    drm/radeon/dpm: fix display_gap programming on rv7xx
    drm/nvc0/gr: fix gpc firmware regression
    drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
    drm/radeon/dpm: implement force performance level for TN
    drm/radeon/dpm: implement force performance level for ON/LN
    drm/radeon/dpm: implement force performance level for SI
    drm/radeon/dpm: implement force performance level for cayman
    drm/radeon/dpm: implement force performance levels for 7xx/eg/btc
    drm/radeon/dpm: add infrastructure to force performance levels
    drm/radeon: fix surface setup on r1xx
    drm/radeon: add support for 3d perf states on older asics
    drm/radeon: set default clocks for SI when DPM is disabled
    ...

    Linus Torvalds
     

08 Jul, 2013

1 commit

  • ALC5505 DSP is enabled even though we don't use the features yet at
    all. This results in the unnecessarily high power consumption, more
    than 100mV higher. Until we implement the DSP support, better to
    bypass DSP for saving more power.

    Reported-by: Mengdong Lin
    [Patch modified by Mengdong to cal alc5505_dsp_init() with extra
    acl5505_dsp_halt().]

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

05 Jul, 2013

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "The usual stuff from trivial tree"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    treewide: relase -> release
    Documentation/cgroups/memory.txt: fix stat file documentation
    sysctl/net.txt: delete reference to obsolete 2.4.x kernel
    spinlock_api_smp.h: fix preprocessor comments
    treewide: Fix typo in printk
    doc: device tree: clarify stuff in usage-model.txt.
    open firmware: "/aliasas" -> "/aliases"
    md: bcache: Fixed a typo with the word 'arithmetic'
    irq/generic-chip: fix a few kernel-doc entries
    frv: Convert use of typedef ctl_table to struct ctl_table
    sgi: xpc: Convert use of typedef ctl_table to struct ctl_table
    doc: clk: Fix incorrect wording
    Documentation/arm/IXP4xx fix a typo
    Documentation/networking/ieee802154 fix a typo
    Documentation/DocBook/media/v4l fix a typo
    Documentation/video4linux/si476x.txt fix a typo
    Documentation/virtual/kvm/api.txt fix a typo
    Documentation/early-userspace/README fix a typo
    Documentation/video4linux/soc-camera.txt fix a typo
    lguest: fix CONFIG_PAE -> CONFIG_x86_PAE in comment
    ...

    Linus Torvalds
     

04 Jul, 2013

1 commit

  • ad1884_fixup_hp_eapd() tries to set the NID for controlling the
    speaker EAPD from the pin configuration. But the current code can't
    work expectedly since it sets spec->eapd_nid before calling the
    generic parser where the autocfg pins are set up.

    This patch changes the function to set spec->eapd_nid after the
    generic parser call while it sets vmaster hook unconditionally. The
    spec->eapd_nid check is moved in the hook function itself instead.

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

    Takashi Iwai
     

01 Jul, 2013

1 commit


28 Jun, 2013

7 commits

  • Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jiri Kosina

    Geert Uytterhoeven
     
  • The char arrays with size 44 are for the name string of
    snd_ctl_elem_id. Define the constant and replace the raw numbers with
    it for clarifying better.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • add_control_with_pfx() in hda_generic.c assumes a shorter name string
    for the control element, and this resulted in the truncation of the
    long but valid string like "Headphone Surround Switch" in the middle.

    This patch aligns the max size to the actual limit of snd_ctl_elem_id,
    44.

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

    Takashi Iwai
     
  • Add two more machines that need quirks for headset mics to work.

    Tested-by: Shawn Wang
    BugLink: https://bugs.launchpad.net/bugs/1195636
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • This quirk is needed for the headset mic to work on this Dell
    machine.

    BugLink: https://bugs.launchpad.net/bugs/1195597
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • This patch adds the power-saving control for ALC5505 DSP on some
    Realtek codecs.

    Signed-off-by: Kailang Yang
    Tested-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • …m-intel into drm-next

    Last 3.11 feature pull. I have a few odds bits and pieces and fixes in my
    queue, I'll sort them out later on to see what's for 3.11-fixes and what's
    for 3.12. But nothing to hold this here up imo.

    Highlights:
    - more hangcheck work from Mika and Chris to prepare for arb robustness
    - trickle feed fixes from Ville
    - first parts of the shared pch pll rework, with some basic hw state
    readout and cross-checking (this shuts up the confused pch pll refcount
    WARN that Linus just recently forwarded)
    - Haswell audio power well support from Wang Xingchao (alsa bits acked by
    Takashi)
    - some cleanups and asserts sprinkling around the plane/gamma enabling
    sequence from Ville
    - more gtt refactoring from Ben
    - clear up the adjusted->mode vs. pixel clock vs. port clock confusion
    - 30bpp support, this time for real hopefully

    * tag 'drm-intel-next-2013-06-18' of git://people.freedesktop.org/~danvet/drm-intel: (97 commits)
    drm/i915: remove a superflous semi-colon
    drm/i915: Kill useless "Enable panel fitter" comments
    drm/i915: Remove extra "ring" from error message
    drm/i915: simplify the reduced clock handling for pch plls
    drm/i915: stop killing pfit on i9xx
    drm/i915: explicitly set up PIPECONF (and gamma table) on haswell
    drm/i915: set up PIPECONF explicitly for i9xx/vlv platforms
    drm/i915: set up PIPECONF explicitly on ilk-ivb
    drm/i915: find guilty batch buffer on ring resets
    drm/i915: store ring hangcheck action
    drm/i915: add batch bo to i915_add_request()
    drm/i915: change i915_add_request to macro
    drm/i915: add i915_gem_context_get_hang_stats()
    drm/i915: add struct i915_ctx_hang_stats
    drm/i915: Try harder to disable trickle feed on VLV
    drm/i915: fix up pch pll enabling for pixel multipliers
    drm/i915: hw state readout and cross-checking for shared dplls
    drm/i915: WARN on lack of shared dpll
    drm/i915: split up intel_modeset_check_state
    drm/i915: extract readout_hw_state from setup_hw_state
    ...

    Conflicts:
    drivers/gpu/drm/i915/intel_display.c
    drivers/gpu/drm/i915/intel_fb.c
    drivers/gpu/drm/i915/intel_sdvo.c

    Dave Airlie
     

27 Jun, 2013

1 commit


25 Jun, 2013

7 commits

  • As some of ALC269 quirks use the inverted dmic feature, we need to
    call alc_inv_dmic_sync() in the resume callback like in alc_resume(),
    too.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The stac_resume() is exactly what the default resume code does, so
    we don't have to define and use it doubly. Let's cut it off.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Hdmi driver may not receive intrinsic event from gfx side when
    it's in runtime suspend mode. There's no ELD info when exit from
    runtime suspend. This patch avoid missing ELD info.

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

    Wang Xingchao
     
  • This patch is a cleanup to the previous patch "reset hda link during system/
    runtime suspend".

    In this patch
    - azx_enter_link_reset() and azx_exit_link_reset() are defined for entering and
    exiting the link reset respectively. azx_link_reset() is no longer used and
    replaced by azx_enter_link_reset().
    - azx_reset() reuses the above two new functions for a link reset cycle

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

    Mengdong Lin
     
  • Pin's connection list may change dynamically with hot-plug event
    on Intel Haswell chip. Users would see connections be "0" in codec#.
    when play audio on this pin, software driver choose converter from cache
    connections. So add "In-driver connection" info to avoid confuse when
    raw connections are different with cache connection.

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

    Wang Xingchao
     
  • We've got bug report wrt many machines with VT1708 (e.g. IBM POS
    machines) showing the broken auto-mute behavior. It turned out that
    the problem is that the pin control values of the speaker and line-out
    pins are completely ignored. As a workaround, let's use the newly
    introduced feature of the generic parser, to control the mute via amp
    on pins.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Add a new flag, auto_mute_via_amp, to determine the behavior of the
    headphone / line-out auto-mute. When this flag is set, the generic
    driver mutes the speaker and line outputs via the amp mute of each
    pin, instead of changing the pin control values.

    This is introduced for devices that don't work expectedly with the pin
    control values; for example, some devices are known to keep enabling
    the speaker outputs no matter which pin control values are set on the
    speaker pins.

    The driver doesn't check actually whether the pins have the output amp
    caps, but assumes that the proper mixer (mute) controls are created on
    all these pins. If not the case, you can't use this flag for your
    device.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

24 Jun, 2013

2 commits


20 Jun, 2013

1 commit


19 Jun, 2013

1 commit

  • Some VIA codecs like VT1708S have Mic boost amps in the mic pins but
    they aren't exposed in the capability bits. In the past driver code,
    we override the pin caps and create mic boost controls forcibly.
    While transition to the generic parser, we lost the mic boost controls
    although the pin caps are still overridden, because the generic parser
    code checks the widget caps, too.

    So this patch adds a new helper function to allow the override of the
    given widget capability bits, and makes VIA codecs driver to add the
    missing input-amp capability bit.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59861
    Cc: [v3.9+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

18 Jun, 2013

5 commits

  • ... instead of open codes.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • For Intel Haswell HDMI codecs, the pins choose converter 0 by default.
    This would cause conflict when playing audio on unused pins,the pin with
    physical device connected would get audio data too.
    i.e. Pin 0/1/2 default choose converter 0, pin 1 has HDMI monitor connected.
    when play audio on Pin 0 or pin 2, pin 1 could get audio data too.

    This patch configure unused pins to choose different converter.

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

    Wang Xingchao
     
  • When a selection to a converter MUX is changed in hdmi_pcm_open(), it
    should be cached so that the given connection can be restored properly
    at PM resume. We need just to replace the corresponding
    snd_hda_codec_write() call with snd_hda_codec_write_cache().

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Haswell converters maybe in wrong power state before usage.
    i.e. only converter 0 is in D0, converter 1/2 are in D3.
    When pin choose converter 1/2, there's no audio output, this
    cause dependency when playing differnt stream on pins.

    AUD_PWRST ConvertorA_Widget_Power_State_Current D0
    AUD_PWRST ConvertorA_Widget_Power_State_Requsted D0
    AUD_PWRST ConvertorB_Widget_Power_State_Current D3
    AUD_PWRST ConvertorB_Widget_Power_State_Requested D3
    AUD_PWRST ConvC_Widget_PwrSt_Curr D3
    AUD_PWRST ConvC_Widget_PwrSt_Req D3

    This patch check converter's power state and set D0 if it's in D3 mode.

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

    Wang Xingchao
     
  • The refactoring by commit 9040d102 introduced the new function
    snd_hda_check_power_state(). This function is supposed to return true
    if the state already reached to the target state, but it actually
    returns false for that. An utterly stupid typo while copy & paste.

    Fortunately this didn't influence on much behavior because powering up
    AFG usually powers up the child widgets, too. But the finer power
    control must have been broken by this bug.

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

    Takashi Iwai
     

17 Jun, 2013

5 commits

  • * for-linus:
    ALSA: hda - Add models for Dell headset jacks

    Takashi Iwai
     
  • These headset jacks keep coming in on more and more platforms, and
    it's possible I don't catch them all. Make it easier to test and
    verify by making models.

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

    David Henningsson
     
  • * for-linus: (635 commits)
    ALSA: usb-audio: Fix invalid volume resolution for Logitech HD Webcam c310
    ALSA: hda - Fix pin configurations for MacBook Air 4,2
    ALSA: usb-audio: work around Android accessory firmware bug
    ALSA: hda - Headset mic support for three more machines
    Linux 3.10-rc6
    smp.h: Use local_irq_{save,restore}() in !SMP version of on_each_cpu().
    powerpc: Fix missing/delayed calls to irq_work
    powerpc: Fix emulation of illegal instructions on PowerNV platform
    powerpc: Fix stack overflow crash in resume_kernel when ftracing
    snd_pcm_link(): fix a leak...
    use can_lookup() instead of direct checks of ->i_op->lookup
    move exit_task_namespaces() outside of exit_notify()
    fput: task_work_add() can fail if the caller has passed exit_task_work()
    xfs: don't shutdown log recovery on validation errors
    xfs: ensure btree root split sets blkno correctly
    xfs: fix implicit padding in directory and attr CRC formats
    xfs: don't emit v5 superblock warnings on write
    mei: me: clear interrupts on the resume path
    mei: nfc: fix nfc device freeing
    mei: init: Flush scheduled work before resetting the device
    ...

    Takashi Iwai
     
  • MacBook Air 4,2 requires the whole default pin configuration table to
    be overridden by the driver, as usual, as Apple's machines don't set
    up properly after boot. Otherwise mic won't work, and other ill
    effect may happen.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59381
    Reported-and-tested-by: Peter John Hartman
    Cc: [v3.9+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • They need these quirks to have headset mic support.

    BugLink: https://bugs.launchpad.net/bugs/1189363
    Tested-by: Shawn Wang
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     

06 Jun, 2013

5 commits

  • For Intel Haswell chip, HDA controller and codec have
    power well dependency from GPU side. This patch added support
    to request/release power well in audio driver. Power save
    feature should be enabled to get runtime power saving.

    There's deadlock when request_module(i915) in azx_probe.
    It looks like:
    device_lock(audio pci device) -> azx_probe -> module_request
    (or symbol_request) -> modprobe (userspace) -> i915 init ->
    drm_pci_init -> pci_register_driver -> bus_add_driver -> driver_attach ->
    which in turn tries all locks on pci bus, and when it tries the one on the
    audio device, it will deadlock.

    This patch introduce a work to store remaining probe stuff, and let
    request_module run in safe work context.

    Signed-off-by: Wang Xingchao
    Reviewed-by: Takashi Iwai
    Reviewed-by: Liam Girdwood
    Reviewed-by: David Henningsson
    Signed-off-by: Daniel Vetter

    Wang Xingchao
     
  • This is a preliminary work for the upcoming Haswell HDMI audio fixes.

    azx_first_init() function can be safely called after the f/w loader,
    since the f/w loader doesn't require the sound hardware initialization
    beforehand. Moving it into azx_probe_continue() cleans up the code
    flow a bit.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Daniel Vetter

    Takashi Iwai
     
  • The device can support runtime PM no matter whether it support
    signal wakeup or not. For some chips like Haswell which doesnot
    support PME by default, this patch let haswell Display HD-A controller
    enter runtime suspend, and bring more power saving whith power-well
    feature enabled.

    Signed-off-by: Wang Xingchao
    Reviewed-by: Takashi Iwai
    Reviewed-by: Rafael J. Wysocki
    Signed-off-by: Daniel Vetter

    Wang Xingchao
     
  • When a codec is powered off, some systems don't respond properly after
    D3 FG transition, while the driver still expects the response and
    tries to fall back to different modes (polling and single-cmd). When
    the fallback happens, the driver stays in that mode, and falling back
    to the single-cmd mode means it'll loose the unsol event handling,
    too.

    The unresponsiveness at D3 isn't too serious, thus this fallback is
    mostly superfluous. We can gracefully ignore the error there so that
    the driver keeps the normal operation mode.

    This patch adds a new bit flag for codec read/write, set in the power
    transition stage, which is notified to the controller driver via a new
    bus->no_response_fallback flag.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • snd_hda_codec_read(), snd_hda_codec_write() & co take the argument
    "direct" that indicates whether the given NID is a direct reference or
    an indirect reference. However, the indirect reference is practically
    unimplemented and never exists. And moreover, we don't need the
    indication of indirect reference at this high level, as NID can be
    represented in 16bit values at this point.

    Meanwhile, there are some cases where it'd be nice to give some
    operational options to these functions. So, we can reuse this
    argument as a new bit flag! Pretty frugal, eh?

    All callers so far pass zero to this argument, thus there is no
    behavior change by this replacement.

    The real usage of this new bit option will be added in the following
    patches.

    Signed-off-by: Takashi Iwai

    Takashi Iwai