Lines Matching refs:uds_ctx
19 static sys_slist_t *usbd_configs(struct usbd_context *uds_ctx, in usbd_configs() argument
24 return &uds_ctx->fs_configs; in usbd_configs()
26 return &uds_ctx->hs_configs; in usbd_configs()
32 struct usbd_config_node *usbd_config_get(struct usbd_context *const uds_ctx, in usbd_config_get() argument
38 SYS_SLIST_FOR_EACH_CONTAINER(usbd_configs(uds_ctx, speed), cfg_nd, node) { in usbd_config_get()
48 usbd_config_get_current(struct usbd_context *const uds_ctx) in usbd_config_get_current() argument
50 if (!usbd_state_is_configured(uds_ctx)) { in usbd_config_get_current()
55 return usbd_config_get(uds_ctx, usbd_bus_speed(uds_ctx), in usbd_config_get_current()
56 usbd_get_config_value(uds_ctx)); in usbd_config_get_current()
74 static int usbd_config_reset(struct usbd_context *const uds_ctx) in usbd_config_reset() argument
79 cfg_nd = usbd_config_get_current(uds_ctx); in usbd_config_reset()
84 ret = usbd_interface_shutdown(uds_ctx, cfg_nd); in usbd_config_reset()
86 memset(&uds_ctx->ch9_data.alternate, 0, in usbd_config_reset()
89 usbd_set_config_value(uds_ctx, 0); in usbd_config_reset()
95 bool usbd_config_exist(struct usbd_context *const uds_ctx, in usbd_config_exist() argument
101 config = usbd_config_get(uds_ctx, speed, cfg); in usbd_config_exist()
106 int usbd_config_set(struct usbd_context *const uds_ctx, in usbd_config_set() argument
110 const enum usbd_speed speed = usbd_bus_speed(uds_ctx); in usbd_config_set()
113 if (usbd_get_config_value(uds_ctx) != 0) { in usbd_config_set()
114 ret = usbd_config_reset(uds_ctx); in usbd_config_set()
122 usbd_set_config_value(uds_ctx, new_cfg); in usbd_config_set()
126 cfg_nd = usbd_config_get(uds_ctx, speed, new_cfg); in usbd_config_set()
131 ret = usbd_interface_default(uds_ctx, speed, cfg_nd); in usbd_config_set()
136 usbd_set_config_value(uds_ctx, new_cfg); in usbd_config_set()
146 int usbd_config_attrib_rwup(struct usbd_context *const uds_ctx, in usbd_config_attrib_rwup() argument
155 usbd_device_lock(uds_ctx); in usbd_config_attrib_rwup()
157 if (usbd_is_enabled(uds_ctx)) { in usbd_config_attrib_rwup()
162 caps = udc_caps(uds_ctx->dev); in usbd_config_attrib_rwup()
169 cfg_nd = usbd_config_get(uds_ctx, speed, cfg); in usbd_config_attrib_rwup()
184 usbd_device_unlock(uds_ctx); in usbd_config_attrib_rwup()
188 int usbd_config_attrib_self(struct usbd_context *const uds_ctx, in usbd_config_attrib_self() argument
196 usbd_device_lock(uds_ctx); in usbd_config_attrib_self()
198 if (usbd_is_enabled(uds_ctx)) { in usbd_config_attrib_self()
203 cfg_nd = usbd_config_get(uds_ctx, speed, cfg); in usbd_config_attrib_self()
218 usbd_device_unlock(uds_ctx); in usbd_config_attrib_self()
222 int usbd_config_maxpower(struct usbd_context *const uds_ctx, in usbd_config_maxpower() argument
230 usbd_device_lock(uds_ctx); in usbd_config_maxpower()
232 if (usbd_is_enabled(uds_ctx)) { in usbd_config_maxpower()
237 cfg_nd = usbd_config_get(uds_ctx, speed, cfg); in usbd_config_maxpower()
248 usbd_device_unlock(uds_ctx); in usbd_config_maxpower()
252 int usbd_add_configuration(struct usbd_context *const uds_ctx, in usbd_add_configuration() argument
261 usbd_device_lock(uds_ctx); in usbd_add_configuration()
263 if (usbd_is_initialized(uds_ctx)) { in usbd_add_configuration()
270 usbd_caps_speed(uds_ctx) == USBD_SPEED_FS) { in usbd_add_configuration()
277 struct udc_device_caps caps = udc_caps(uds_ctx->dev); in usbd_add_configuration()
286 configs = usbd_configs(uds_ctx, speed); in usbd_add_configuration()
289 SYS_SLIST_FOR_EACH_NODE(&uds_ctx->fs_configs, node) { in usbd_add_configuration()
298 SYS_SLIST_FOR_EACH_NODE(&uds_ctx->hs_configs, node) { in usbd_add_configuration()
316 uint8_t num = usbd_get_num_configs(uds_ctx, speed) + 1; in usbd_add_configuration()
319 usbd_set_num_configs(uds_ctx, speed, num); in usbd_add_configuration()
323 ret = usbd_add_descriptor(uds_ctx, cfg_nd->str_desc_nd); in usbd_add_configuration()
335 usbd_device_unlock(uds_ctx); in usbd_add_configuration()