diff options
| author | sakumisu <[email protected]> | 2026-04-16 18:32:13 +0800 |
|---|---|---|
| committer | sakumisu <[email protected]> | 2026-04-16 18:32:13 +0800 |
| commit | 963a01f2ee0807650092f9fed382a0e6aa1306a4 (patch) | |
| tree | 45e2d3a10c7dcb3d33f1b21c62fb03541ae9c1f3 | |
| parent | 9cafc902f9138d576088369f92afcb9116e3f77b (diff) | |
fix(class): break quickly with goto
Signed-off-by: sakumisu <[email protected]>
| -rw-r--r-- | class/audio/usbh_audio.c | 14 | ||||
| -rw-r--r-- | class/video/usbh_video.c | 3 |
2 files changed, 13 insertions, 4 deletions
diff --git a/class/audio/usbh_audio.c b/class/audio/usbh_audio.c index 3913dc5b..22f1f19a 100644 --- a/class/audio/usbh_audio.c +++ b/class/audio/usbh_audio.c @@ -59,7 +59,7 @@ int usbh_audio_open(struct usbh_audio *audio_class, const char *name, uint32_t s uint16_t mps; int ret; uint8_t intf = 0xff; - uint8_t altsetting = 1; + uint8_t altsetting = 0xff; if (!audio_class || !audio_class->hport) { return -USB_ERR_INVAL; @@ -88,9 +88,11 @@ int usbh_audio_open(struct usbh_audio *audio_class, const char *name, uint32_t s } } } - return -USB_ERR_NODEV; freq_found: + if(altsetting == 0xff) { + return -USB_ERR_NODEV; + } setup->bmRequestType = USB_REQUEST_DIR_OUT | USB_REQUEST_STANDARD | USB_REQUEST_RECIPIENT_INTERFACE; setup->bRequest = USB_REQUEST_SET_INTERFACE; @@ -150,9 +152,11 @@ int usbh_audio_close(struct usbh_audio *audio_class, const char *name) for (uint8_t i = 0; i < audio_class->stream_intf_num; i++) { if (strcmp(name, audio_class->as_msg_table[i].stream_name) == 0) { intf = audio_class->as_msg_table[i].stream_intf; + goto intf_found; } } +intf_found: if (intf == 0xff) { return -USB_ERR_NODEV; } @@ -208,9 +212,11 @@ int usbh_audio_set_volume(struct usbh_audio *audio_class, const char *name, uint if (strcmp(name, audio_class->as_msg_table[i].stream_name) == 0) { feature_id = audio_class->as_msg_table[i].feature_terminal_id; intf = audio_class->as_msg_table[i].stream_intf; + goto feature_found; } } +feature_found: if (feature_id == 0xff) { return -USB_ERR_NODEV; } @@ -322,9 +328,11 @@ int usbh_audio_set_mute(struct usbh_audio *audio_class, const char *name, uint8_ if (strcmp(name, audio_class->as_msg_table[i].stream_name) == 0) { feature_id = audio_class->as_msg_table[i].feature_terminal_id; intf = audio_class->as_msg_table[i].stream_intf; + goto feature_found; } } +feature_found: if (feature_id == 0xff) { return -USB_ERR_NODEV; } @@ -462,7 +470,7 @@ static int usbh_audio_ctrl_connect(struct usbh_hubport *hport, uint8_t intf) case AUDIO_STREAMING_FORMAT_TYPE: { struct audio_cs_if_as_format_type_descriptor *desc = (struct audio_cs_if_as_format_type_descriptor *)p; - USB_ASSERT(desc->bFormatType == 1); + USB_ASSERT(desc->bSamFreqType == 1); audio_class->as_msg_table[cur_iface - audio_class->ctrl_intf - 1].num_of_altsetting = (cur_alt_setting + 1); memcpy(&audio_class->as_msg_table[cur_iface - audio_class->ctrl_intf - 1].as_format[cur_alt_setting], desc, desc->bLength); diff --git a/class/video/usbh_video.c b/class/video/usbh_video.c index 2e06e973..8b7863cc 100644 --- a/class/video/usbh_video.c +++ b/class/video/usbh_video.c @@ -174,12 +174,13 @@ int usbh_video_open(struct usbh_video *video_class, frameidx = j + 1; dwDefaultFrameInterval = video_class->format[i].frame[j].dwDefaultFrameInterval; found = true; - break; + goto dev_found; } } } } +dev_found: if (found == false) { return -USB_ERR_NODEV; } |
