Skip to content

Commit 595ae12

Browse files
committed
subsys: usb: host: do enhancement for class register.
1. check class_list empty for class register. 2. cleanup the code for usbh_class_is_matching Signed-off-by: Aiden Hu <[email protected]>
1 parent af64db8 commit 595ae12

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

subsys/usb/host/usbh_class.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,17 @@ int usbh_register_all_classes(struct usbh_context *uhs_ctx)
2121
struct usbh_class_data *cdata_registered;
2222
bool already_registered = false;
2323

24+
if (cdata_existing == NULL) {
25+
continue;
26+
}
27+
2428
/* Check if already registered */
25-
SYS_SLIST_FOR_EACH_CONTAINER(&uhs_ctx->class_list, cdata_registered, node) {
26-
if (cdata_existing == cdata_registered) {
27-
already_registered = true;
28-
break;
29+
if (!sys_slist_is_empty(&uhs_ctx->class_list)) {
30+
SYS_SLIST_FOR_EACH_CONTAINER(&uhs_ctx->class_list, cdata_registered, node) {
31+
if (cdata_existing == cdata_registered) {
32+
already_registered = true;
33+
break;
34+
}
2935
}
3036
}
3137

@@ -65,16 +71,9 @@ bool usbh_class_is_matching(struct usbh_class_data *cdata,
6571
for (int i = 0; cdata->filters[i].flags != 0; i++) {
6672
const struct usbh_class_filter *filter = &cdata->filters[i];
6773

68-
if (filter->flags & USBH_CLASS_FILTER_VID) {
69-
if (filter->vid != device_info->vid) {
70-
continue;
71-
}
72-
}
73-
74-
if (filter->flags & USBH_CLASS_FILTER_VID) {
75-
if (filter->vid == device_info->vid) {
76-
continue;
77-
}
74+
if ((filter->flags & USBH_CLASS_FILTER_VID) &&
75+
(filter->vid != device_info->vid)) {
76+
continue;
7877
}
7978

8079
if (filter->flags & USBH_CLASS_FILTER_CODE_TRIPLE) {

0 commit comments

Comments
 (0)