30 Sep, 2013

3 commits


27 Sep, 2013

9 commits


26 Sep, 2013

4 commits

  • This patch avoids to dereference the uninitialized data pointer if the
    error path is entered before devm_kzalloc is called (or if the allocation
    fails). It fixes the following warning:

    sound/soc/fsl/imx-sgtl5000.c: In function 'imx_sgtl5000_probe':
    sound/soc/fsl/imx-sgtl5000.c:175:18: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]

    Signed-off-by: Philipp Zabel
    Signed-off-by: Mark Brown

    Philipp Zabel
     
  • Calling devm_clk_get with any device pointer other than our own confuses
    devres. Use clk_get instead. This avoids hitting the following warning in
    the imx-sgtl5000 error path:

    imx-sgtl5000 sound.12: snd_soc_register_card failed (-517)
    platform sound.12: Driver imx-sgtl5000 requests probe deferral
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 75 at drivers/base/dd.c:272 driver_probe_device+0x194/0x218()
    Modules linked in: snd_soc_sgtl5000(+) snd_soc_imx_sgtl5000 coda snd_soc_imx_audmux imx_sdma snd_soc_fsl_spdif snd_soc_fsl_ssi
    CPU: 0 PID: 75 Comm: udevd Not tainted 3.11.0-rc6+ #4682
    Backtrace:
    [] (dump_backtrace+0x0/0x10c) from [] (show_stack+0x18/0x1c)
    r6:00000110 r5:00000009 r4:00000000 r3:00000000
    [] (show_stack+0x0/0x1c) from [] (dump_stack+0x20/0x28)
    [] (dump_stack+0x0/0x28) from [] (warn_slowpath_common+0x6c/0x8c)
    [] (warn_slowpath_common+0x0/0x8c) from [] (warn_slowpath_null+0x24/0x2c)
    r8:7f032000 r7:7f02f93c r6:cf8eaa54 r5:cf8eaa20 r4:80728a0c
    [] (warn_slowpath_null+0x0/0x2c) from [] (driver_probe_device+0x194/0x218)
    [] (driver_probe_device+0x0/0x218) from [] (__driver_attach+0x94/0x98)
    r7:00000000 r6:cf8eaa54 r5:7f02f93c r4:cf8eaa20
    [] (__driver_attach+0x0/0x98) from [] (bus_for_each_dev+0x5c/0x90)
    r6:80286c60 r5:7f02f93c r4:00000000 r3:cf8ef03c
    [] (bus_for_each_dev+0x0/0x90) from [] (driver_attach+0x24/0x28)
    r6:806d0424 r5:cf16a580 r4:7f02f93c
    [] (driver_attach+0x0/0x28) from [] (bus_add_driver+0xdc/0x234)
    [] (bus_add_driver+0x0/0x234) from [] (driver_register+0x80/0x154)
    r8:7f032000 r7:00000001 r6:7f02fa68 r5:7f02fa74 r4:7f02f93c
    [] (driver_register+0x0/0x154) from [] (i2c_register_driver+0x34/0xbc)
    [] (i2c_register_driver+0x0/0xbc) from [] (sgtl5000_i2c_driver_init+0x18/0x24 [snd_soc_sgtl5000])
    r5:7f02fa74 r4:cfb7ff48
    [] (sgtl5000_i2c_driver_init+0x0/0x24 [snd_soc_sgtl5000]) from [] (do_one_initcall+0xf4/0x150)
    [] (do_one_initcall+0x0/0x150) from [] (load_module+0x174c/0x1db4)
    [] (load_module+0x0/0x1db4) from [] (SyS_init_module+0xe0/0xf4)
    [] (SyS_init_module+0x0/0xf4) from [] (ret_fast_syscall+0x0/0x30)
    r6:00005b22 r5:00afed68 r4:00000000
    ---[ end trace b24c5c3bb145dbdd ]---

    Signed-off-by: Philipp Zabel
    Acked-by: Shawn Guo
    Reviewed-by: Fabio Estevam
    Signed-off-by: Mark Brown

    Philipp Zabel
     
  • BIOS can mark a pin as "no physical connection" if the port is used by an
    integrated display which is not audio capable. And audio driver will overlook
    such pins.

    On Haswell, such a disconneted pin will keep muted and connected to the 1st
    converter by default. But if the 1st convertor is assigned to a connected pin
    for audio streaming. The muted disconnected pin can make the connected pin
    no sound output.

    So this patch avoids using assigned converters for all unused pins for Haswell,
    including the disconected pins.

    Signed-off-by: Mengdong Lin
    Reviewed-by: David Henningsson
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     
  • Currently we assume that userspace will shut down the compressed stream
    correctly. However, if userspcae dies (e.g. cplay & ctrl-C) we dont
    stop the stream before freeing it.

    This now checks that the stream is stopped before freeing.

    Signed-off-by: Liam Girdwood
    Signed-off-by: Takashi Iwai

    Liam Girdwood
     

20 Sep, 2013

1 commit


17 Sep, 2013

1 commit


14 Sep, 2013

4 commits


13 Sep, 2013

1 commit


12 Sep, 2013

1 commit

  • Pull sound fixes from Takashi Iwai:
    "A few last-minute fixes for 3.12-rc1. All patches are driver
    specific.

    - HD-audio fixes: MacBook 6,1/6,2 speaker fix, ASUS TX300 dock
    speaker fix, Toshiba Satellite irq fix, Haswell HDMI audio
    cleanups)

    - ASoC fixes: atmel irq fix, fsl DT fix, mc13783 spi fix, kirkwood
    compatible string change, etc"

    * tag 'sound-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ASoC: mc13783: add spi errata fix
    ASoC: rsnd: fixup flag name of rsnd_scu_platform_info
    ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2
    ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist
    ASoC: fsl_spdif: Select regmap-mmio
    ALSA: hda - unmute pin amplifier in infoframe setup for Haswell
    ALSA: hda - define is_haswell() to check if a display audio codec is Haswell
    ALSA: hda - Add dock speaker support for ASUS TX300
    ASoC: kirkwood: change the compatible string of the kirkwood-i2s driver
    ASoC: atmel: disable error interrupt
    ASoC: fsl: imx-audmux: Do not call imx_audmux_parse_dt_defaults() on non-dt kernel

    Linus Torvalds
     

11 Sep, 2013

7 commits


09 Sep, 2013

4 commits

  • it should be *USE*, not *USB*

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Mark Brown

    Kuninori Morimoto
     
  • MacBook 6,1 and 6,2 have a CS4208 codec instead of CS4206/CS4207 on
    the former models. Most of functions work fine as is, except for the
    silent speaker output. After debugging sessions, it turned out that
    the machine needs to set GPIO 0 for the speaker amp.

    This patch adds the basic support for CS4208 and the fixup for these
    MacBooks. Basically the codec works just with the generic parser.
    For re-using the existing GPIO amp code and init/free callbacks, a few
    places have been changed so that CS4206/4207-specific codes (errata,
    etc) won't hit with CS4208.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=60811
    Reported-and-tested-by: Imre Kaloz
    Reported-and-tested-by: Ian Munsie
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Toshiba Satellite C870 shows interrupt problems occasionally when
    certain mixer controls like "Mic Switch" is toggled. This seems
    worked around by not using MSI.

    Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=833585
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The S/PDIF driver needs regmap so select it to make sure it gets
    included in the build.

    Reported-by: Fengguang Wu
    Acked-by: Nicolin Chen
    Signed-off-by: Mark Brown

    Mark Brown
     

07 Sep, 2013

3 commits

  • Pull trivial tree from Jiri Kosina:
    "The usual trivial updates all over the tree -- mostly typo fixes and
    documentation updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
    doc: Documentation/cputopology.txt fix typo
    treewide: Convert retrun typos to return
    Fix comment typo for init_cma_reserved_pageblock
    Documentation/trace: Correcting and extending tracepoint documentation
    mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
    power: Documentation: Update s2ram link
    doc: fix a typo in Documentation/00-INDEX
    Documentation/printk-formats.txt: No casts needed for u64/s64
    doc: Fix typo "is is" in Documentations
    treewide: Fix printks with 0x%#
    zram: doc fixes
    Documentation/kmemcheck: update kmemcheck documentation
    doc: documentation/hwspinlock.txt fix typo
    PM / Hibernate: add section for resume options
    doc: filesystems : Fix typo in Documentations/filesystems
    scsi/megaraid fixed several typos in comments
    ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
    treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
    page_isolation: Fix a comment typo in test_pages_isolated()
    doc: fix a typo about irq affinity
    ...

    Linus Torvalds
     
  • When Gfx driver reconnects a port and transcoder, the pin amplifier will
    be muted. To enable sound, the pin amp need to be unmuted.

    This patch
    - moves pin amp unmuting from stream preparing to hdmi_setup_audio_infoframe().
    So if port:transcoder reconnection happens during stream playback, the ELDV
    unsol event can stil trigger pin's amp unmuting when re-setting up audio
    info frame.

    - remove reading pin amp status before unmuting for speed-up, since pin amp
    should always be unmuted.

    - rename haswell_verify_pin_D0() to haswell_verify_D0(), since the convertor
    power state is also fixed here.

    This patch is mostly based on suggestion of David Henningsson.

    Cc: David Henningsson
    Signed-off-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     
  • To apply Haswell specific fixings, this patch defines is_haswell() to check
    whether a display audio codec is Haswell, to avoid explicitly checking Haswell
    vendor ID everywhere.

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

    Mengdong Lin
     

06 Sep, 2013

2 commits

  • ASUS TX300 has a built-in speaker in the tablet part and in the dock
    part, and the tablet speaker is supposed to be unused while the
    machine is docked. The current HD-audio driver, however, doesn't
    support the dock speaker, partly because BIOS doesn't set up the pin
    for the corresponding output.

    But, not only the missing pin config, also the missing unsol event
    handling is another issue. Otherwise the automatic switching via
    dock/undock won't work.

    Through debugging sessions, we found out that the dock speaker pin is
    NID 0x1b, and it generates an unsol event at docking/undocking, the
    docking state can be inquired via the normal pin detection verb.
    Also, it's turned out that GPIO 2 is needed as an amp. So, all
    materials are ready to cook.

    This patch provides the basic dock speaker support with TX300:
    - The dock speaker is turned on/off via "Dock Speaker" mixer mute.
    - The dock speaker is automatically muted when docked. This is
    independently from the mixer mute switch, just like the headphone
    auto-mute function.

    The implementation is a bit tricky. Since we want to handle it as a
    secondary speaker, we set it up a pin as a speaker with a jack
    detection. Then, the fixup function registers the own unsol callback
    for this pin because the standard automute can't handle the thing like
    a "speaker jack". In the own automute hook, we apply the mute of the
    tablet speaker in addition by checking the dock state.

    Also, the speaker control names are slightly shuffled because the
    generic parser doesn't give good names but blindly assumes a bass
    speaker as a secondary speaker.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=59791
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The compatible string of the kirkwood-i2s driver was chosen as
    "marvell,mvebu-audio". Using such a compatible string is not a good
    idea, since "mvebu" is the name of a large family of SOCs, in which
    new, unknown SOCs will be coming in the future. It is therefore
    impossible to know what will be evolutions of this hardware block in
    the next generations of the SOCs. For this reason, the recommandation
    for compatible strings of on-SOCs devices has always been to use the
    name of the oldest SOC that has the hardware block. New SOCs that have
    an exactly compatible hardware block can reference it using the same
    compatible string. See [1], [2] and [3] for various cases were this
    suggestion was made, including from Rob Herring, a Device Tree binding
    maintainer.

    As an example, there are already small differences between current
    generations:

    * On Kirkwood, only one interrupt is used for audio.
    * On Dove, two interrupts are used, one for audio data and one for
    error reporting.

    In the near future, I'll be adding audio support to Armada 370, which
    allows has the same hardware block (but maybe with minor variants).

    Therefore, this patch changes the driver to accept
    "marvell,kirkwood-audio" and "marvell,dove-audio" as compatible
    strings instead of the too-generic "marvell,mvebu-audio". The reason
    for the two different compatible strings is the difference in the
    number of interrupts used by the two SOCs for audio.

    This Device Tree binding has never been part of a Linux kernel stable
    release so far, so it can be changed now without breaking backward
    compatibility.

    [1] http://lists.infradead.org/pipermail/linux-mtd/2012-March/040417.html
    [2] http://lists.infradead.org/pipermail/linux-arm-kernel/2013-April/161065.html
    [3] http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/087702.html

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Mark Brown

    Thomas Petazzoni