summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-04-28 22:14:14 +0700
committerhathach <[email protected]>2023-04-28 22:14:14 +0700
commit1763eede4839d0131cda077e2dd9631f315ce115 (patch)
tree9a5add586c6bb2d2d24ecad2fa0d01097b2e9250 /src/class
parentfb5fe3360fb29a5d937cb6d6f1baa7695c04c361 (diff)
more update to host serial API
Diffstat (limited to 'src/class')
-rw-r--r--src/class/cdc/cdc_host.c27
-rw-r--r--src/class/cdc/cdc_host.h3
2 files changed, 14 insertions, 16 deletions
diff --git a/src/class/cdc/cdc_host.c b/src/class/cdc/cdc_host.c
index 858fdd9a7..fe3691bf4 100644
--- a/src/class/cdc/cdc_host.c
+++ b/src/class/cdc/cdc_host.c
@@ -443,7 +443,7 @@ bool tuh_cdc_set_control_line_state(uint8_t idx, uint16_t line_state, tuh_xfer_c
return driver->set_control_line_state(p_cdc, line_state, complete_cb, user_data);
}else {
// blocking
- xfer_result_t result;
+ xfer_result_t result = XFER_RESULT_INVALID;
bool ret = driver->set_control_line_state(p_cdc, line_state, complete_cb, (uintptr_t) &result);
if (user_data) {
@@ -451,11 +451,10 @@ bool tuh_cdc_set_control_line_state(uint8_t idx, uint16_t line_state, tuh_xfer_c
*((xfer_result_t*) user_data) = result;
}
- if (result == XFER_RESULT_SUCCESS) {
- p_cdc->line_state = (uint8_t) line_state;
- }
+ TU_VERIFY(ret && result == XFER_RESULT_SUCCESS);
- return ret;
+ p_cdc->line_state = (uint8_t) line_state;
+ return true;
}
}
@@ -468,7 +467,7 @@ bool tuh_cdc_set_baudrate(uint8_t idx, uint32_t baudrate, tuh_xfer_cb_t complete
return driver->set_baudrate(p_cdc, baudrate, complete_cb, user_data);
}else {
// blocking
- xfer_result_t result;
+ xfer_result_t result = XFER_RESULT_INVALID;
bool ret = driver->set_baudrate(p_cdc, baudrate, complete_cb, (uintptr_t) &result);
if (user_data) {
@@ -476,11 +475,10 @@ bool tuh_cdc_set_baudrate(uint8_t idx, uint32_t baudrate, tuh_xfer_cb_t complete
*((xfer_result_t*) user_data) = result;
}
- if (result == XFER_RESULT_SUCCESS) {
- p_cdc->line_coding.bit_rate = baudrate;
- }
+ TU_VERIFY(ret && result == XFER_RESULT_SUCCESS);
- return ret;
+ p_cdc->line_coding.bit_rate = baudrate;
+ return true;
}
}
@@ -495,7 +493,7 @@ bool tuh_cdc_set_line_coding(uint8_t idx, cdc_line_coding_t const* line_coding,
return acm_set_line_coding(p_cdc, line_coding, complete_cb, user_data);
}else {
// blocking
- xfer_result_t result;
+ xfer_result_t result = XFER_RESULT_INVALID;
bool ret = acm_set_line_coding(p_cdc, line_coding, complete_cb, (uintptr_t) &result);
if (user_data) {
@@ -503,11 +501,10 @@ bool tuh_cdc_set_line_coding(uint8_t idx, cdc_line_coding_t const* line_coding,
*((xfer_result_t*) user_data) = result;
}
- if (result == XFER_RESULT_SUCCESS) {
- p_cdc->line_coding = *line_coding;
- }
+ TU_VERIFY(ret && result == XFER_RESULT_SUCCESS);
- return ret;
+ p_cdc->line_coding = *line_coding;
+ return true;
}
}
diff --git a/src/class/cdc/cdc_host.h b/src/class/cdc/cdc_host.h
index 8544ff740..19552f1ee 100644
--- a/src/class/cdc/cdc_host.h
+++ b/src/class/cdc/cdc_host.h
@@ -138,7 +138,8 @@ bool tuh_cdc_read_clear (uint8_t idx);
// - If complete_cb is provided, the function will return immediately and invoke
// the callback when request is complete.
// - If complete_cb is NULL, the function will block until request is complete.
-// In this case, user_data should be pointed to xfer_result_t to hold the transfer result.
+// - In this case, user_data should be pointed to xfer_result_t to hold the transfer result.
+// - The function will return true if transfer is successful, false otherwise.
//--------------------------------------------------------------------+
// Request to Set Control Line State: DTR (bit 0), RTS (bit 1)