28 Jan, 2015

2 commits

  • commit 678fa12fb8e75c6dc1e781a02e3ddbbba7e1a904 upstream.

    The au0828 quirks table is currently not in sync with the au0828
    media driver.

    Syncronize it and put them on the same order as found at au0828
    driver, as all the au0828 devices with analog TV need the
    same quirks.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     
  • commit 5d1f00a20d2d56ed480e64e938a2391353ee565b upstream.

    Add a macro to simplify au0828 quirk table. That makes easier
    to check it against the USB IDs at drivers/media/usb/au0828/au0828-cards.c.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     

16 Jan, 2015

15 commits

  • commit 60834b73a9c2bbc2f514122ddc626f3350fb40cd upstream.

    Vendor ID 0x10de0072 is used by a yet-to-be-named GPU chip.

    Signed-off-by: Aaron Plattner
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Aaron Plattner
     
  • commit c507de88f6a336bd7296c9ec0073b2d4af8b4f5e upstream.

    stac_store_hints() does utterly wrong for masking the values for
    gpio_dir and gpio_data, likely due to copy&paste errors. Fortunately,
    this feature is used very rarely, so the impact must be really small.

    Reported-by: Rasmus Villemoes
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit 49cdd5b641933fda6324fc901eaf856924ba6a27 upstream.

    Commit 897c329bc ("ALSA: usb: caiaq: check for cdev->n_streams > 1")
    introduced a safety check to protect against bogus data provided by
    devices. However, the n_streams variable is already divided by
    CHANNELS_PER_STREAM, so the correct check is 'n_streams > 0'.

    Fix this to un-break support for stereo devices.

    Signed-off-by: Daniel Mack
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Daniel Mack
     
  • commit 92cb46584e104e2f4b14a44959109ffe13524a26 upstream.

    Although the 't->length' is a big-endian value, it's used without any
    conversion. This means that the driver always uses 'length' parameter.

    Fixes: 555e8a8f7f14("ALSA: fireworks: Add command/response functionality into hwdep interface")
    Reported-by: Clemens Ladisch
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Sakamoto
     
  • commit 69eba10e606a80665f8573221fec589430d9d1cb upstream.

    In olden times the snd_hda_param_read() function always set "*start_id"
    but in 2007 we introduced a new return and it causes uninitialized data
    bugs in a couple of the callers: print_codec_info() and
    hdmi_parse_codec().

    Fixes: e8a7f136f5ed ('[ALSA] hda-intel - Improve HD-audio codec probing robustness')
    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Dan Carpenter
     
  • commit 8b72415d8aa8bb1904c61926bd0701447ce44bee upstream.

    New Dell desktop needs to support headset mode for ALC3234.

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     
  • commit 4344aec84bd84b58a01347f0db7693f73fb6473d upstream.

    Add new support for ALC256 codec.

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     
  • commit 506b62c33a7444b91a93bf2da772f4c7e6656410 upstream.

    Add new support for ALC298 codec.

    Signed-off-by: Kailang Yang
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Kailang Yang
     
  • commit d70a1b9893f820fdbcdffac408c909c50f2e6b43 upstream.

    The Arcam rPAC seems to have the same problem - whenever anything
    (alsamixer, udevd, 3.9+ kernel from 60af3d037eb8c, ..) attempts to
    access mixer / control interface of the card, the firmware "locks up"
    the entire device, resulting in
    SNDRV_PCM_IOCTL_HW_PARAMS failed (-5): Input/output error
    from alsa-lib.

    Other operating systems can somehow read the mixer (there seems to be
    playback volume/mute), but any manipulation is ignored by the device
    (which has hardware volume controls).

    Signed-off-by: Jiri Jaburek
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Jiri Jaburek
     
  • commit 3475c3d034d7f276a474c8bd53f44b48c8bf669d upstream.

    Flush the FIFOs when the stream is prepared for use. This avoids
    an inadvertent swapping of the left/right channels if the FIFOs are
    not empty at startup.

    Signed-off-by: Andrew Jackson
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Andrew Jackson
     
  • commit 681a19560378213a193c424881b2180a783b81ae upstream.

    When the codec is connected using i2c, it will only auto-increment
    register addresses if msb (0x80) of the register address byte is set.

    [Fixes cache sync if multiple adjacent registers are updated -- broonie]

    Signed-off-by: Peter Rosin
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Peter Rosin
     
  • commit bbc686b34650b0f54affe9d9a637ccbe02b03760 upstream.

    Fix off by one read beyond the end of a table.

    Reported-by: David Binderman
    Signed-off-by: Jyri Sarha
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Jyri Sarha
     
  • commit 48826ee590da03e9882922edf96d8d27bdfe9552 upstream.

    Commit 5fe5b767dc6f ("ASoC: dapm: Do not pretend to support controls for non
    mixer/mux widgets") revealed ill-defined control in a route between
    "STENL Mux" and DACs in max98090.c:

    max98090 i2c-193C9890:00: Control not supported for path STENL Mux -> [NULL] -> DACL
    max98090 i2c-193C9890:00: ASoC: no dapm match for STENL Mux --> NULL --> DACL
    max98090 i2c-193C9890:00: ASoC: Failed to add route STENL Mux -> NULL -> DACL
    max98090 i2c-193C9890:00: Control not supported for path STENL Mux -> [NULL] -> DACR
    max98090 i2c-193C9890:00: ASoC: no dapm match for STENL Mux --> NULL --> DACR
    max98090 i2c-193C9890:00: ASoC: Failed to add route STENL Mux -> NULL -> DACR

    Since there is no control between "STENL Mux" and DACs the control name must
    be NULL not "NULL".

    Signed-off-by: Jarkko Nikula
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Jarkko Nikula
     
  • commit 50c0f21b42dd4cd02b51f82274f66912d9a7fa32 upstream.

    Make sure to check the version field of the firmware header to make sure to
    not accidentally try to parse a firmware file with a different layout.
    Trying to do so can result in loading invalid firmware code to the device.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Lars-Peter Clausen
     
  • commit 077661b6ed24e530dabc9db3ab3ae48fbaf19679 upstream.

    The of_node_put() call in eukrea_tlv320_probe() may take an
    uninitialized pointer, as compiler spotted out:
    sound/soc/fsl/eukrea-tlv320.c:221:14: warning: 'ssi_np' may be used uninitialized in this function [-Wuninitialized]

    This patch adds the proper NULL initializations as a fix.
    (codec_np is also NULL initialized just for consistency.)

    Fixes: 66f232908de2 ('ASoC: eukrea-tlv320: Add DT support')
    Signed-off-by: Takashi Iwai
    Signed-off-by: Mark Brown
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

17 Dec, 2014

3 commits

  • commit 66139a48cee1530c91f37c145384b4ee7043f0b7 upstream.

    In snd_usbmidi_error_timer(), the driver tries to resubmit MIDI input
    URBs to reactivate the MIDI stream, but this causes the error when
    some of URBs are still pending like:

    WARNING: CPU: 0 PID: 0 at ../drivers/usb/core/urb.c:339 usb_submit_urb+0x5f/0x70()
    URB ef705c40 submitted while active
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.16.6-2-desktop #1
    Hardware name: FOXCONN TPS01/TPS01, BIOS 080015 03/23/2010
    c0984bfa f4009ed4 c078deaf f4009ee4 c024c884 c09a135c f4009f00 00000000
    c0984bfa 00000153 c061ac4f c061ac4f 00000009 00000001 ef705c40 e854d1c0
    f4009eec c024c8d3 00000009 f4009ee4 c09a135c f4009f00 f4009f04 c061ac4f
    Call Trace:
    [] try_stack_unwind+0x156/0x170
    [] dump_trace+0x5a/0x1b0
    [] show_trace_log_lvl+0x46/0x50
    [] show_stack_log_lvl+0x51/0xe0
    [] show_stack+0x27/0x50
    [] dump_stack+0x45/0x65
    [] warn_slowpath_common+0x84/0xa0
    [] warn_slowpath_fmt+0x33/0x40
    [] usb_submit_urb+0x5f/0x70
    [] snd_usbmidi_submit_urb+0x14/0x60 [snd_usbmidi_lib]
    [] snd_usbmidi_error_timer+0x6a/0xa0 [snd_usbmidi_lib]
    [] call_timer_fn+0x30/0x130
    [] run_timer_softirq+0x1c2/0x260
    [] __do_softirq+0xc3/0x270
    [] do_softirq_own_stack+0x22/0x30
    [] irq_exit+0x8d/0xa0
    [] smp_apic_timer_interrupt+0x38/0x50
    [] apic_timer_interrupt+0x34/0x3c
    [] cpuidle_enter_state+0x3e/0xd0
    [] cpu_idle_loop+0x29d/0x3e0
    [] cpu_startup_entry+0x53/0x60
    [] start_kernel+0x415/0x41a

    For avoiding these errors, check the pending URBs and skip
    resubmitting such ones.

    Reported-and-tested-by: Stefan Seyfried
    Acked-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit fedb2245cbb8d823e449ebdd48ba9bb35c071ce0 upstream.

    The built-in mic boost volume gets almost muted after suspend/resume
    on Lenovo Ideapad S210.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88121
    Reported-and-tested-by: Roman Kagan
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • commit f62f5eff3d40a56ad1cf0d81a6cac8dd8743e8a1 upstream.

    The same fixup to enable EAPD is needed for ASUS Z99He with AD1986A
    codec like another ASUS machine.

    Reported-and-tested-by: Dmitry V. Zimin
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

06 Dec, 2014

1 commit


02 Dec, 2014

1 commit


29 Nov, 2014

1 commit

  • Pull sound fixes from Takashi Iwai:
    "No excitement, here are only minor fixes: an endian fix for the new
    DSD format we added in 3.18, a fix for HP mute LED, and a fix for
    Native Instrument quirk"

    * tag 'sound-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: pcm: Add big-endian DSD sample formats and fix XMOS DSD sample format
    ALSA: hda - One more HP machine needs to change mute led quirk
    ALSA: usb-audio: Use snd_usb_ctl_msg() for Native Instruments quirk

    Linus Torvalds
     

24 Nov, 2014

2 commits

  • A number of radeon cards have a HW limitation causing them to be
    unable to generate the full 64-bit of address bits for MSIs. This
    breaks MSIs on some platforms such as POWER machines.

    We used to have a powerpc specific quirk to address that on a
    single card, but this doesn't scale very well, this is better
    put under control of the drivers who know precisely what a given
    HW revision can do.

    We now have a generic quirk in the PCI code. We should set it
    appropriately for all radeon's from the audio driver.

    Signed-off-by: Benjamin Herrenschmidt
    Reviewed-by: Takashi Iwai
    Reviewed-by: Alex Deucher
    CC:

    Benjamin Herrenschmidt
     
  • AMD/ATI HDMI controller chip models, we already have a filter to lower
    to 32bit DMA, but the rest are supposed to be working with 64bit
    although the hardware doesn't really work with 63bit but only with 40
    or 48bit DMA. In this patch, we take 40bit DMA for safety for the
    AMD/ATI controllers as the graphics drivers does.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Benjamin Herrenschmidt
    CC:

    Takashi Iwai
     

21 Nov, 2014

3 commits


18 Nov, 2014

6 commits

  • The microphone mute led on the Latitude E5550 can't work. We need to
    apply DELL_WMI_MIC_MUTE_LED quirk to this machine.

    The machine uses alc293 codec and already applied the quirk
    ALC293_FIXUP_DELL1_MIC_NO_PRESENCE through pin_fixup_tbl[].

    Here we just let DELL_WMI_MIC_MUTE_LED be chained to
    ALC269_FIXUP_HEADSET_MODE, then the machine will have these
    quirks ALC293_FIXUP_DELL1_MIC_NO_PRESENCE-->
    ALC269_FIXUP_HEADSET_MODE-->ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED.

    BugLink: https://bugs.launchpad.net/bugs/1381856
    Reported-and-tested-by: Po-Hsu Lin
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • We have one more Dell machine needs DELL_WMI_MIC_MUTE_LED quirk, but
    the machine uses alc293 instead of alc255. So if
    DELL_WMI_MIC_MUTE_LED still chain ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
    the machine can't use this quirk.

    To change this situation, let the DELL_WMI_MIC_MUTE_LED to be a
    standalone quirk, and let other quirks chain it.

    After this change, this quirk can be chained to any existing quirks,
    and as a result, it is possible that this quirk is applied to
    a non-Dell machine or a Dell machine without mic mute led on it, but
    it is still safe since alc_fixup_dell_wmi() will return an error in
    these situations.

    And remove the quirk for machine with subsystem id 0x6010 and 0x601f,
    these two machines will fall back to the quirk
    ALC255_FIXUP_DELL1_MIC_NO_PRESENCE-->ALC255_FIXUP_HEADSET_MODE-->
    ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED through pin_fixup_tbl[].

    BugLink: https://bugs.launchpad.net/bugs/1381856
    Reported-and-tested-by: Po-Hsu Lin
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • …nie/sound into for-linus

    ASoC: Fixes for v3.18

    As well as the usual driver fixes there's a few other things here:

    One is a fix for a race in DPCM which is unfortuantely a rather large
    diffstat, this is the result of growing usage of the mainline code and
    hence more detailed testing so I'm relatively happy.

    The other is a fix for non-DT machine driver matching following some of
    the componentization work which is much more focused.

    Both have had a while to cook in -next.

    Takashi Iwai
     
  • …ix/sgtl5000' into asoc-linus

    Mark Brown
     
  • …cm', 'asoc/fix/es8328', 'asoc/fix/fsl-asrc', 'asoc/fix/max98090', 'asoc/fix/rcar', 'asoc/fix/rockchip' and 'asoc/fix/rt5645' into asoc-linus

    Mark Brown
     
  • Mark Brown
     

17 Nov, 2014

2 commits


16 Nov, 2014

1 commit

  • This patch adds a USB control message delay quirk for a few specific Marantz/Denon
    devices. Without the delay the DACs will not work properly and produces the
    following type of messages:

    Nov 15 10:09:21 orwell kernel: [ 91.342880] usb 3-13: clock source 41 is not valid, cannot use
    Nov 15 10:09:21 orwell kernel: [ 91.343775] usb 3-13: clock source 41 is not valid, cannot use

    There are likely other Marantz/Denon devices using the same USB module which exhibit the
    same problems. But as this cannot be verified I limited the patch to the devices
    I could test.

    The following two devices are covered by this path:
    - Marantz SA-14S1
    - Marantz HD-DAC1

    Signed-off-by: Jurgen Kramer
    Cc:
    Signed-off-by: Takashi Iwai

    Jurgen Kramer
     

14 Nov, 2014

1 commit

  • On a mx28evk with a sgtl5000 codec we notice a loud 'click' sound to happen
    5 seconds after the end of a playback.

    The SMALL_POP bit should fix this, but its definition is incorrect:
    according to the sgtl5000 manual it is bit 0 of CHIP_REF_CTRL register, not
    bit 1.

    Fix the definition accordingly and enable the bit as intended per the code
    comment.

    After applying this change, no loud 'click' sound is heard after playback

    Signed-off-by: Fabio Estevam
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Fabio Estevam
     

13 Nov, 2014

1 commit

  • Lenovo Ideapad Z560 has a mute LED that is controlled via EAPD pin
    0x1b on CX20585 codec. (EAPD bit on corresponds to mute LED on.)
    The machine doesn't need other EAPD, so the fixup concentrates on
    controlling EAPD 0x1b following the vmaster state (but inversely).

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

    Takashi Iwai
     

12 Nov, 2014

1 commit

  • In commit a1253ef6d3fa ("ASoC: cs42l51: split i2c from codec driver"),
    the I2C part of the CS42L51 was moved to a separate file, but the
    definition of the of_device_id array was left in the driver file
    itself, no longer connected to the platform_driver structure using the
    .of_match_table pointer.

    This commit exports the of_device_id array in cs42l51, and uses it as
    .of_match_able in cs42l51-i2c.c. This solution was suggested by Brian
    Austin.

    Fixes: a1253ef6d3fa ("ASoC: cs42l51: split i2c from codec driver")
    Signed-off-by: Thomas Petazzoni
    Acked-by: Brian Austin
    Signed-off-by: Mark Brown
    Cc:

    Thomas Petazzoni