Skip to content

Commit 6f7dae6

Browse files
committed
Merge branch 'for-linus' into for-next
Pull 6.10-rc devel branch for further cleanups of dmaengine and others. Signed-off-by: Takashi Iwai <[email protected]>
2 parents 634f3b4 + 6a7db25 commit 6f7dae6

File tree

5 files changed

+23
-3
lines changed

5 files changed

+23
-3
lines changed

sound/core/pcm_dmaengine.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,12 @@ EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_open_request_chan);
358358
int snd_dmaengine_pcm_close(struct snd_pcm_substream *substream)
359359
{
360360
struct dmaengine_pcm_runtime_data *prtd = substream_to_prtd(substream);
361+
struct dma_tx_state state;
362+
enum dma_status status;
363+
364+
status = dmaengine_tx_status(prtd->dma_chan, prtd->cookie, &state);
365+
if (status == DMA_PAUSED)
366+
dmaengine_terminate_async(prtd->dma_chan);
361367

362368
dmaengine_synchronize(prtd->dma_chan);
363369
kfree(prtd);
@@ -378,6 +384,12 @@ EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_close);
378384
int snd_dmaengine_pcm_close_release_chan(struct snd_pcm_substream *substream)
379385
{
380386
struct dmaengine_pcm_runtime_data *prtd = substream_to_prtd(substream);
387+
struct dma_tx_state state;
388+
enum dma_status status;
389+
390+
status = dmaengine_tx_status(prtd->dma_chan, prtd->cookie, &state);
391+
if (status == DMA_PAUSED)
392+
dmaengine_terminate_async(prtd->dma_chan);
381393

382394
dmaengine_synchronize(prtd->dma_chan);
383395
dma_release_channel(prtd->dma_chan);

sound/core/pcm_native.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1775,6 +1775,8 @@ static int snd_pcm_pre_resume(struct snd_pcm_substream *substream,
17751775
snd_pcm_state_t state)
17761776
{
17771777
struct snd_pcm_runtime *runtime = substream->runtime;
1778+
if (runtime->state != SNDRV_PCM_STATE_SUSPENDED)
1779+
return -EBADFD;
17781780
if (!(runtime->info & SNDRV_PCM_INFO_RESUME))
17791781
return -ENOSYS;
17801782
runtime->trigger_master = substream;

sound/core/seq/seq_ump_convert.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,8 @@ static int paf_ev_to_ump_midi2(const struct snd_seq_event *event,
791791

792792
/* set up the MIDI2 RPN/NRPN packet data from the parsed info */
793793
static void fill_rpn(struct snd_seq_ump_midi2_bank *cc,
794-
union snd_ump_midi2_msg *data)
794+
union snd_ump_midi2_msg *data,
795+
unsigned char channel)
795796
{
796797
if (cc->rpn_set) {
797798
data->rpn.status = UMP_MSG_STATUS_RPN;
@@ -808,6 +809,7 @@ static void fill_rpn(struct snd_seq_ump_midi2_bank *cc,
808809
}
809810
data->rpn.data = upscale_14_to_32bit((cc->cc_data_msb << 7) |
810811
cc->cc_data_lsb);
812+
data->rpn.channel = channel;
811813
cc->cc_data_msb = cc->cc_data_lsb = 0;
812814
}
813815

@@ -855,7 +857,7 @@ static int cc_ev_to_ump_midi2(const struct snd_seq_event *event,
855857
cc->cc_data_lsb = val;
856858
if (!(cc->rpn_set || cc->nrpn_set))
857859
return 0; // skip
858-
fill_rpn(cc, data);
860+
fill_rpn(cc, data, channel);
859861
return 1;
860862
}
861863

@@ -957,7 +959,7 @@ static int ctrl14_ev_to_ump_midi2(const struct snd_seq_event *event,
957959
cc->cc_data_lsb = lsb;
958960
if (!(cc->rpn_set || cc->nrpn_set))
959961
return 0; // skip
960-
fill_rpn(cc, data);
962+
fill_rpn(cc, data, channel);
961963
return 1;
962964
}
963965

sound/pci/hda/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ config SND_HDA_SCODEC_CS35L56_I2C
162162
depends on ACPI || COMPILE_TEST
163163
depends on SND_SOC
164164
select FW_CS_DSP
165+
imply SERIAL_MULTI_INSTANTIATE
165166
select SND_HDA_GENERIC
166167
select SND_SOC_CS35L56_SHARED
167168
select SND_HDA_SCODEC_CS35L56
@@ -178,6 +179,7 @@ config SND_HDA_SCODEC_CS35L56_SPI
178179
depends on ACPI || COMPILE_TEST
179180
depends on SND_SOC
180181
select FW_CS_DSP
182+
imply SERIAL_MULTI_INSTANTIATE
181183
select SND_HDA_GENERIC
182184
select SND_SOC_CS35L56_SHARED
183185
select SND_HDA_SCODEC_CS35L56

sound/pci/hda/patch_realtek.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10068,6 +10068,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
1006810068
SND_PCI_QUIRK(0x103c, 0x8788, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED),
1006910069
SND_PCI_QUIRK(0x103c, 0x87b7, "HP Laptop 14-fq0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
1007010070
SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED),
10071+
SND_PCI_QUIRK(0x103c, 0x87d3, "HP Laptop 15-gw0xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2),
1007110072
SND_PCI_QUIRK(0x103c, 0x87e5, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
1007210073
SND_PCI_QUIRK(0x103c, 0x87e7, "HP ProBook 450 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
1007310074
SND_PCI_QUIRK(0x103c, 0x87f1, "HP ProBook 630 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
@@ -10554,6 +10555,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
1055410555
SND_PCI_QUIRK(0x17aa, 0x3882, "Lenovo Yoga Pro 7 14APH8", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
1055510556
SND_PCI_QUIRK(0x17aa, 0x3884, "Y780 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
1055610557
SND_PCI_QUIRK(0x17aa, 0x3886, "Y780 VECO DUAL", ALC287_FIXUP_TAS2781_I2C),
10558+
SND_PCI_QUIRK(0x17aa, 0x3891, "Lenovo Yoga Pro 7 14AHP9", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
1055710559
SND_PCI_QUIRK(0x17aa, 0x38a7, "Y780P AMD YG dual", ALC287_FIXUP_TAS2781_I2C),
1055810560
SND_PCI_QUIRK(0x17aa, 0x38a8, "Y780P AMD VECO dual", ALC287_FIXUP_TAS2781_I2C),
1055910561
SND_PCI_QUIRK(0x17aa, 0x38a9, "Thinkbook 16P", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),

0 commit comments

Comments
 (0)