Skip to content

Commit 029c77f

Browse files
committed
Merge tag 'sound-6.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of small fixes: - HD-audio runtime PM bug fix - A couple of HD-audio quirks - Fix series of ASoC Intel AVS drivers - ASoC DPCM fix for a bug found on new Intel systems - A few other ASoC device-specific small fixes" * tag 'sound-6.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek: Enable headset onLenovo M70/M90 ASoC: dwc: move DMA init to snd_soc_dai_driver probe() ASoC: cs35l41: Fix default regmap values for some registers ALSA: hda: Fix unhandled register update during auto-suspend period ASoC: dt-bindings: tlv320aic32x4: Fix supply names ASoC: Intel: avs: Add missing checks on FE startup ASoC: Intel: avs: Fix avs_path_module::instance_id size ASoC: Intel: avs: Account for UID of ACPI device ASoC: Intel: avs: Fix declaration of enum avs_channel_config ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg ASoC: Intel: avs: Access path components under lock ASoC: Intel: avs: Fix module lookup ALSA: hda/ca0132: add quirk for EVGA X299 DARK ASoC: soc-pcm: test if a BE can be prepared ASoC: rt5682: Disable jack detection interrupt during suspend ASoC: lpass: Fix for KASAN use_after_free out of bounds
2 parents ecea3ba + 4ca110c commit 029c77f

File tree

23 files changed

+105
-60
lines changed

23 files changed

+105
-60
lines changed

Documentation/devicetree/bindings/sound/tlv320aic32x4.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Required properties:
88
"ti,tlv320aic32x6" TLV320AIC3206, TLV320AIC3256
99
"ti,tas2505" TAS2505, TAS2521
1010
- reg: I2C slave address
11-
- supply-*: Required supply regulators are:
11+
- *-supply: Required supply regulators are:
1212
"iov" - digital IO power supply
1313
"ldoin" - LDO power supply
1414
"dv" - Digital core power supply

include/sound/soc-acpi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ struct snd_soc_acpi_link_adr {
170170
/* Descriptor for SST ASoC machine driver */
171171
struct snd_soc_acpi_mach {
172172
u8 id[ACPI_ID_LEN];
173+
const char *uid;
173174
const struct snd_soc_acpi_codecs *comp_ids;
174175
const u32 link_mask;
175176
const struct snd_soc_acpi_link_adr *links;

include/sound/soc-dpcm.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ int snd_soc_dpcm_can_be_free_stop(struct snd_soc_pcm_runtime *fe,
122122
int snd_soc_dpcm_can_be_params(struct snd_soc_pcm_runtime *fe,
123123
struct snd_soc_pcm_runtime *be, int stream);
124124

125+
/* can this BE perform prepare */
126+
int snd_soc_dpcm_can_be_prepared(struct snd_soc_pcm_runtime *fe,
127+
struct snd_soc_pcm_runtime *be, int stream);
128+
125129
/* is the current PCM operation for this FE ? */
126130
int snd_soc_dpcm_fe_can_update(struct snd_soc_pcm_runtime *fe, int stream);
127131

include/uapi/sound/skl-tplg-interface.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ enum skl_ch_cfg {
6666
SKL_CH_CFG_DUAL_MONO = 9,
6767
SKL_CH_CFG_I2S_DUAL_STEREO_0 = 10,
6868
SKL_CH_CFG_I2S_DUAL_STEREO_1 = 11,
69-
SKL_CH_CFG_4_CHANNEL = 12,
69+
SKL_CH_CFG_7_1 = 12,
70+
SKL_CH_CFG_4_CHANNEL = SKL_CH_CFG_7_1,
7071
SKL_CH_CFG_INVALID
7172
};
7273

sound/hda/hdac_device.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ EXPORT_SYMBOL_GPL(snd_hdac_power_up_pm);
611611
int snd_hdac_keep_power_up(struct hdac_device *codec)
612612
{
613613
if (!atomic_inc_not_zero(&codec->in_pm)) {
614-
int ret = pm_runtime_get_if_in_use(&codec->dev);
614+
int ret = pm_runtime_get_if_active(&codec->dev, true);
615615
if (!ret)
616616
return -1;
617617
if (ret < 0)

sound/pci/hda/patch_ca0132.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,6 +1306,7 @@ static const struct snd_pci_quirk ca0132_quirks[] = {
13061306
SND_PCI_QUIRK(0x1458, 0xA026, "Gigabyte G1.Sniper Z97", QUIRK_R3DI),
13071307
SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI),
13081308
SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI),
1309+
SND_PCI_QUIRK(0x3842, 0x104b, "EVGA X299 Dark", QUIRK_R3DI),
13091310
SND_PCI_QUIRK(0x3842, 0x1055, "EVGA Z390 DARK", QUIRK_R3DI),
13101311
SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D),
13111312
SND_PCI_QUIRK(0x1102, 0x0018, "Recon3D", QUIRK_R3D),

sound/pci/hda/patch_realtek.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11719,6 +11719,8 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
1171911719
SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN),
1172011720
SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN),
1172111721
SND_PCI_QUIRK(0x17aa, 0x32f7, "Lenovo ThinkCentre M90", ALC897_FIXUP_HEADSET_MIC_PIN),
11722+
SND_PCI_QUIRK(0x17aa, 0x3321, "Lenovo ThinkCentre M70 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN),
11723+
SND_PCI_QUIRK(0x17aa, 0x331b, "Lenovo ThinkCentre M90 Gen4", ALC897_FIXUP_HEADSET_MIC_PIN),
1172211724
SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2),
1172311725
SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
1172411726
SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),

sound/soc/codecs/cs35l41-lib.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ static const struct reg_default cs35l41_reg[] = {
4646
{ CS35L41_DSP1_RX5_SRC, 0x00000020 },
4747
{ CS35L41_DSP1_RX6_SRC, 0x00000021 },
4848
{ CS35L41_DSP1_RX7_SRC, 0x0000003A },
49-
{ CS35L41_DSP1_RX8_SRC, 0x00000001 },
49+
{ CS35L41_DSP1_RX8_SRC, 0x0000003B },
5050
{ CS35L41_NGATE1_SRC, 0x00000008 },
5151
{ CS35L41_NGATE2_SRC, 0x00000009 },
5252
{ CS35L41_AMP_DIG_VOL_CTRL, 0x00008000 },
@@ -58,8 +58,8 @@ static const struct reg_default cs35l41_reg[] = {
5858
{ CS35L41_IRQ1_MASK2, 0xFFFFFFFF },
5959
{ CS35L41_IRQ1_MASK3, 0xFFFF87FF },
6060
{ CS35L41_IRQ1_MASK4, 0xFEFFFFFF },
61-
{ CS35L41_GPIO1_CTRL1, 0xE1000001 },
62-
{ CS35L41_GPIO2_CTRL1, 0xE1000001 },
61+
{ CS35L41_GPIO1_CTRL1, 0x81000001 },
62+
{ CS35L41_GPIO2_CTRL1, 0x81000001 },
6363
{ CS35L41_MIXER_NGATE_CFG, 0x00000000 },
6464
{ CS35L41_MIXER_NGATE_CH1_CFG, 0x00000303 },
6565
{ CS35L41_MIXER_NGATE_CH2_CFG, 0x00000303 },

sound/soc/codecs/lpass-tx-macro.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,8 @@ static int tx_macro_put_dec_enum(struct snd_kcontrol *kcontrol,
746746
struct tx_macro *tx = snd_soc_component_get_drvdata(component);
747747

748748
val = ucontrol->value.enumerated.item[0];
749+
if (val >= e->items)
750+
return -EINVAL;
749751

750752
switch (e->reg) {
751753
case CDC_TX_INP_MUX_ADC_MUX0_CFG0:
@@ -772,6 +774,9 @@ static int tx_macro_put_dec_enum(struct snd_kcontrol *kcontrol,
772774
case CDC_TX_INP_MUX_ADC_MUX7_CFG0:
773775
mic_sel_reg = CDC_TX7_TX_PATH_CFG0;
774776
break;
777+
default:
778+
dev_err(component->dev, "Error in configuration!!\n");
779+
return -EINVAL;
775780
}
776781

777782
if (val != 0) {

sound/soc/codecs/rt5682-i2c.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,9 @@ static int rt5682_i2c_probe(struct i2c_client *i2c)
267267
ret = devm_request_threaded_irq(&i2c->dev, i2c->irq, NULL,
268268
rt5682_irq, IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING
269269
| IRQF_ONESHOT, "rt5682", rt5682);
270-
if (ret)
270+
if (!ret)
271+
rt5682->irq = i2c->irq;
272+
else
271273
dev_err(&i2c->dev, "Failed to reguest IRQ: %d\n", ret);
272274
}
273275

0 commit comments

Comments
 (0)