1. 05 12月, 2014 1 次提交
  2. 02 12月, 2014 1 次提交
  3. 25 11月, 2014 4 次提交
    • J
      ASoC: tlv320aic31xx: Fix off by one error in the loop stucture. · bbc686b3
      Jyri Sarha 提交于
      Fix off by one read beyond the end of a table.
      Reported-by: NDavid Binderman <dcb314@hotmail.com>
      Signed-off-by: NJyri Sarha <jsarha@ti.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      bbc686b3
    • J
      ASoC: max98090: Fix right sidetone connection · 418382f2
      Jarkko Nikula 提交于
      It is right not left sidetone which goes to "DACR".
      Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      418382f2
    • J
      ASoC: max98090: Fix ill-defined sidetone route · 48826ee5
      Jarkko Nikula 提交于
      Commit 5fe5b767 ("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: NJarkko Nikula <jarkko.nikula@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      48826ee5
    • J
      ASoC: max98090: Fix digital microphone · 4cf703a7
      Jarkko Nikula 提交于
      Commit e409dfbf ("ASoC: dapm: Add a few supply widget sanity checks")
      broke digital microphone support in max98090.c:
      
      max98090 i2c-193C9890:00: Conditional paths are not supported for supply widgets (DMICL_ENA -> [DMIC] -> DMIC Mux)
      max98090 i2c-193C9890:00: ASoC: no dapm match for DMICL_ENA --> DMIC --> DMIC Mux
      max98090 i2c-193C9890:00: ASoC: Failed to add route DMICL_ENA -> DMIC -> DMIC Mux
      max98090 i2c-193C9890:00: Conditional paths are not supported for supply widgets (DMICR_ENA -> [DMIC] -> DMIC Mux)
      max98090 i2c-193C9890:00: ASoC: no dapm match for DMICR_ENA --> DMIC --> DMIC Mux
      max98090 i2c-193C9890:00: ASoC: Failed to add route DMICR_ENA -> DMIC -> DMIC Mux
      
      Problem is partially caused by commit f69e3caa ("ASoC: max98090: Enable
      both DMIC channels also when using mono configuration") which connects
      "DMICL_ENA" and "DMICR_ENA" supply widgets to "DMIC Mux".
      
      Fix the breakage by reverting f69e3caa and then by adding additional
      "DMICR_ENA" to "DMICL" and "DMICL_ENA" to "DMICR" cross-connections. This
      disconnects these supply widgets from the mux and makes sure that both DMIC
      data channels are still enabled together.
      Signed-off-by: NJarkko Nikula <jarkko.nikula@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      4cf703a7
  4. 24 11月, 2014 2 次提交
  5. 21 11月, 2014 3 次提交
  6. 20 11月, 2014 1 次提交
  7. 19 11月, 2014 1 次提交
  8. 18 11月, 2014 2 次提交
  9. 17 11月, 2014 2 次提交
  10. 16 11月, 2014 1 次提交
    • J
      ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices · 6e84a8d7
      Jurgen Kramer 提交于
      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: NJurgen Kramer <gtmkramer@xs4all.nl>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6e84a8d7
  11. 14 11月, 2014 1 次提交
    • F
      ASoC: sgtl5000: Fix SMALL_POP bit definition · c251ea7b
      Fabio Estevam 提交于
      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: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      c251ea7b
  12. 13 11月, 2014 1 次提交
  13. 12 11月, 2014 3 次提交
    • T
      ASoC: cs42l51: re-hook of_match_table pointer · 2cb1e025
      Thomas Petazzoni 提交于
      In commit a1253ef6 ("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: a1253ef6 ("ASoC: cs42l51: split i2c from codec driver")
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Acked-by: NBrian Austin <brian.austin@cirrus.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: <stable@vger.kernel.org>
      2cb1e025
    • K
      ALSA: hda/realtek - Change EAPD to verb control · 394c97f8
      Kailang Yang 提交于
      This will fix no sound in Linux system after reboot from windows.
      
      Change log:
      - alc662_fill_coef() is replaced with alc_fill_eapd_coef_idx()
        and move into alc_auto_init_amp().
      - For ALC262, ALC267, ALC268, ALC269, ALC233, ALC255, ALC280, ALC282,
        ALC283, ALC284, ALC285, ALC286, ALC288, ALC290, ALC292, ALC293, ALC294,
        ALC668, ALC888VC, ALC888VD, ALC891, ALC892, ALC898 and ALC1150, add update
        COEF control for EAPD setting.
      - Remove alc269_fill_coef() for update EAPD control line.
      
      ADDITIONAL NOTE:
      Many Realtek cdoecs have a COEF bit to switch the master amp control
      between COEF and EAPD.  Windows drivers seem using COEF while we use
      EAPD, which is more standard.  As a result, some system suffer from
      the silent output when booting after Windows.  This patch sets the
      COEF bits on the relevant codecs properly to switch to EAPD control.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=87771Signed-off-by: NKailang Yang <kailang@realtek.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      394c97f8
    • T
      ALSA: usb-audio: Fix memory leak in FTU quirk · 1a290581
      Takashi Iwai 提交于
      M-audio FastTrack Ultra quirk doesn't release the kzalloc'ed memory.
      This patch adds the private_free callback to release it properly.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1a290581
  14. 10 11月, 2014 3 次提交
  15. 09 11月, 2014 3 次提交
  16. 06 11月, 2014 4 次提交
  17. 05 11月, 2014 4 次提交
    • T
      ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect · 0725dda2
      Takashi Iwai 提交于
      Some USB-audio devices show weird sysfs warnings at disconnecting the
      devices, e.g.
       usb 1-3: USB disconnect, device number 3
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 973 at fs/sysfs/group.c:216 device_del+0x39/0x180()
       sysfs group ffffffff8183df40 not found for kobject 'midiC1D0'
       Call Trace:
        [<ffffffff814a3e38>] ? dump_stack+0x49/0x71
        [<ffffffff8103cb72>] ? warn_slowpath_common+0x82/0xb0
        [<ffffffff8103cc55>] ? warn_slowpath_fmt+0x45/0x50
        [<ffffffff813521e9>] ? device_del+0x39/0x180
        [<ffffffff81352339>] ? device_unregister+0x9/0x20
        [<ffffffff81352384>] ? device_destroy+0x34/0x40
        [<ffffffffa00ba29f>] ? snd_unregister_device+0x7f/0xd0 [snd]
        [<ffffffffa025124e>] ? snd_rawmidi_dev_disconnect+0xce/0x100 [snd_rawmidi]
        [<ffffffffa00c0192>] ? snd_device_disconnect+0x62/0x90 [snd]
        [<ffffffffa00c025c>] ? snd_device_disconnect_all+0x3c/0x60 [snd]
        [<ffffffffa00bb574>] ? snd_card_disconnect+0x124/0x1a0 [snd]
        [<ffffffffa02e54e8>] ? usb_audio_disconnect+0x88/0x1c0 [snd_usb_audio]
        [<ffffffffa015260e>] ? usb_unbind_interface+0x5e/0x1b0 [usbcore]
        [<ffffffff813553e9>] ? __device_release_driver+0x79/0xf0
        [<ffffffff81355485>] ? device_release_driver+0x25/0x40
        [<ffffffff81354e11>] ? bus_remove_device+0xf1/0x130
        [<ffffffff813522b9>] ? device_del+0x109/0x180
        [<ffffffffa01501d5>] ? usb_disable_device+0x95/0x1f0 [usbcore]
        [<ffffffffa014634f>] ? usb_disconnect+0x8f/0x190 [usbcore]
        [<ffffffffa0149179>] ? hub_thread+0x539/0x13a0 [usbcore]
        [<ffffffff810669f5>] ? sched_clock_local+0x15/0x80
        [<ffffffff81066c98>] ? sched_clock_cpu+0xb8/0xd0
        [<ffffffff81070730>] ? bit_waitqueue+0xb0/0xb0
        [<ffffffffa0148c40>] ? usb_port_resume+0x430/0x430 [usbcore]
        [<ffffffffa0148c40>] ? usb_port_resume+0x430/0x430 [usbcore]
        [<ffffffff8105973e>] ? kthread+0xce/0xf0
        [<ffffffff81059670>] ? kthread_create_on_node+0x1c0/0x1c0
        [<ffffffff814a8b7c>] ? ret_from_fork+0x7c/0xb0
        [<ffffffff81059670>] ? kthread_create_on_node+0x1c0/0x1c0
       ---[ end trace 40b1928d1136b91e ]---
      
      This comes from the fact that usb-audio driver may receive the
      disconnect callback multiple times, per each usb interface.  When a
      device has both audio and midi interfaces, it gets called twice, and
      currently the driver tries to release resources at the last call.
      At this point, the first parent interface has been already deleted,
      thus deleting a child of the first parent hits such a warning.
      
      For fixing this problem, we need to call snd_card_disconnect() and
      cancel pending operations at the very first disconnect while the
      release of the whole objects waits until the last disconnect call.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=80931Reported-and-tested-by: NTomas Gayoso <tgayoso@gmail.com>
      Reported-and-tested-by: NChris J Arges <chris.j.arges@canonical.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      0725dda2
    • H
      ALSA: hda - fix mute led problem for three HP laptops · c922c4e8
      Hui Wang 提交于
      Without the fix, the mute led can't work on these three machines.
      
      After apply this fix, these three machines will fall back on the led
      control quirk as below, and through testing, the mute led works very
      well.
      PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED,
                  ALC282_STANDARD_PINS,
                  {0x12, 0x90a60140},
                  ...
      
      BugLink: https://bugs.launchpad.net/bugs/1389497Tested-by: NTieFu Chen <tienfu.chen@canonical.com>
      Cc: Kailang Yang <kailang@realtek.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NHui Wang <hui.wang@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c922c4e8
    • D
      ASoC: max98090: Correct pclk divisor settings · ece509c1
      Dylan Reid 提交于
      The Baytrail-based chromebooks have a 20MHz mclk, the code was setting
      the divisor incorrectly in this case.  According to the 98090
      datasheet, the divisor should be set to DIV1 for 10 <= mclk <= 20.
      Correct this and the surrounding clock ranges as well to match the
      datasheet.
      Signed-off-by: NDylan Reid <dgreid@chromium.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      ece509c1
    • T
      ASoC: dpcm: Fix race between FE/BE updates and trigger · ea9d0d77
      Takashi Iwai 提交于
      DPCM can update the FE/BE connection states totally asynchronously
      from the FE's PCM state.  Most of FE/BE state changes are protected by
      mutex, so that they won't race, but there are still some actions that
      are uncovered.  For example, suppose to switch a BE while a FE's
      stream is running.  This would call soc_dpcm_runtime_update(), which
      sets FE's runtime_update flag, then sets up and starts BEs, and clears
      FE's runtime_update flag again.
      
      When a device emits XRUN during this operation, the PCM core triggers
      snd_pcm_stop(XRUN).  Since the trigger action is an atomic ops, this
      isn't blocked by the mutex, thus it kicks off DPCM's trigger action.
      It eventually updates and clears FE's runtime_update flag while
      soc_dpcm_runtime_update() is running concurrently, and it results in
      confusion.
      
      Usually, for avoiding such a race, we take a lock.  There is a PCM
      stream lock for that purpose.  However, as already mentioned, the
      trigger action is atomic, and we can't take the lock for the whole
      soc_dpcm_runtime_update() or other operations that include the lengthy
      jobs like hw_params or prepare.
      
      This patch provides an alternative solution.  This adds a way to defer
      the conflicting trigger callback to be executed at the end of FE/BE
      state changes.  For doing it, two things are introduced:
      
      - Each runtime_update state change of FEs is protected via PCM stream
        lock.
      - The FE's trigger callback checks the runtime_update flag.  If it's
        not set, the trigger action is executed there.  If set, mark the
        pending trigger action and returns immediately.
      - At the exit of runtime_update state change, it checks whether the
        pending trigger is present.  If yes, it executes the trigger action
        at this point.
      Reported-and-tested-by: NQiao Zhou <zhouqiao@marvell.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      Acked-by: NLiam Girdwood <liam.r.girdwood@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Cc: stable@vger.kernel.org
      ea9d0d77
  18. 04 11月, 2014 2 次提交
  19. 03 11月, 2014 1 次提交