Commit 348954f9 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v6.16-rc6' of...

Merge tag 'asoc-fix-v6.16-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.16

A relatively large set of changes, but most of them are quirk
information for various x86 systems.  There is one more substantial fix
for a NULL pointer dereference when removing the AVS driver, plus one
for Kconfig dependencies.
parents e201c19d 7bab1bd9
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -542,6 +542,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
			DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16z-n000"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Victus by HP Gaming Laptop 15-fb1xxx"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
@@ -591,6 +598,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
			DMI_MATCH(DMI_BOARD_NAME, "8A7F"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
			DMI_MATCH(DMI_BOARD_NAME, "8A81"),
		}
	},
	{
		.driver_data = &acp6x_card,
		.matches = {
+5 −2
Original line number Diff line number Diff line
@@ -1315,15 +1315,18 @@ static int rt5660_i2c_probe(struct i2c_client *i2c)
		regmap_update_bits(rt5660->regmap, RT5660_GPIO_CTRL1,
			RT5660_GP1_PIN_MASK, RT5660_GP1_PIN_DMIC1_SCL);

		if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_GPIO2)
		if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_GPIO2) {
			regmap_update_bits(rt5660->regmap, RT5660_DMIC_CTRL1,
				RT5660_SEL_DMIC_DATA_MASK,
				RT5660_SEL_DMIC_DATA_GPIO2);
		else if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_IN1P)
			regmap_update_bits(rt5660->regmap, RT5660_GPIO_CTRL1,
				RT5660_GP2_PIN_MASK, RT5660_GP2_PIN_DMIC1_SDA);
		} else if (rt5660->pdata.dmic1_data_pin == RT5660_DMIC1_DATA_IN1P) {
			regmap_update_bits(rt5660->regmap, RT5660_DMIC_CTRL1,
				RT5660_SEL_DMIC_DATA_MASK,
				RT5660_SEL_DMIC_DATA_IN1P);
		}
	}

	return devm_snd_soc_register_component(&i2c->dev,
				      &soc_component_dev_rt5660,
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ menuconfig SND_SOC_INTEL_MACH
	 kernel: saying N will just cause the configurator to skip all
	 the questions about Intel ASoC machine drivers.

if SND_SOC_INTEL_MACH
if SND_SOC_INTEL_MACH && (SND_SOC_SOF_INTEL_COMMON || !SND_SOC_SOF_INTEL_COMMON)

config SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
	bool "Use more user friendly long card names"
+29 −0
Original line number Diff line number Diff line
@@ -238,6 +238,15 @@ static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
	}
};

static const struct snd_soc_acpi_adr_device rt1316_3_single_adr[] = {
	{
		.adr = 0x000330025D131601ull,
		.num_endpoints = 1,
		.endpoints = &single_endpoint,
		.name_prefix = "rt1316-1"
	}
};

static const struct snd_soc_acpi_adr_device rt1320_2_single_adr[] = {
	{
		.adr = 0x000230025D132001ull,
@@ -368,6 +377,20 @@ static const struct snd_soc_acpi_link_adr arl_sdca_rvp[] = {
	{}
};

static const struct snd_soc_acpi_link_adr arl_rt711_l0_rt1316_l3[] = {
	{
		.mask = BIT(0),
		.num_adr = ARRAY_SIZE(rt711_sdca_0_adr),
		.adr_d = rt711_sdca_0_adr,
	},
	{
		.mask = BIT(3),
		.num_adr = ARRAY_SIZE(rt1316_3_single_adr),
		.adr_d = rt1316_3_single_adr,
	},
	{}
};

static const struct snd_soc_acpi_link_adr arl_rt722_l0_rt1320_l2[] = {
	{
		.mask = BIT(0),
@@ -481,6 +504,12 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_arl_sdw_machines[] = {
		.sof_tplg_filename = "sof-arl-cs42l43-l2.tplg",
		.get_function_tplg_files = sof_sdw_get_tplg_files,
	},
	{
		.link_mask = BIT(0) | BIT(3),
		.links = arl_rt711_l0_rt1316_l3,
		.drv_name = "sof_sdw",
		.sof_tplg_filename = "sof-arl-rt711-l0-rt1316-l3.tplg",
	},
	{
		.link_mask = 0x1, /* link0 required */
		.links = arl_rvp,