summaryrefslogtreecommitdiff
path: root/sound/core
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2024-08-07 11:22:59 +0200
committerTakashi Iwai <tiwai@suse.de>2024-08-07 11:31:38 +0200
commitebaa86c0bddd2c47c516bf2096b17c0bed71d914 (patch)
tree0322b60bcac4162573cdf2529c9e9ecb03c9454c /sound/core
parentac3a9185bd5f547cb16ef1388e8786ad5a6e8858 (diff)
ALSA: usb-audio: Update UMP group attributes for GTB blocks, too
When a FB is created from a GTB instead of UMP FB Info inquiry, we missed the update of the corresponding UMP Group attributes. Export the call of updater and let it be called from the USB driver. Fixes: 0642a3c5cacc ("ALSA: ump: Update substream name from assigned FB names") Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20240807092303.1935-5-tiwai@suse.de
Diffstat (limited to 'sound/core')
-rw-r--r--sound/core/ump.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sound/core/ump.c b/sound/core/ump.c
index 4502de891adf..243ecdbb2a6e 100644
--- a/sound/core/ump.c
+++ b/sound/core/ump.c
@@ -525,7 +525,7 @@ static void snd_ump_proc_read(struct snd_info_entry *entry,
}
/* update dir_bits and active flag for all groups in the client */
-static void update_group_attrs(struct snd_ump_endpoint *ump)
+void snd_ump_update_group_attrs(struct snd_ump_endpoint *ump)
{
struct snd_ump_block *fb;
struct snd_ump_group *group;
@@ -578,6 +578,7 @@ static void update_group_attrs(struct snd_ump_endpoint *ump)
}
}
}
+EXPORT_SYMBOL_GPL(snd_ump_update_group_attrs);
/*
* UMP endpoint and function block handling
@@ -863,7 +864,7 @@ static int ump_handle_fb_info_msg(struct snd_ump_endpoint *ump,
if (fb) {
fill_fb_info(ump, &fb->info, buf);
if (ump->parsed) {
- update_group_attrs(ump);
+ snd_ump_update_group_attrs(ump);
seq_notify_fb_change(ump, fb);
}
}
@@ -895,7 +896,7 @@ static int ump_handle_fb_name_msg(struct snd_ump_endpoint *ump,
buf->raw, 3);
/* notify the FB name update to sequencer, too */
if (ret > 0 && ump->parsed) {
- update_group_attrs(ump);
+ snd_ump_update_group_attrs(ump);
seq_notify_fb_change(ump, fb);
}
return ret;
@@ -1065,7 +1066,7 @@ int snd_ump_parse_endpoint(struct snd_ump_endpoint *ump)
}
/* initialize group attributions */
- update_group_attrs(ump);
+ snd_ump_update_group_attrs(ump);
error:
ump->parsed = true;