On Wed, 12 Jul 2023 15:26:15 +0200, Symbolic Debugger wrote: > > A question about the implementation of notification messages (name, endpoint and function blocks) > > The spec defines that these notification only get sent upon receiving a Discovery message. > > Does this mean that the ALSA driver will poll at specific intervals to send a discover message or can the device send a notification even without a discovery message from the ALSA driver ? I could imagine a function block info / name, or endpoint info/ name or endpoint info change (i.e when the device changes the number of function block) It's handled in ALSA UMP core code. It doesn't poll but just interprets each incoming UMP messages and responds to it (e.g. when a notification comes from the device, ALSA core will update the information accordingly to be visible to user-space). The change of FB info is indeed allowed by the device, AFAIK. And, this can notify via the corresponding UMP Stream messages. For example, reassigning UMP Groups in a FB is a valid scenario, and this will be informed via UMP Stream messages. For the FBs that will never change Groups, there is a "static blocks" flag (which was quite recently introduced). I guess most of devices mark this, as it's compatible with the former MIDI 2.0 USB devices. BTW, the USB MIDI 2.0 gadget function driver is under development. It's almost ready, and my plan is to submit likely for 6.6 kernel (that is, in the next week or so). You can find the patches in topic/midi20-gadget branch of my sound.git tree. Takashi