Commit 4536579b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull sound fixes from Takashi Iwai:
 "A collection of small fixes. A large series is found for ASoC tegra
  drivers to correct the control element handlings, while others are
  mostly for device-specific quirks and fix-ups"

* tag 'sound-5.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (25 commits)
  ALSA: hda/hdmi: fix HDA codec entry table order for ADL-P
  ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid
  ALSA: hda/cs8409: Set PMSG_ON earlier inside cs8409 driver
  ASoC: SOF: hda: reset DAI widget before reconfiguring it
  ASoC: cs35l41: Set the max SPI speed for the whole device
  ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
  ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
  ASoC: rk817: Add module alias for rk817-codec
  ASoC: soc-acpi: Set mach->id field on comp_ids matches
  ASoC: tegra: Fix kcontrol put callback in Mixer
  ASoC: tegra: Fix kcontrol put callback in ADX
  ASoC: tegra: Fix kcontrol put callback in AMX
  ASoC: tegra: Fix kcontrol put callback in SFC
  ASoC: tegra: Fix kcontrol put callback in MVC
  ASoC: tegra: Fix kcontrol put callback in AHUB
  ASoC: tegra: Fix kcontrol put callback in DSPK
  ASoC: tegra: Fix kcontrol put callback in DMIC
  ASoC: tegra: Fix kcontrol put callback in I2S
  ASoC: tegra: Fix kcontrol put callback in ADMAIF
  ASoC: tegra: Fix wrong value type in MVC
  ...
parents 58e1100f 289047db
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -147,7 +147,7 @@ struct snd_soc_acpi_link_adr {
 */
/* Descriptor for SST ASoC machine driver */
struct snd_soc_acpi_mach {
	const u8 id[ACPI_ID_LEN];
	u8 id[ACPI_ID_LEN];
	const struct snd_soc_acpi_codecs *comp_ids;
	const u32 link_mask;
	const struct snd_soc_acpi_link_adr *links;
+10 −0
Original line number Diff line number Diff line
@@ -252,6 +252,11 @@ static const struct config_entry config_table[] = {
		.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE,
		.device = 0x02c8,
	},
	{
		.flags = FLAG_SOF,
		.device = 0x02c8,
		.codec_hid = "ESSX8336",
	},
/* Cometlake-H */
	{
		.flags = FLAG_SOF,
@@ -276,6 +281,11 @@ static const struct config_entry config_table[] = {
		.flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE,
		.device = 0x06c8,
	},
		{
		.flags = FLAG_SOF,
		.device = 0x06c8,
		.codec_hid = "ESSX8336",
	},
#endif

/* Icelake */
+11 −1
Original line number Diff line number Diff line
@@ -335,7 +335,10 @@ enum {
					((pci)->device == 0x0c0c) || \
					((pci)->device == 0x0d0c) || \
					((pci)->device == 0x160c) || \
					((pci)->device == 0x490d))
					((pci)->device == 0x490d) || \
					((pci)->device == 0x4f90) || \
					((pci)->device == 0x4f91) || \
					((pci)->device == 0x4f92))

#define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)

@@ -2473,6 +2476,13 @@ static const struct pci_device_id azx_ids[] = {
	/* DG1 */
	{ PCI_DEVICE(0x8086, 0x490d),
	  .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
	/* DG2 */
	{ PCI_DEVICE(0x8086, 0x4f90),
	  .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
	{ PCI_DEVICE(0x8086, 0x4f91),
	  .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
	{ PCI_DEVICE(0x8086, 0x4f92),
	  .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
	/* Alderlake-S */
	{ PCI_DEVICE(0x8086, 0x7ad0),
	  .driver_data = AZX_DRIVER_SKL | AZX_DCAPS_INTEL_SKYLAKE},
+9 −0
Original line number Diff line number Diff line
@@ -438,6 +438,15 @@ int snd_hda_codec_set_pin_target(struct hda_codec *codec, hda_nid_t nid,
#define for_each_hda_codec_node(nid, codec) \
	for ((nid) = (codec)->core.start_nid; (nid) < (codec)->core.end_nid; (nid)++)

/* Set the codec power_state flag to indicate to allow unsol event handling;
 * see hda_codec_unsol_event() in hda_bind.c.  Calling this might confuse the
 * state tracking, so use with care.
 */
static inline void snd_hda_codec_allow_unsol_events(struct hda_codec *codec)
{
	codec->core.dev.power.power_state = PMSG_ON;
}

/*
 * get widget capabilities
 */
+5 −0
Original line number Diff line number Diff line
@@ -750,6 +750,11 @@ static void cs42l42_resume(struct sub_codec *cs42l42)
	if (cs42l42->full_scale_vol)
		cs8409_i2c_write(cs42l42, 0x2001, 0x01);

	/* we have to explicitly allow unsol event handling even during the
	 * resume phase so that the jack event is processed properly
	 */
	snd_hda_codec_allow_unsol_events(cs42l42->codec);

	cs42l42_enable_jack_detect(cs42l42);
}

Loading