Merge branch 'bugfix/fix_i2c_crash_v4.4' into 'release/v4.4'

I2C: Fix I2C Master operation with repeated start condition (backport v4.4)

See merge request espressif/esp-idf!17118
This commit is contained in:
Zim Kalinowski
2022-02-16 06:30:44 +00:00

View File

@@ -1342,8 +1342,10 @@ static void IRAM_ATTR i2c_master_cmd_begin_static(i2c_port_t i2c_num)
p_i2c->cmd_idx = 0; p_i2c->cmd_idx = 0;
if (i2c_cmd_is_single_byte(cmd) || cmd->total_bytes == cmd->bytes_used) { if (i2c_cmd_is_single_byte(cmd) || cmd->total_bytes == cmd->bytes_used) {
p_i2c->cmd_link.head = p_i2c->cmd_link.head->next; p_i2c->cmd_link.head = p_i2c->cmd_link.head->next;
if(p_i2c->cmd_link.head) {
p_i2c->cmd_link.head->cmd.bytes_used = 0; p_i2c->cmd_link.head->cmd.bytes_used = 0;
} }
}
p_i2c->status = I2C_STATUS_WRITE; p_i2c->status = I2C_STATUS_WRITE;
break; break;
} else if (cmd->hw_cmd.op_code == I2C_LL_CMD_READ) { } else if (cmd->hw_cmd.op_code == I2C_LL_CMD_READ) {