Skip to content

Commit 9f2f595

Browse files
committed
Merge branch 'sound/upstream-20250310' into merge/sound-upstream-20250310
2 parents f6feb62 + 464014f commit 9f2f595

File tree

17 files changed

+101
-61
lines changed

17 files changed

+101
-61
lines changed

Documentation/devicetree/bindings/sound/dmic-codec.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ properties:
1919
'#sound-dai-cells':
2020
const: 0
2121

22+
vref-supply:
23+
description: Phandle to the digital microphone reference supply
24+
2225
dmicen-gpios:
2326
description: GPIO specifier for DMIC to control start and stop
2427
maxItems: 1

Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ properties:
7777
power-domains:
7878
maxItems: 1
7979

80+
port:
81+
$ref: audio-graph-port.yaml#
82+
unevaluatedProperties: false
83+
8084
fsl,asrc-rate:
8185
$ref: /schemas/types.yaml#/definitions/uint32
8286
description: The mutual sample rate used by DPCM Back Ends
@@ -174,4 +178,12 @@ examples:
174178
"txa", "txb", "txc";
175179
fsl,asrc-rate = <48000>;
176180
fsl,asrc-width = <16>;
181+
182+
port {
183+
playback-only;
184+
185+
asrc_endpoint: endpoint {
186+
remote-endpoint = <&fe00_ep>;
187+
};
188+
};
177189
};

Documentation/driver-api/soundwire/bra_cadence.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,3 @@ write command followed by a read command.
6464
+ | | | pad | RD Data CRC |
6565
+ 0 | 1 | | pad | RD Ftr Rsp |
6666
+---+---+--------+---------------+---------------+
67-

Documentation/sound/soc/dpcm.rst

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,16 @@ For the example above we have to define 4 FE DAI links and 6 BE DAI links. The
147147
FE DAI links are defined as follows :-
148148
::
149149

150+
SND_SOC_DAILINK_DEFS(pcm0,
151+
DAILINK_COMP_ARRAY(COMP_CPU("System Pin")),
152+
DAILINK_COMP_ARRAY(COMP_DUMMY()),
153+
DAILINK_COMP_ARRAY(COMP_PLATFORM("dsp-audio")));
154+
150155
static struct snd_soc_dai_link machine_dais[] = {
151156
{
152157
.name = "PCM0 System",
153158
.stream_name = "System Playback",
154-
.cpu_dai_name = "System Pin",
155-
.platform_name = "dsp-audio",
156-
.codec_name = "snd-soc-dummy",
157-
.codec_dai_name = "snd-soc-dummy-dai",
159+
SND_SOC_DAILINK_REG(pcm0),
158160
.dynamic = 1,
159161
.trigger = {SND_SOC_DPCM_TRIGGER_POST, SND_SOC_DPCM_TRIGGER_POST},
160162
},
@@ -174,15 +176,16 @@ dynamic and will change depending on runtime config.
174176
The BE DAIs are configured as follows :-
175177
::
176178

179+
SND_SOC_DAILINK_DEFS(headset,
180+
DAILINK_COMP_ARRAY(COMP_CPU("ssp-dai.0")),
181+
DAILINK_COMP_ARRAY(COMP_CODEC("rt5640.0-001c", "rt5640-aif1")));
182+
177183
static struct snd_soc_dai_link machine_dais[] = {
178184
.....< FE DAI links here >
179185
{
180186
.name = "Codec Headset",
181-
.cpu_dai_name = "ssp-dai.0",
182-
.platform_name = "snd-soc-dummy",
187+
SND_SOC_DAILINK_REG(headset),
183188
.no_pcm = 1,
184-
.codec_name = "rt5640.0-001c",
185-
.codec_dai_name = "rt5640-aif1",
186189
.ignore_suspend = 1,
187190
.ignore_pmdown_time = 1,
188191
.be_hw_params_fixup = hswult_ssp0_fixup,

drivers/soundwire/cadence_master.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2044,11 +2044,11 @@ static const u8 sdw_crc8_lookup_msb[CRC8_TABLE_SIZE] = {
20442044
#define SDW_CDNS_BRA_FOOTER_RESP 1 /* defined by MIPI */
20452045
#define SDW_CDNS_BRA_FOOTER_RESP_PAD 1 /* Cadence only */
20462046

2047-
#define SDW_CDNS_WRITE_PDI1_BUFFER_SIZE \
2048-
((SDW_CDNS_BRA_HDR_RESP + SDW_CDNS_BRA_HDR_RESP_PAD + \
2047+
#define SDW_CDNS_WRITE_PDI1_BUFFER_SIZE \
2048+
((SDW_CDNS_BRA_HDR_RESP + SDW_CDNS_BRA_HDR_RESP_PAD + \
20492049
SDW_CDNS_BRA_FOOTER_RESP + SDW_CDNS_BRA_FOOTER_RESP_PAD) * 2)
20502050

2051-
#define SDW_CDNS_READ_PDI0_BUFFER_SIZE \
2051+
#define SDW_CDNS_READ_PDI0_BUFFER_SIZE \
20522052
((SDW_CDNS_BRA_HDR + SDW_CDNS_BRA_HDR_CRC + SDW_CDNS_BRA_HDR_CRC_PAD) * 2)
20532053

20542054
static unsigned int sdw_cdns_bra_actual_data_size(unsigned int allocated_bytes_per_frame)

include/sound/soc-dai.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ int snd_soc_dai_prepare(struct snd_soc_dai *dai,
193193
/* Digital Audio Interface mute */
194194
int snd_soc_dai_digital_mute(struct snd_soc_dai *dai, int mute,
195195
int direction);
196-
196+
int snd_soc_dai_mute_is_ctrled_at_trigger(struct snd_soc_dai *dai);
197197

198198
int snd_soc_dai_get_channel_map(const struct snd_soc_dai *dai,
199199
unsigned int *tx_num, unsigned int *tx_slot,

include/sound/soc.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1223,7 +1223,10 @@ void snd_soc_close_delayed_work(struct snd_soc_pcm_runtime *rtd);
12231223

12241224
/* mixer control */
12251225
struct soc_mixer_control {
1226-
int min, max, platform_max;
1226+
/* Minimum and maximum specified as written to the hardware */
1227+
int min, max;
1228+
/* Limited maximum value specified as presented through the control */
1229+
int platform_max;
12271230
int reg, rreg;
12281231
unsigned int shift, rshift;
12291232
u32 num_channels;

sound/core/seq/seq_clientmgr.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,8 +1136,7 @@ static __poll_t snd_seq_poll(struct file *file, poll_table * wait)
11361136
if (snd_seq_file_flags(file) & SNDRV_SEQ_LFLG_OUTPUT) {
11371137

11381138
/* check if data is available in the pool */
1139-
if (!snd_seq_write_pool_allocated(client) ||
1140-
snd_seq_pool_poll_wait(client->pool, file, wait))
1139+
if (snd_seq_pool_poll_wait(client->pool, file, wait))
11411140
mask |= EPOLLOUT | EPOLLWRNORM;
11421141
}
11431142

@@ -2572,8 +2571,6 @@ int snd_seq_kernel_client_write_poll(int clientid, struct file *file, poll_table
25722571
if (client == NULL)
25732572
return -ENXIO;
25742573

2575-
if (! snd_seq_write_pool_allocated(client))
2576-
return 1;
25772574
if (snd_seq_pool_poll_wait(client->pool, file, wait))
25782575
return 1;
25792576
return 0;
@@ -2715,6 +2712,7 @@ void snd_seq_info_clients_read(struct snd_info_entry *entry,
27152712
continue;
27162713
}
27172714

2715+
mutex_lock(&client->ioctl_mutex);
27182716
snd_iprintf(buffer, "Client %3d : \"%s\" [%s %s]\n",
27192717
c, client->name,
27202718
client->type == USER_CLIENT ? "User" : "Kernel",
@@ -2732,6 +2730,7 @@ void snd_seq_info_clients_read(struct snd_info_entry *entry,
27322730
snd_iprintf(buffer, " Input pool :\n");
27332731
snd_seq_info_pool(buffer, client->data.user.fifo->pool, " ");
27342732
}
2733+
mutex_unlock(&client->ioctl_mutex);
27352734
snd_seq_client_unlock(client);
27362735
}
27372736
}

sound/core/seq/seq_memory.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ int snd_seq_pool_poll_wait(struct snd_seq_pool *pool, struct file *file,
427427
poll_table *wait)
428428
{
429429
poll_wait(file, &pool->output_sleep, wait);
430+
guard(spinlock_irq)(&pool->lock);
430431
return snd_seq_output_ok(pool);
431432
}
432433

sound/soc/amd/yc/acp6x-mach.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
248248
DMI_MATCH(DMI_PRODUCT_NAME, "21M5"),
249249
}
250250
},
251+
{
252+
.driver_data = &acp6x_card,
253+
.matches = {
254+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
255+
DMI_MATCH(DMI_PRODUCT_NAME, "21M6"),
256+
}
257+
},
251258
{
252259
.driver_data = &acp6x_card,
253260
.matches = {

0 commit comments

Comments
 (0)