Merge branch 'for-linus' into for-next
This commit is contained in:
commit
00833d70ca
|
@ -141,6 +141,8 @@ struct snd_soc_tplg_ops {
|
||||||
int io_ops_count;
|
int io_ops_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_SND_SOC_TOPOLOGY
|
||||||
|
|
||||||
/* gets a pointer to data from the firmware block header */
|
/* gets a pointer to data from the firmware block header */
|
||||||
static inline const void *snd_soc_tplg_get_data(struct snd_soc_tplg_hdr *hdr)
|
static inline const void *snd_soc_tplg_get_data(struct snd_soc_tplg_hdr *hdr)
|
||||||
{
|
{
|
||||||
|
@ -165,4 +167,14 @@ int snd_soc_tplg_widget_bind_event(struct snd_soc_dapm_widget *w,
|
||||||
const struct snd_soc_tplg_widget_events *events, int num_events,
|
const struct snd_soc_tplg_widget_events *events, int num_events,
|
||||||
u16 event_type);
|
u16 event_type);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
static inline int snd_soc_tplg_component_remove(struct snd_soc_component *comp,
|
||||||
|
u32 index)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -18,6 +18,12 @@
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <sound/asound.h>
|
#include <sound/asound.h>
|
||||||
|
|
||||||
|
#ifndef __KERNEL__
|
||||||
|
#error This API is an early revision and not enabled in the current
|
||||||
|
#error kernel release, it will be enabled in a future kernel version
|
||||||
|
#error with incompatible changes to what is here.
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Maximum number of channels topology kcontrol can represent.
|
* Maximum number of channels topology kcontrol can represent.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -200,12 +200,33 @@ static int cx_auto_init(struct hda_codec *codec)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define cx_auto_free snd_hda_gen_free
|
static void cx_auto_reboot_notify(struct hda_codec *codec)
|
||||||
|
{
|
||||||
|
struct conexant_spec *spec = codec->spec;
|
||||||
|
|
||||||
|
if (codec->core.vendor_id != 0x14f150f2)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Turn the CX20722 codec into D3 to avoid spurious noises
|
||||||
|
from the internal speaker during (and after) reboot */
|
||||||
|
cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, false);
|
||||||
|
|
||||||
|
snd_hda_codec_set_power_to_all(codec, codec->core.afg, AC_PWRST_D3);
|
||||||
|
snd_hda_codec_write(codec, codec->core.afg, 0,
|
||||||
|
AC_VERB_SET_POWER_STATE, AC_PWRST_D3);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void cx_auto_free(struct hda_codec *codec)
|
||||||
|
{
|
||||||
|
cx_auto_reboot_notify(codec);
|
||||||
|
snd_hda_gen_free(codec);
|
||||||
|
}
|
||||||
|
|
||||||
static const struct hda_codec_ops cx_auto_patch_ops = {
|
static const struct hda_codec_ops cx_auto_patch_ops = {
|
||||||
.build_controls = cx_auto_build_controls,
|
.build_controls = cx_auto_build_controls,
|
||||||
.build_pcms = snd_hda_gen_build_pcms,
|
.build_pcms = snd_hda_gen_build_pcms,
|
||||||
.init = cx_auto_init,
|
.init = cx_auto_init,
|
||||||
|
.reboot_notify = cx_auto_reboot_notify,
|
||||||
.free = cx_auto_free,
|
.free = cx_auto_free,
|
||||||
.unsol_event = snd_hda_jack_unsol_event,
|
.unsol_event = snd_hda_jack_unsol_event,
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
|
|
@ -5190,6 +5190,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||||
SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
|
SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
|
||||||
|
SND_PCI_QUIRK(0x1028, 0x06db, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
|
||||||
SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
||||||
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
|
||||||
|
@ -5291,6 +5292,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||||
SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK),
|
SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK),
|
SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x2210, "Thinkpad T540p", ALC292_FIXUP_TPT440_DOCK),
|
SND_PCI_QUIRK(0x17aa, 0x2210, "Thinkpad T540p", ALC292_FIXUP_TPT440_DOCK),
|
||||||
|
SND_PCI_QUIRK(0x17aa, 0x2211, "Thinkpad W541", ALC292_FIXUP_TPT440_DOCK),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK),
|
SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad T440", ALC292_FIXUP_TPT440_DOCK),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK),
|
SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad X240", ALC292_FIXUP_TPT440_DOCK),
|
||||||
SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||||
|
|
|
@ -30,6 +30,9 @@ config SND_SOC_GENERIC_DMAENGINE_PCM
|
||||||
bool
|
bool
|
||||||
select SND_DMAENGINE_PCM
|
select SND_DMAENGINE_PCM
|
||||||
|
|
||||||
|
config SND_SOC_TOPOLOGY
|
||||||
|
bool
|
||||||
|
|
||||||
# All the supported SoCs
|
# All the supported SoCs
|
||||||
source "sound/soc/adi/Kconfig"
|
source "sound/soc/adi/Kconfig"
|
||||||
source "sound/soc/atmel/Kconfig"
|
source "sound/soc/atmel/Kconfig"
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-cache.o soc-utils.o
|
snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-cache.o soc-utils.o
|
||||||
snd-soc-core-objs += soc-pcm.o soc-compress.o soc-io.o soc-devres.o soc-ops.o
|
snd-soc-core-objs += soc-pcm.o soc-compress.o soc-io.o soc-devres.o soc-ops.o
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_SND_SOC_TOPOLOGY),)
|
||||||
snd-soc-core-objs += soc-topology.o
|
snd-soc-core-objs += soc-topology.o
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM),)
|
ifneq ($(CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM),)
|
||||||
snd-soc-core-objs += soc-generic-dmaengine-pcm.o
|
snd-soc-core-objs += soc-generic-dmaengine-pcm.o
|
||||||
|
|
|
@ -638,7 +638,7 @@ int snd_usb_autoresume(struct snd_usb_audio *chip)
|
||||||
int err = -ENODEV;
|
int err = -ENODEV;
|
||||||
|
|
||||||
down_read(&chip->shutdown_rwsem);
|
down_read(&chip->shutdown_rwsem);
|
||||||
if (chip->probing && chip->in_pm)
|
if (chip->probing || chip->in_pm)
|
||||||
err = 0;
|
err = 0;
|
||||||
else if (!chip->shutdown)
|
else if (!chip->shutdown)
|
||||||
err = usb_autopm_get_interface(chip->pm_intf);
|
err = usb_autopm_get_interface(chip->pm_intf);
|
||||||
|
|
|
@ -1268,6 +1268,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
|
||||||
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
|
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case USB_ID(0x20b1, 0x000a): /* Gustard DAC-X20U */
|
||||||
case USB_ID(0x20b1, 0x2009): /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
|
case USB_ID(0x20b1, 0x2009): /* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
|
||||||
case USB_ID(0x20b1, 0x2023): /* JLsounds I2SoverUSB */
|
case USB_ID(0x20b1, 0x2023): /* JLsounds I2SoverUSB */
|
||||||
if (fp->altsetting == 3)
|
if (fp->altsetting == 3)
|
||||||
|
|
Loading…
Reference in New Issue