Harald Welte has submitted this change and it was merged. (
https://gerrit.osmocom.org/10124 )
Change subject: I2C: return error after failed write
......................................................................
I2C: return error after failed write
The previous mechanism of retrying a failed write could become a
infinite blocking loop (until watchdog tiemout).
Also the array size is used to know how much data to write and verify
instead of a constant.
Change-Id: I8d2d090c5f4d1195f4c7eb29b3958a7bb05f56ec
---
M firmware/libboard/qmod/source/board_qmod.c
1 file changed, 7 insertions(+), 7 deletions(-)
Approvals:
Jenkins Builder: Verified
Harald Welte: Looks good to me, approved
diff --git a/firmware/libboard/qmod/source/board_qmod.c
b/firmware/libboard/qmod/source/board_qmod.c
index 7ae1978..47a4cb6 100644
--- a/firmware/libboard/qmod/source/board_qmod.c
+++ b/firmware/libboard/qmod/source/board_qmod.c
@@ -70,8 +70,6 @@
#include "i2c.h"
static int write_hub_eeprom(void)
{
- const unsigned int __eeprom_bin_len = 256;
-
int i;
/* wait */
@@ -79,16 +77,18 @@
TRACE_INFO("Writing EEPROM...\n\r");
/* write the EEPROM once */
- for (i = 0; i < 256; i++) {
+ for (i = 0; i < ARRAY_SIZE(__eeprom_bin); i++) {
int rc = eeprom_write_byte(0x50, i, __eeprom_bin[i]);
- /* if the result was negative, repeat that write */
- if (rc < 0)
- i--;
+ if (rc < 0) {
+ TRACE_ERROR("Writing EEPROM failed at byte %u:
0x%02x\n\r",
+ i, __eeprom_bin[i]);
+ return 1;
+ }
}
/* then pursue re-reading it again and again */
TRACE_INFO("Verifying EEPROM...\n\r");
- for (i = 0; i < 256; i++) {
+ for (i = 0; i < ARRAY_SIZE(__eeprom_bin); i++) {
int byte = eeprom_read_byte(0x50, i);
TRACE_INFO("0x%02x: %02x\n\r", i, byte);
if (byte != __eeprom_bin[i])
--
To view, visit https://gerrit.osmocom.org/10124
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I8d2d090c5f4d1195f4c7eb29b3958a7bb05f56ec
Gerrit-Change-Number: 10124
Gerrit-PatchSet: 1
Gerrit-Owner: Kévin Redon <[email protected]>
Gerrit-Reviewer: Harald Welte <[email protected]>
Gerrit-Reviewer: Jenkins Builder