summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2026-04-16 18:32:13 +0800
committersakumisu <[email protected]>2026-04-16 18:32:13 +0800
commit963a01f2ee0807650092f9fed382a0e6aa1306a4 (patch)
tree45e2d3a10c7dcb3d33f1b21c62fb03541ae9c1f3
parent9cafc902f9138d576088369f92afcb9116e3f77b (diff)
fix(class): break quickly with goto
Signed-off-by: sakumisu <[email protected]>
-rw-r--r--class/audio/usbh_audio.c14
-rw-r--r--class/video/usbh_video.c3
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;
}