summaryrefslogtreecommitdiff
path: root/src/class/cdc/cdc_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/class/cdc/cdc_device.c')
-rw-r--r--src/class/cdc/cdc_device.c40
1 files changed, 10 insertions, 30 deletions
diff --git a/src/class/cdc/cdc_device.c b/src/class/cdc/cdc_device.c
index a77dfb140..7ef8aa738 100644
--- a/src/class/cdc/cdc_device.c
+++ b/src/class/cdc/cdc_device.c
@@ -172,42 +172,22 @@ void tud_cdc_n_get_line_coding(uint8_t itf, cdc_line_coding_t *coding) {
#if CFG_TUD_CDC_NOTIFY
bool tud_cdc_n_notify_msg(uint8_t itf, cdc_notify_msg_t *msg) {
TU_VERIFY(itf < CFG_TUD_CDC);
- cdcd_interface_t *p_cdc = &_cdcd_itf[itf];
- cdcd_epbuf_t *p_epbuf = &_cdcd_epbuf[itf];
- cdc_notify_msg_t *notify_msg = &p_epbuf->epnotify;
-
- *notify_msg = *msg;
- notify_msg->request.wIndex = p_cdc->itf_num;
-
+ const cdcd_interface_t *p_cdc = &_cdcd_itf[itf];
TU_VERIFY(tud_ready() && p_cdc->ep_notify != 0);
TU_VERIFY(usbd_edpt_claim(p_cdc->rhport, p_cdc->ep_notify));
- return usbd_edpt_xfer(p_cdc->rhport, p_cdc->ep_notify, (uint8_t *)msg, 8 + msg->request.wLength, false);
-}
-bool tud_cdc_n_notify_uart_state (uint8_t itf, const cdc_notify_uart_state_t *state) {
- cdc_notify_msg_t notify_msg;
- notify_msg.request.bmRequestType = CDC_REQ_TYPE_NOTIF;
- notify_msg.request.bRequest = CDC_NOTIF_SERIAL_STATE;
- notify_msg.request.wValue = 0;
- notify_msg.request.wIndex = 0; // filled later
- notify_msg.request.wLength = sizeof(cdc_notify_uart_state_t);
- notify_msg.serial_state = *state;
+ #if CFG_TUD_EDPT_DEDICATED_HWFIFO
+ cdc_notify_msg_t *msg_epbuf = msg;
+ #else
+ cdc_notify_msg_t *msg_epbuf = &_cdcd_epbuf[itf].epnotify;
+ *msg_epbuf = *msg;
+ #endif
- return tud_cdc_n_notify_msg(itf, &notify_msg);
-}
-
-bool tud_cdc_n_notify_conn_speed_change(uint8_t itf, const cdc_notify_conn_speed_change_t* conn_speed_change) {
- cdc_notify_msg_t notify_msg;
- notify_msg.request.bmRequestType = CDC_REQ_TYPE_NOTIF;
- notify_msg.request.bRequest = CDC_NOTIF_CONNECTION_SPEED_CHANGE;
- notify_msg.request.wValue = 0;
- notify_msg.request.wIndex = 0; // filled later
- notify_msg.request.wLength = sizeof(cdc_notify_conn_speed_change_t);
- notify_msg.conn_speed_change = *conn_speed_change;
+ msg_epbuf->request.wIndex = p_cdc->itf_num;
- return tud_cdc_n_notify_msg(itf, &notify_msg);
+ return usbd_edpt_xfer(p_cdc->rhport, p_cdc->ep_notify, (uint8_t *)msg_epbuf, 8 + msg_epbuf->request.wLength, false);
}
- #endif
+#endif
void tud_cdc_n_set_wanted_char(uint8_t itf, char wanted) {
TU_VERIFY(itf < CFG_TUD_CDC, );