disable PL2303 flow control config

This commit is contained in:
IngHK
2024-04-04 14:14:41 +02:00
parent a1b1c1f552
commit e02a309f1d

View File

@@ -2475,8 +2475,8 @@ enum {
CONFIG_PL2303_RESET_ENDP2, CONFIG_PL2303_RESET_ENDP2,
CONFIG_PL2303_LINE_CODING, CONFIG_PL2303_LINE_CODING,
CONFIG_PL2303_MODEM_CONTROL, CONFIG_PL2303_MODEM_CONTROL,
CONFIG_PL2303_FLOW_CTRL_READ, // CONFIG_PL2303_FLOW_CTRL_READ,
CONFIG_PL2303_FLOW_CTRL_WRITE, // CONFIG_PL2303_FLOW_CTRL_WRITE,
CONFIG_PL2303_COMPLETE CONFIG_PL2303_COMPLETE
}; };
@@ -2691,35 +2691,38 @@ static void pl2303_process_config(tuh_xfer_t * xfer) {
case CONFIG_PL2303_MODEM_CONTROL: case CONFIG_PL2303_MODEM_CONTROL:
#ifdef LINE_CONTROL_ON_ENUM #ifdef LINE_CONTROL_ON_ENUM
p_cdc->requested_line_state.all = LINE_CONTROL_ON_ENUM; p_cdc->requested_line_state.all = LINE_CONTROL_ON_ENUM;
TU_ASSERT_COMPLETE(pl2303_set_control_lines(p_cdc, pl2303_internal_control_complete, CONFIG_PL2303_FLOW_CTRL_READ)); TU_ASSERT_COMPLETE(pl2303_set_control_lines(p_cdc, pl2303_internal_control_complete, CONFIG_PL2303_COMPLETE));
break; break;
#else #else
TU_ATTR_FALLTHROUGH; TU_ATTR_FALLTHROUGH;
#endif #endif
case CONFIG_PL2303_FLOW_CTRL_READ: // skipped, because it's not working with each PL230x. flow control can be also set by PL2303 EEPROM Writer Program
// read flow control register for modify & write back in next step // case CONFIG_PL2303_FLOW_CTRL_READ:
if (p_cdc->pl2303.serial_private.type == &pl2303_type_data[TYPE_HXN]) { // // read flow control register for modify & write back in next step
TU_ASSERT_COMPLETE(pl2303_vendor_read(p_cdc, PL2303_HXN_FLOWCTRL_REG, &buf, pl2303_process_config, // if (p_cdc->pl2303.serial_private.type == &pl2303_type_data[TYPE_HXN]) {
CONFIG_PL2303_FLOW_CTRL_WRITE)); // TU_LOG_P_CDC ( "1\r\n" );
} else { // TU_ASSERT_COMPLETE(pl2303_vendor_read(p_cdc, PL2303_HXN_FLOWCTRL_REG, &buf, pl2303_process_config,
TU_ASSERT_COMPLETE(pl2303_vendor_read(p_cdc, 0, &buf, pl2303_process_config, CONFIG_PL2303_FLOW_CTRL_WRITE)); // CONFIG_PL2303_FLOW_CTRL_WRITE));
} // } else {
break; // TU_LOG_P_CDC ( "2\r\n" );
// TU_ASSERT_COMPLETE(pl2303_vendor_read(p_cdc, 0, &buf, pl2303_process_config, CONFIG_PL2303_FLOW_CTRL_WRITE));
case CONFIG_PL2303_FLOW_CTRL_WRITE: // }
// no flow control // break;
buf = xfer->buffer[0]; //
if (p_cdc->pl2303.serial_private.type == &pl2303_type_data[TYPE_HXN]) { // case CONFIG_PL2303_FLOW_CTRL_WRITE:
buf &= (uint8_t) ~PL2303_HXN_FLOWCTRL_MASK; // // no flow control
buf |= PL2303_HXN_FLOWCTRL_NONE; // buf = xfer->buffer[0];
TU_ASSERT_COMPLETE(pl2303_vendor_write(p_cdc, PL2303_HXN_FLOWCTRL_REG, buf, pl2303_process_config, // if (p_cdc->pl2303.serial_private.type == &pl2303_type_data[TYPE_HXN]) {
CONFIG_PL2303_COMPLETE)); // buf &= (uint8_t) ~PL2303_HXN_FLOWCTRL_MASK;
} else { // buf |= PL2303_HXN_FLOWCTRL_NONE;
buf &= (uint8_t) ~PL2303_FLOWCTRL_MASK; // TU_ASSERT_COMPLETE(pl2303_vendor_write(p_cdc, PL2303_HXN_FLOWCTRL_REG, buf, pl2303_process_config,
TU_ASSERT_COMPLETE(pl2303_vendor_write(p_cdc, 0, buf, pl2303_process_config, CONFIG_PL2303_COMPLETE)); // CONFIG_PL2303_COMPLETE));
} // } else {
break; // buf &= (uint8_t) ~PL2303_FLOWCTRL_MASK;
// TU_ASSERT_COMPLETE(pl2303_vendor_write(p_cdc, 0, buf, pl2303_process_config, CONFIG_PL2303_COMPLETE));
// }
// break;
case CONFIG_PL2303_COMPLETE: case CONFIG_PL2303_COMPLETE:
set_config_complete(idx, 0, true); set_config_complete(idx, 0, true);