From 3c95f9fe212db30042342ee6a03aa514ee351c23 Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Tue, 21 May 2019 23:59:38 -0500 Subject: [PATCH] Fix block writes on Nuvoton NCT6793D SMBus driver --- OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.cpp | 4 ++-- OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.h | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.cpp b/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.cpp index b8b9c730..34233b51 100644 --- a/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.cpp +++ b/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.cpp @@ -107,7 +107,7 @@ s32 i2c_smbus_nuvoton_nct6793d::nct6793d_access(u16 addr, char read_write, u8 co //Load more bytes into FIFO if (len >= 4) { - for (i = cnt; i <= 4; i++) + for (i = cnt; i <= (cnt + 4); i++) { Out32(SMBHSTDAT, data->block[i]); } @@ -117,7 +117,7 @@ s32 i2c_smbus_nuvoton_nct6793d::nct6793d_access(u16 addr, char read_write, u8 co } else { - for (i = cnt; i <= len; i++) + for (i = cnt; i <= (cnt + len); i++) { Out32(SMBHSTDAT, data->block[i]); } diff --git a/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.h b/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.h index c0ddbe55..3796b72e 100644 --- a/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.h +++ b/OpenAuraSDK/i2c_smbus_nuvoton_nct6793d.h @@ -34,11 +34,12 @@ #define NCT6793D_SOFT_RESET 64 /* Error register */ -#define NCT6793D_NO_ACK 32 +#define NCT6793D_NO_ACK 32 /* Status register */ +#define NCT6793D_FIFO_EMPTY 1 +#define NCT6793D_FIFO_FULL 2 #define NCT6793D_MANUAL_ACTIVE 4 -#define NCT6793D_FIFO_EMPTY 1 class i2c_smbus_nuvoton_nct6793d : public i2c_smbus_interface {