summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/function/f_midi2.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2024-08-12 09:17:57 +0200
committerTakashi Iwai <tiwai@suse.de>2024-08-12 09:17:57 +0200
commiteb75d05d96b824e14efa4de6c30692d300a9ce67 (patch)
treec45c9eeba78667c800c16e2c9d37a73a6b7bbacc /drivers/usb/gadget/function/f_midi2.c
parentef9718b3d54e822de294351251f3a574f8a082ce (diff)
parent03c5c350e38d9346b69357d0e52c3c40495c14a0 (diff)
downloadlinux-next-eb75d05d96b824e14efa4de6c30692d300a9ce67.tar.gz
linux-next-eb75d05d96b824e14efa4de6c30692d300a9ce67.zip
Merge branch 'topic/cirrus-hp-g12' into for-linus
Pull Cirrus HD-audio quirks for HP G12 laptops. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'drivers/usb/gadget/function/f_midi2.c')
-rw-r--r--drivers/usb/gadget/function/f_midi2.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/usb/gadget/function/f_midi2.c b/drivers/usb/gadget/function/f_midi2.c
index 38e8ed3144f0..3f63253ad3e0 100644
--- a/drivers/usb/gadget/function/f_midi2.c
+++ b/drivers/usb/gadget/function/f_midi2.c
@@ -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;
}
}