mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-12 20:35:23 +02:00
usb: gadget: midi2: Fix the response for FB info with block 0xff
commit228a953e61
upstream. When the block number 0xff is given to Function Block Discovery message, the device should return the information of all Function Blocks, but currently the gadget driver treats it as an error. Implement the proper behavior for the block 0xff instead. Fixes:8b645922b2
("usb: gadget: Add support for USB MIDI 2.0 function driver") Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20240717095102.10493-1-tiwai@suse.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1a9df57d57
commit
a4f0d0a013
|
@ -642,12 +642,21 @@ static void process_ump_stream_msg(struct f_midi2_ep *ep, const u32 *data)
|
|||
if (format)
|
||||
return; // invalid
|
||||
blk = (*data >> 8) & 0xff;
|
||||
if (blk >= ep->num_blks)
|
||||
return;
|
||||
if (*data & UMP_STREAM_MSG_REQUEST_FB_INFO)
|
||||
reply_ump_stream_fb_info(ep, blk);
|
||||
if (*data & UMP_STREAM_MSG_REQUEST_FB_NAME)
|
||||
reply_ump_stream_fb_name(ep, blk);
|
||||
if (blk == 0xff) {
|
||||
/* inquiry for all blocks */
|
||||
for (blk = 0; blk < ep->num_blks; blk++) {
|
||||
if (*data & UMP_STREAM_MSG_REQUEST_FB_INFO)
|
||||
reply_ump_stream_fb_info(ep, blk);
|
||||
if (*data & UMP_STREAM_MSG_REQUEST_FB_NAME)
|
||||
reply_ump_stream_fb_name(ep, blk);
|
||||
}
|
||||
} else if (blk < ep->num_blks) {
|
||||
/* only the specified block */
|
||||
if (*data & UMP_STREAM_MSG_REQUEST_FB_INFO)
|
||||
reply_ump_stream_fb_info(ep, blk);
|
||||
if (*data & UMP_STREAM_MSG_REQUEST_FB_NAME)
|
||||
reply_ump_stream_fb_name(ep, blk);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user