From a06d9769ce4fd3e40309bb560142e9bb9d729b03 Mon Sep 17 00:00:00 2001 From: Johann Fischer Date: Wed, 25 Jan 2023 00:09:47 +0100 Subject: [PATCH] usb: device_next: update IAD during CDC ACM initialization Set bFirstInterface of IAD and update CDC Union descriptor during class initialization. Signed-off-by: Johann Fischer --- subsys/usb/device_next/class/usbd_cdc_acm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/subsys/usb/device_next/class/usbd_cdc_acm.c b/subsys/usb/device_next/class/usbd_cdc_acm.c index 0b985a595c9..33cdc518a9b 100644 --- a/subsys/usb/device_next/class/usbd_cdc_acm.c +++ b/subsys/usb/device_next/class/usbd_cdc_acm.c @@ -393,6 +393,12 @@ static int usbd_cdc_acm_ctd(struct usbd_class_node *const c_nd, static int usbd_cdc_acm_init(struct usbd_class_node *const c_nd) { + struct usbd_cdc_acm_desc *desc = c_nd->data->desc; + + desc->iad_cdc.bFirstInterface = desc->if0.bInterfaceNumber; + desc->if0_union.bControlInterface = desc->if0.bInterfaceNumber; + desc->if0_union.bSubordinateInterface0 = desc->if1.bInterfaceNumber; + return 0; }